diff --git a/example/Vector/2_expressions/Makefile b/example/Vector/2_expressions/Makefile
new file mode 100644
index 0000000000000000000000000000000000000000..8e05b3e8a019c392ab52ecfada659e00d9fef05f
--- /dev/null
+++ b/example/Vector/2_expressions/Makefile
@@ -0,0 +1,21 @@
+include ../../example.mk
+
+CC=mpic++
+
+LDIR =
+
+OBJ = main.o
+
+%.o: %.cpp
+ $(CC) -O3 -c --std=c++11 -o $@ $< $(INCLUDE_PATH)
+
+expr: $(OBJ)
+ $(CC) -o $@ $^ $(CFLAGS) $(LIBS_PATH) $(LIBS)
+
+all: expr
+
+.PHONY: clean all
+
+clean:
+ rm -f *.o *~ core expr
+
diff --git a/example/Vector/2_expressions/config.cfg b/example/Vector/2_expressions/config.cfg
new file mode 100644
index 0000000000000000000000000000000000000000..1eecbac3577c765edca7f90cf5f61cfb6b9f4880
--- /dev/null
+++ b/example/Vector/2_expressions/config.cfg
@@ -0,0 +1,2 @@
+[pack]
+files = main.cpp Makefile
diff --git a/example/Vector/2_expressions/expr b/example/Vector/2_expressions/expr
new file mode 100755
index 0000000000000000000000000000000000000000..d7964ae05ef2bc2f930a7044cf74d3ece5914d34
Binary files /dev/null and b/example/Vector/2_expressions/expr differ
diff --git a/example/Vector/2_expressions/main.cpp b/example/Vector/2_expressions/main.cpp
new file mode 100644
index 0000000000000000000000000000000000000000..a6cd6c0da296e8e7d737db6341a21a08aafcd147
--- /dev/null
+++ b/example/Vector/2_expressions/main.cpp
@@ -0,0 +1,251 @@
+#include "Vector/vector_dist.hpp"
+#include "Operators/Vector/vector_dist_operators.hpp"
+
+/*
+ * ### WIKI 1 ###
+ *
+ * ## Simple example to show how expression work with vector
+ *
+ * This example show how to use expressions to do complex calculation on particles
+ *
+ * ### WIKI END ###
+ *
+ */
+
+constexpr int A = 0;
+constexpr int B = 1;
+constexpr int C = 2;
+constexpr int D = 3;
+
+
+// First we define the kernel function (an exponential in this case)
+struct exp_kernel
+{
+ // variance of the exponential
+ float sigma;
+
+ // Constructor require to define the variance
+ exp_kernel(float sigma)
+ :sigma(sigma)
+ {}
+
+ // The kernel function accept the position p, the position q
+ inline Point<3,double> value(const Point<3,float> & p, const Point<3,float> & q,Point<3,double> & Pp,Point<3,double> & Pq)
+ {
+ // calculate the distance between p and q
+ float dist = norm(p-q);
+
+
+ return Pq * exp(- dist * dist / sigma);
+ }
+};
+
+
+int main(int argc, char* argv[])
+{
+ //
+ // ### WIKI 2 ###
+ //
+ // Here we Initialize the library, than we create a uniform random generator between 0 and 1 to to generate particles
+ // randomly in the domain, we create a Box that define our domain, boundary conditions, and ghost
+ //
+
+ // initialize the library
+ openfpm_init(&argc,&argv);
+
+ // Here we define our domain a 2D box with intervals from 0 to 1.0
+ Box<3,float> domain({0.0,0.0,0.0},{1.0,1.0,1.0});
+
+ // Here we define the boundary conditions of our problem
+ size_t bc[3]={PERIODIC,PERIODIC,PERIODIC};
+
+ // extended boundary around the domain, and the processor domain
+ Ghost<3,float> g(0.01);
+
+ // Delta t
+ double dt = 0.01;
+
+ // distributed vectors
+ vector_dist<3,double, aggregate,Point<3,double>> > vd(4096,domain,bc,g);
+ vector_dist<3,double, aggregate > vd2(4096,domain,bc,g);
+
+ // Assign random position to the vector dist
+ auto it = vd.getDomainIterator();
+
+ while (it.isNext())
+ {
+ auto p = it.get();
+
+ vd.getPos(p)[0] = (double)rand() / RAND_MAX;
+ vd.getPos(p)[1] = (double)rand() / RAND_MAX;
+ vd.getPos(p)[2] = (double)rand() / RAND_MAX;
+
+ vd2.getPos(p)[0] = (double)rand() / RAND_MAX;
+ vd2.getPos(p)[1] = (double)rand() / RAND_MAX;
+ vd2.getPos(p)[2] = (double)rand() / RAND_MAX;
+
+ ++it;
+ }
+
+ // Redistribute the particles and synchronize the ghost
+ vd.map();
+ vd.map();
+
+ //
+ // ### WIKI ###
+ //
+ // Here we create alias for the properties of the vectors
+ //
+
+ // vA is an alias for the property A of the vector vd
+ // vB is an alias for the property V of the vector vd
+ // vC is ...
+ auto vA = getV(vd);
+ auto vB = getV**(vd);
+ auto vC = getV(vd);
+ auto vD = getV(vd);
+ auto vPOS = getV(vd);
+
+ // same concept for the vector v2
+ auto v2A = getV<0>(vd);
+ auto v2POS = getV(vd);
+
+ // Assign 1 to the property A
+ vA = 1;
+
+ // Equal the property A to B
+ vB = vA;
+
+ // Assign to the property C and for each component 4.0
+ vC = 4;
+
+ // Assign te position of the particle to the property D
+ vD = vPOS;
+
+ //
+ // ### WIKI ###
+ //
+ // All these expression are applied point wise for each particles
+ //
+ // P.S.
+ //
+ // the * is a scalar product in case of vectors
+ // simple multiplication in case of scalar
+ //
+ //
+
+ // In vA we set the distance from the origin for each particle
+ vA = norm(vPOS);
+
+ //
+ // For each particle p calculate the expression under
+ //
+ // NOTE sin(2.0 * vD) and exp(5.0 * vD) are both vector
+ //
+ // so this is a scalar product
+ // |
+ // V
+ vA = vA + sin(2.0 * vD) * exp(1.2 * vD);
+ // |_____________________________|
+ // |
+ // V
+ // and this is a number
+ //
+ //
+
+
+ // pmul indicate component-wise multiplication the same as .* in Matlab
+ vC = pmul(vD,vD) * dt;
+
+ // Normalization of the vector vD
+ vD = vD / sqrt( vD * vD );
+
+ // we write the result on file
+ vd.write("output");
+
+ // We can also apply the expression in a second moment like this
+ Point<3,double> p0({0.5,0.5,0.5});
+
+ // we cannot use p0 directly we have to create an expression from it
+ auto p0_e = getVExpr(p0);
+
+ // As soon as the second vector have the some number of particle as v we can apply the expr1 to the v2 with v2D
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0_e)*(v2POS-p0_e)/2.0);
+
+ // here is executed on all particles of v2 and the result assigned to the property A of v2
+ v2A = expr1;
+
+ //
+ // ### WIKI ###
+ //
+ // Each operator= produce a iteration across particles. It is possible to use the function assign
+ // to execute multiple instructions in one cycle
+ //
+ // assign support an variable of istructions
+ //
+
+ assign(vA,1.0, // vA = 1
+ vB,expr1, // vB = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0_e)*(v2POS-p0_e)/2.0)
+ vC,vD/norm(vD), // vC = vD/norm(vD)
+ vD,2.0*vC); // vD = 2.0*vC
+
+ // As soon as the vector v have the some number of particle as v2 we can apply the expr1 to v
+ vA = expr1;
+
+ //
+ // ### WIKI ###
+ //
+ // we shown the simple usage of simple point-wise function like sin
+ // and exp. Here we show the function applyKernel than encapsulate
+ // the operation
+ //
+ // \sum_{q = Neighborhood p} Kernel(x_p,x_q,Up,Uq) * expression
+ //
+ // where x_p is the position of the particle p
+ // x_q is the position of the particle q
+ // U_p is the value of the property carried by the particle p
+ // U_q is the value of the property carried by the particle q
+ //
+ //
+
+ exp_kernel ker(0.5);
+ auto cl = vd.getCellList(0.1);
+
+ // We are going to do some calculation that require ghost, so sync it
+ vd.ghost_get<3>();
+
+ // Here we create the
+
+ // A renormalizaion of the vector vD is calculated on fly
+ //
+ // and than For each particle p
+ //
+ // \sum_{q = Neighborhood p} Ker(x_p,x_q,D_p,D_q) * \frac{D}{norm(D)}
+ //
+ //
+ // P.S.
+ //
+ // Cerefull here ApplyKernel is a special function if it act on property D we cannot write on property D
+ // ( vD = ... is an error and produce unpredictable result )
+ //
+ vC = applyKernel_in( vD / norm(vD) ,vd,cl,ker) + vD;
+
+ // ok, because does not use applyKernel
+ vD = vD / norm(vD);
+
+ //
+ // ### WIKI 9 ###
+ //
+ // Output the particle position for each processor
+ //
+
+ vd.deleteGhost();
+ vd.write("output2");
+
+ //
+ // ### WIKI 10 ###
+ //
+ // Deinitialize the library
+ //
+ openfpm_finalize();
+}
diff --git a/example/Vector/2_expressions/out b/example/Vector/2_expressions/out
new file mode 100644
index 0000000000000000000000000000000000000000..c368327aeea088202fb115955635cfecdd6dda1a
--- /dev/null
+++ b/example/Vector/2_expressions/out
@@ -0,0 +1,473 @@
+main.cpp: In function ‘int main(int, char**)’:
+main.cpp:153:24: error: ‘getExpr’ was not declared in this scope
+ auto p0_e = getExpr(p0);
+ ^
+main.cpp:156:45: error: no match for ‘operator-’ (operand types are ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ and ‘Point<3u, double>’)
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:766:1: note: candidate: template point_expression_op, Point, Point, 2u> operator-(const Point&, const Point&)
+ operator-(const Point & va, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:766:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:784:1: note: candidate: template point_expression_op, Point, 2u> operator-(const point_expression_op&, const Point&)
+ operator-(const point_expression_op & va, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:784:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:801:1: note: candidate: template point_expression_op, point_expression_op, 2u> operator-(const Point&, const point_expression_op&)
+ operator-(const Point & va, const point_expression_op & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:801:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:818:1: note: candidate: template point_expression_op, point_expression, 2u> operator-(const point_expression_op&, T)
+ operator-(const point_expression_op & va, T d)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:818:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:835:1: note: candidate: template point_expression_op, point_expression_op, 2u> operator-(T, const point_expression_op&)
+ operator-(T d, const point_expression_op & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:835:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘Point<3u, double>’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:853:1: note: candidate: template point_expression_op, point_expression_op, 2u> operator-(const point_expression_op&, const point_expression_op&)
+ operator-(const point_expression_op & va, const point_expression_op & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:853:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:870:1: note: candidate: template point_expression_op, Point, point_expression, 2u> operator-(const Point&, T)
+ operator-(const Point & va, T d)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:870:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:887:1: note: candidate: template point_expression_op, Point, point_expression, 2u> operator-(const Point&, double)
+ operator-(const Point & va, double d)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:887:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:904:1: note: candidate: template point_expression_op, point_expression, Point, 2u> operator-(T, const Point&)
+ operator-(T d, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:904:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: deduced conflicting types for parameter ‘T’ (‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ and ‘double’)
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:921:1: note: candidate: template point_expression_op, point_expression, Point, 2u> operator-(double, const Point&)
+ operator-(double d, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:921:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: cannot convert ‘v2POS’ (type ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’) to type ‘double’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:588:1: note: candidate: template vector_dist_expression_op, vector_dist_expression, 2u> operator-(const vector_dist_expression&, const vector_dist_expression&)
+ operator-(const vector_dist_expression & va, const vector_dist_expression & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:588:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘Point<3u, double>’ is not derived from ‘const vector_dist_expression’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:606:1: note: candidate: template vector_dist_expression_op, vector_dist_expression, 2u> operator-(const vector_dist_expression_op&, const vector_dist_expression&)
+ operator-(const vector_dist_expression_op & va, const vector_dist_expression & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:606:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:623:1: note: candidate: template vector_dist_expression_op, vector_dist_expression_op, 2u> operator-(const vector_dist_expression&, const vector_dist_expression_op&)
+ operator-(const vector_dist_expression & va, const vector_dist_expression_op & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:623:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘Point<3u, double>’ is not derived from ‘const vector_dist_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:640:1: note: candidate: template vector_dist_expression_op, vector_dist_expression_op, 2u> operator-(const vector_dist_expression_op&, const vector_dist_expression_op&)
+ operator-(const vector_dist_expression_op & va, const vector_dist_expression_op & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:640:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:657:1: note: candidate: template vector_dist_expression_op, vector_dist_expression<0u, double>, 2u> operator-(const vector_dist_expression&, double)
+ operator-(const vector_dist_expression & va, double d)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:657:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: cannot convert ‘p0’ (type ‘Point<3u, double>’) to type ‘double’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:674:1: note: candidate: template vector_dist_expression_op, vector_dist_expression, 2u> operator-(double, const vector_dist_expression&)
+ operator-(double d, const vector_dist_expression & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:674:1: note: template argument deduction/substitution failed:
+main.cpp:156:46: note: cannot convert ‘v2POS’ (type ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’) to type ‘double’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+main.cpp:156:56: error: no match for ‘operator-’ (operand types are ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ and ‘Point<3u, double>’)
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:766:1: note: candidate: template point_expression_op, Point, Point, 2u> operator-(const Point&, const Point&)
+ operator-(const Point & va, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:766:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:784:1: note: candidate: template point_expression_op, Point, 2u> operator-(const point_expression_op&, const Point&)
+ operator-(const point_expression_op & va, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:784:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:801:1: note: candidate: template point_expression_op, point_expression_op, 2u> operator-(const Point&, const point_expression_op&)
+ operator-(const Point & va, const point_expression_op & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:801:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:818:1: note: candidate: template point_expression_op, point_expression, 2u> operator-(const point_expression_op&, T)
+ operator-(const point_expression_op & va, T d)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:818:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:835:1: note: candidate: template point_expression_op, point_expression_op, 2u> operator-(T, const point_expression_op&)
+ operator-(T d, const point_expression_op & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:835:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘Point<3u, double>’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:853:1: note: candidate: template point_expression_op, point_expression_op, 2u> operator-(const point_expression_op&, const point_expression_op&)
+ operator-(const point_expression_op & va, const point_expression_op & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:853:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const point_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:870:1: note: candidate: template point_expression_op, Point, point_expression, 2u> operator-(const Point&, T)
+ operator-(const Point & va, T d)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:870:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:887:1: note: candidate: template point_expression_op, Point, point_expression, 2u> operator-(const Point&, double)
+ operator-(const Point & va, double d)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:887:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const Point’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:904:1: note: candidate: template point_expression_op, point_expression, Point, 2u> operator-(T, const Point&)
+ operator-(T d, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:904:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: deduced conflicting types for parameter ‘T’ (‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ and ‘double’)
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from /usr/local/openfpm_data/include/Space/Shape/Point.hpp:12:0,
+ from /usr/local/openfpm_data/include/Space/Shape/Sphere.hpp:11,
+ from /usr/local/openfpm_data/include/Space/Shape/Box.hpp:5,
+ from /usr/local/openfpm_data/include/Grid/grid_sm.hpp:10,
+ from /usr/local/openfpm_data/include/Grid/map_grid.hpp:39,
+ from /usr/local/openfpm_data/include/Vector/map_vector.hpp:22,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_util.hpp:12,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter_point_set.hpp:11,
+ from /usr/local/openfpm_io/include/HDF5_XdmfWriter/HDF5_XdmfWriter.hpp:21,
+ from /usr/local/openfpm_pdata/include/Vector/vector_dist.hpp:11,
+ from main.cpp:1:
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:921:1: note: candidate: template point_expression_op, point_expression, Point, 2u> operator-(double, const Point&)
+ operator-(double d, const Point & vb)
+ ^
+/usr/local/openfpm_data/include/Space/Shape/Point_operators.hpp:921:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: cannot convert ‘v2POS’ (type ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’) to type ‘double’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:588:1: note: candidate: template vector_dist_expression_op, vector_dist_expression, 2u> operator-(const vector_dist_expression&, const vector_dist_expression&)
+ operator-(const vector_dist_expression & va, const vector_dist_expression & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:588:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘Point<3u, double>’ is not derived from ‘const vector_dist_expression’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:606:1: note: candidate: template vector_dist_expression_op, vector_dist_expression, 2u> operator-(const vector_dist_expression_op&, const vector_dist_expression&)
+ operator-(const vector_dist_expression_op & va, const vector_dist_expression & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:606:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:623:1: note: candidate: template vector_dist_expression_op, vector_dist_expression_op, 2u> operator-(const vector_dist_expression&, const vector_dist_expression_op&)
+ operator-(const vector_dist_expression & va, const vector_dist_expression_op & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:623:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘Point<3u, double>’ is not derived from ‘const vector_dist_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:640:1: note: candidate: template vector_dist_expression_op, vector_dist_expression_op, 2u> operator-(const vector_dist_expression_op&, const vector_dist_expression_op&)
+ operator-(const vector_dist_expression_op & va, const vector_dist_expression_op & vb)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:640:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: ‘vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:657:1: note: candidate: template vector_dist_expression_op, vector_dist_expression<0u, double>, 2u> operator-(const vector_dist_expression&, double)
+ operator-(const vector_dist_expression & va, double d)
+ ^
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:657:1: note: template argument deduction/substitution failed:
+main.cpp:156:57: note: cannot convert ‘p0’ (type ‘Point<3u, double>’) to type ‘double’
+ auto expr1 = 1.0/2.0/sqrt(M_PI)*exp(-(v2POS-p0)*(v2POS-p0)/2.0);
+ ^
+In file included from main.cpp:2:0:
+/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:674:1: note: candidate: template vector_dist_expression_op, vector_dist_expression, 2u> operator-(double, const vector_dist_expression**