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<double,double,Point<3,double>,Point<3,double>> > vd(4096,domain,bc,g); + vector_dist<3,double, aggregate<double> > 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<A>(vd); + auto vB = getV<B>(vd); + auto vC = getV<C>(vd); + auto vD = getV<D>(vd); + auto vPOS = getV<PROP_POS>(vd); + + // same concept for the vector v2 + auto v2A = getV<0>(vd); + auto v2POS = getV<PROP_POS>(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<float, float, Point<3u, double>, 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<unsigned int dim, class T> point_expression_op<Point<dim, T>, Point<dim, T>, Point<dim, T>, 2u> operator-(const Point<dim, T>&, const Point<dim, T>&) + operator-(const Point<dim,T> & va, const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<class orig, class exp1, class exp2, unsigned int op1, unsigned int dim, class T> point_expression_op<orig, point_expression_op<orig, exp1, exp2, op1>, Point<dim, T>, 2u> operator-(const point_expression_op<orig, exp1, exp2, op1>&, const Point<dim, T>&) + operator-(const point_expression_op<orig,exp1,exp2,op1> & va, const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const point_expression_op<orig, exp1, exp2, op1>’ + 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<class orig, class exp1, class exp2, unsigned int op1, unsigned int dim, class T> point_expression_op<orig, Point<dim, T>, point_expression_op<orig, exp1, exp2, op1>, 2u> operator-(const Point<dim, T>&, const point_expression_op<orig, exp1, exp2, op1>&) + operator-(const Point<dim,T> & va, const point_expression_op<orig,exp1,exp2,op1> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<class orig, class exp1, class exp2, unsigned int op1, class T> point_expression_op<orig, point_expression_op<orig, exp1, exp2, op1>, point_expression<T>, 2u> operator-(const point_expression_op<orig, exp1, exp2, op1>&, T) + operator-(const point_expression_op<orig,exp1,exp2,op1> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const point_expression_op<orig, exp1, exp2, op1>’ + 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<class orig, class exp1, class exp2, unsigned int op1, class T> point_expression_op<orig, point_expression<T>, point_expression_op<orig, exp1, exp2, op1>, 2u> operator-(T, const point_expression_op<orig, exp1, exp2, op1>&) + operator-(T d, const point_expression_op<orig,exp1,exp2,op1> & 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<orig, exp1, exp2, op1>’ + 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<class orig, class exp1, class exp2, unsigned int op1, class exp3, class exp4, unsigned int op2> point_expression_op<orig, point_expression_op<orig, exp1, exp2, op1>, point_expression_op<orig, exp3, exp4, op2>, 2u> operator-(const point_expression_op<orig, exp1, exp2, op1>&, const point_expression_op<orig, exp3, exp4, op2>&) + operator-(const point_expression_op<orig,exp1,exp2,op1> & va, const point_expression_op<orig,exp3,exp4,op2> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const point_expression_op<orig, exp1, exp2, op1>’ + 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<unsigned int dim, class T, class check> point_expression_op<Point<dim, T>, Point<dim, T>, point_expression<T>, 2u> operator-(const Point<dim, T>&, T) + operator-(const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<unsigned int dim, class T> point_expression_op<Point<dim, T>, Point<dim, T>, point_expression<double>, 2u> operator-(const Point<dim, T>&, double) + operator-(const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<unsigned int dim, class T, class check> point_expression_op<Point<dim, T>, point_expression<T>, Point<dim, T>, 2u> operator-(T, const Point<dim, T>&) + operator-(T d, const Point<dim,T> & 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<float, float, Point<3u, double>, 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<unsigned int dim, class T> point_expression_op<Point<dim, T>, point_expression<double>, Point<dim, T>, 2u> operator-(double, const Point<dim, T>&) + operator-(double d, const Point<dim,T> & 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<float, float, Point<3u, double>, 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<unsigned int p1, unsigned int p2, class v1, class v2> vector_dist_expression_op<vector_dist_expression<p1, v1>, vector_dist_expression<p2, v2>, 2u> operator-(const vector_dist_expression<p1, v1>&, const vector_dist_expression<p2, v2>&) + operator-(const vector_dist_expression<p1,v1> & va, const vector_dist_expression<p2,v2> & 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<p2, v2>’ + 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<class exp1, class exp2, unsigned int op1, unsigned int p2, class v2> vector_dist_expression_op<vector_dist_expression_op<exp1, exp2, op1>, vector_dist_expression<prp1, v1>, 2u> operator-(const vector_dist_expression_op<exp1, exp2, op1>&, const vector_dist_expression<prp1, v1>&) + operator-(const vector_dist_expression_op<exp1,exp2,op1> & va, const vector_dist_expression<p2,v2> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op<exp1, exp2, op1>’ + 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<class exp1, class exp2, unsigned int op1, unsigned int p2, class v2> vector_dist_expression_op<vector_dist_expression<prp1, v1>, vector_dist_expression_op<exp1, exp2, op1>, 2u> operator-(const vector_dist_expression<prp1, v1>&, const vector_dist_expression_op<exp1, exp2, op1>&) + operator-(const vector_dist_expression<p2,v2> & va, const vector_dist_expression_op<exp1,exp2,op1> & 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<exp1, exp2, op1>’ + 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<class exp1, class exp2, unsigned int op1, class exp3, class exp4, unsigned int op2> vector_dist_expression_op<vector_dist_expression_op<exp1, exp2, op1>, vector_dist_expression_op<exp3, exp4, op2>, 2u> operator-(const vector_dist_expression_op<exp1, exp2, op1>&, const vector_dist_expression_op<exp3, exp4, op2>&) + operator-(const vector_dist_expression_op<exp1,exp2,op1> & va, const vector_dist_expression_op<exp3,exp4,op2> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op<exp1, exp2, op1>’ + 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<unsigned int prp1, class v1> vector_dist_expression_op<vector_dist_expression<prp, vector>, vector_dist_expression<0u, double>, 2u> operator-(const vector_dist_expression<prp, vector>&, double) + operator-(const vector_dist_expression<prp1,v1> & 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<unsigned int prp1, class v1> vector_dist_expression_op<vector_dist_expression<0u, double>, vector_dist_expression<prp, vector>, 2u> operator-(double, const vector_dist_expression<prp, vector>&) + operator-(double d, const vector_dist_expression<prp1,v1> & 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<float, float, Point<3u, double>, 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<float, float, Point<3u, double>, 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<unsigned int dim, class T> point_expression_op<Point<dim, T>, Point<dim, T>, Point<dim, T>, 2u> operator-(const Point<dim, T>&, const Point<dim, T>&) + operator-(const Point<dim,T> & va, const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<class orig, class exp1, class exp2, unsigned int op1, unsigned int dim, class T> point_expression_op<orig, point_expression_op<orig, exp1, exp2, op1>, Point<dim, T>, 2u> operator-(const point_expression_op<orig, exp1, exp2, op1>&, const Point<dim, T>&) + operator-(const point_expression_op<orig,exp1,exp2,op1> & va, const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const point_expression_op<orig, exp1, exp2, op1>’ + 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<class orig, class exp1, class exp2, unsigned int op1, unsigned int dim, class T> point_expression_op<orig, Point<dim, T>, point_expression_op<orig, exp1, exp2, op1>, 2u> operator-(const Point<dim, T>&, const point_expression_op<orig, exp1, exp2, op1>&) + operator-(const Point<dim,T> & va, const point_expression_op<orig,exp1,exp2,op1> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<class orig, class exp1, class exp2, unsigned int op1, class T> point_expression_op<orig, point_expression_op<orig, exp1, exp2, op1>, point_expression<T>, 2u> operator-(const point_expression_op<orig, exp1, exp2, op1>&, T) + operator-(const point_expression_op<orig,exp1,exp2,op1> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const point_expression_op<orig, exp1, exp2, op1>’ + 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<class orig, class exp1, class exp2, unsigned int op1, class T> point_expression_op<orig, point_expression<T>, point_expression_op<orig, exp1, exp2, op1>, 2u> operator-(T, const point_expression_op<orig, exp1, exp2, op1>&) + operator-(T d, const point_expression_op<orig,exp1,exp2,op1> & 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<orig, exp1, exp2, op1>’ + 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<class orig, class exp1, class exp2, unsigned int op1, class exp3, class exp4, unsigned int op2> point_expression_op<orig, point_expression_op<orig, exp1, exp2, op1>, point_expression_op<orig, exp3, exp4, op2>, 2u> operator-(const point_expression_op<orig, exp1, exp2, op1>&, const point_expression_op<orig, exp3, exp4, op2>&) + operator-(const point_expression_op<orig,exp1,exp2,op1> & va, const point_expression_op<orig,exp3,exp4,op2> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const point_expression_op<orig, exp1, exp2, op1>’ + 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<unsigned int dim, class T, class check> point_expression_op<Point<dim, T>, Point<dim, T>, point_expression<T>, 2u> operator-(const Point<dim, T>&, T) + operator-(const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<unsigned int dim, class T> point_expression_op<Point<dim, T>, Point<dim, T>, point_expression<double>, 2u> operator-(const Point<dim, T>&, double) + operator-(const Point<dim,T> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const Point<dim, T>’ + 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<unsigned int dim, class T, class check> point_expression_op<Point<dim, T>, point_expression<T>, Point<dim, T>, 2u> operator-(T, const Point<dim, T>&) + operator-(T d, const Point<dim,T> & 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<float, float, Point<3u, double>, 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<unsigned int dim, class T> point_expression_op<Point<dim, T>, point_expression<double>, Point<dim, T>, 2u> operator-(double, const Point<dim, T>&) + operator-(double d, const Point<dim,T> & 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<float, float, Point<3u, double>, 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<unsigned int p1, unsigned int p2, class v1, class v2> vector_dist_expression_op<vector_dist_expression<p1, v1>, vector_dist_expression<p2, v2>, 2u> operator-(const vector_dist_expression<p1, v1>&, const vector_dist_expression<p2, v2>&) + operator-(const vector_dist_expression<p1,v1> & va, const vector_dist_expression<p2,v2> & 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<p2, v2>’ + 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<class exp1, class exp2, unsigned int op1, unsigned int p2, class v2> vector_dist_expression_op<vector_dist_expression_op<exp1, exp2, op1>, vector_dist_expression<prp1, v1>, 2u> operator-(const vector_dist_expression_op<exp1, exp2, op1>&, const vector_dist_expression<prp1, v1>&) + operator-(const vector_dist_expression_op<exp1,exp2,op1> & va, const vector_dist_expression<p2,v2> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op<exp1, exp2, op1>’ + 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<class exp1, class exp2, unsigned int op1, unsigned int p2, class v2> vector_dist_expression_op<vector_dist_expression<prp1, v1>, vector_dist_expression_op<exp1, exp2, op1>, 2u> operator-(const vector_dist_expression<prp1, v1>&, const vector_dist_expression_op<exp1, exp2, op1>&) + operator-(const vector_dist_expression<p2,v2> & va, const vector_dist_expression_op<exp1,exp2,op1> & 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<exp1, exp2, op1>’ + 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<class exp1, class exp2, unsigned int op1, class exp3, class exp4, unsigned int op2> vector_dist_expression_op<vector_dist_expression_op<exp1, exp2, op1>, vector_dist_expression_op<exp3, exp4, op2>, 2u> operator-(const vector_dist_expression_op<exp1, exp2, op1>&, const vector_dist_expression_op<exp3, exp4, op2>&) + operator-(const vector_dist_expression_op<exp1,exp2,op1> & va, const vector_dist_expression_op<exp3,exp4,op2> & 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<float, float, Point<3u, double>, Point<3u, double> > > >’ is not derived from ‘const vector_dist_expression_op<exp1, exp2, op1>’ + 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<unsigned int prp1, class v1> vector_dist_expression_op<vector_dist_expression<prp, vector>, vector_dist_expression<0u, double>, 2u> operator-(const vector_dist_expression<prp, vector>&, double) + operator-(const vector_dist_expression<prp1,v1> & 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<unsigned int prp1, class v1> vector_dist_expression_op<vector_dist_expression<0u, double>, vector_dist_expression<prp, vector>, 2u> operator-(double, const vector_dist_expression<prp, vector>&) + operator-(double d, const vector_dist_expression<prp1,v1> & vb) + ^ +/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:674: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<float, float, Point<3u, double>, 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: In instantiation of ‘vector& vector_dist_expression<prp, vector>::operator=(const vector_dist_expression_op<exp1, exp2, op>&) [with exp1 = vector_dist_expression<4294967295u, vector_dist<3u, double, aggregate<float, float, Point<3u, double>, Point<3u, double> > > >; exp2 = void; unsigned int op = 56u; unsigned int prp = 0u; vector = vector_dist<3u, double, aggregate<float, float, Point<3u, double>, Point<3u, double> > >]’: +main.cpp:121:5: required from here +/usr/local/openfpm_numerics/include/Operators/Vector/vector_dist_operators.hpp:379:33: error: cannot convert ‘double*’ to ‘float’ in assignment + v.template getProp<prp>(key) = v_exp.value(key); + ^ +make: *** [main.o] Error 1 diff --git a/footer.html b/footer.html new file mode 100644 index 0000000000000000000000000000000000000000..42c56b31909cf9eb98f252e11693b18549334c49 --- /dev/null +++ b/footer.html @@ -0,0 +1,21 @@ +<!-- HTML footer for doxygen 1.8.10--> +<!-- start footer part --> +<!--BEGIN GENERATE_TREEVIEW--> +<div id="nav-path" class="navpath"><!-- id is needed for treeview function! --> + <ul> + $navpath + <li class="footer">$generatedby + <a href="http://www.doxygen.org/index.html"> + <img class="footer" src="$relpath^doxygen.png" alt="doxygen"/></a> $doxygenversion </li> + </ul> +</div> +<!--END GENERATE_TREEVIEW--> +<!--BEGIN !GENERATE_TREEVIEW--> +<hr class="footer"/><address class="footer"><small> +$generatedby  <a href="http://www.doxygen.org/index.html"> +<img class="footer" src="$relpath^doxygen.png" alt="doxygen"/> +</a> $doxygenversion +</small></address> +<!--END !GENERATE_TREEVIEW--> +</body> +</html> diff --git a/header.html b/header.html new file mode 100644 index 0000000000000000000000000000000000000000..de3204dd3d8dc17f80d1c8de44e392377e1089a1 --- /dev/null +++ b/header.html @@ -0,0 +1,55 @@ +<!-- HTML header for doxygen 1.8.10--> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> +<meta http-equiv="X-UA-Compatible" content="IE=9"/> +<meta name="generator" content="Doxygen $doxygenversion"/> +<!--BEGIN PROJECT_NAME--><title>$projectname: $title</title><!--END PROJECT_NAME--> +<!--BEGIN !PROJECT_NAME--><title>$title</title><!--END !PROJECT_NAME--> +<link href="$relpath^tabs.css" rel="stylesheet" type="text/css"/> +<script type="text/javascript" src="$relpath^jquery.js"></script> +<script type="text/javascript" src="$relpath^dynsections.js"></script> +$treeview +$search +$mathjax +<link href="$relpath^$stylesheet" rel="stylesheet" type="text/css" /> +$extrastylesheet +</head> +<body> +<div id="top"><!-- do not remove this div, it is closed by doxygen! --> + +<!--BEGIN TITLEAREA--> +<div id="titlearea"> +<table cellspacing="0" cellpadding="0"> + <tbody> + <tr style="height: 56px;"> + <!--BEGIN PROJECT_LOGO--> + <td id="projectlogo"><img alt="Logo" src="$relpath^$projectlogo"/></td> + <!--END PROJECT_LOGO--> + <!--BEGIN PROJECT_NAME--> + <td id="projectalign" style="padding-left: 0.5em;"> + <div id="projectname">$projectname + <!--BEGIN PROJECT_NUMBER--> <span id="projectnumber">$projectnumber</span><!--END PROJECT_NUMBER--> + </div> + <!--BEGIN PROJECT_BRIEF--><div id="projectbrief">$projectbrief</div><!--END PROJECT_BRIEF--> + </td> + <!--END PROJECT_NAME--> + <!--BEGIN !PROJECT_NAME--> + <!--BEGIN PROJECT_BRIEF--> + <td style="padding-left: 0.5em;"> + <div id="projectbrief">$projectbrief</div> + </td> + <!--END PROJECT_BRIEF--> + <!--END !PROJECT_NAME--> + <!--BEGIN DISABLE_INDEX--> + <!--BEGIN SEARCHENGINE--> + <td>$searchbox</td> + <!--END SEARCHENGINE--> + <!--END DISABLE_INDEX--> + </tr> + </tbody> +</table> +</div> +<!--END TITLEAREA--> +<!-- end header part --> diff --git a/install b/install index 5229ec03dcfad48c6963243acc69ae48d8f40574..c62d6f13844f219547320d00f4e4003bdb5e147f 100755 --- a/install +++ b/install @@ -329,14 +329,8 @@ else fi -### Create example.mk +# Where openfpm is going to be installed install_base=$(cat install_dir) -echo "INCLUDE_PATH=-I. -I$install_base/openfpm_numerics/include -I$install_base/openfpm_pdata/include/config -I$install_base/openfpm_pdata/include -I$install_base/openfpm_data/include -I$install_base/openfpm_vcluster/include -I$install_base/openfpm_io/include -I$install_base/openfpm_devices/include -I$i_dir/METIS/include -I$i_dir/PARMETIS/include -I$i_dir/BOOST/include -I$i_dir/HDF5/include $lin_alg_inc" > example.mk -echo "LIBS_PATH= -L$install_base/openfpm_devices/lib -L$install_base/openfpm_pdata/lib -L$install_base/openfpm_vcluster/lib -L$i_dir/METIS/lib -L$i_dir/PARMETIS/lib -L$i_dir/BOOST/lib -L$i_dir/HDF5/lib $lin_alg_dir" >> example.mk -echo "LIBS=-lvcluster -lofpm_pdata -lofpmmemory -lparmetis -lmetis -lboost_iostreams -lhdf5 $lin_alg_lib" >> example.mk -echo "LIBS_SE2=-lvcluster -lofpmmemory_se2 -lparmetis -lmetis -lboost_iostreams -lhdf5 $lin_alg_lib" >> example.mk -cp example.mk src/example.mk -cp example.mk example/example.mk make clean make @@ -364,6 +358,10 @@ echo "" echo -e "\033[1;34;5m ---------- Mandatory packages --------- \033[0m" echo "" +example_library_path="" +example_library="" +example_include_path="" + if [ -d "$i_dir/MPI" ]; then installation_report="$installation_report \033[92;1mMPI\033[0m Installed: \033[1m $i_dir/MPI \033[0m\n" bash_path="$bash_path:$i_dir/MPI/bin" @@ -375,16 +373,25 @@ fi if [ -d "$i_dir/METIS" ]; then installation_report="$installation_report \033[92;1mMETIS\033[0m Installed: \033[1m $i_dir/METIS \033[0m\n" bash_library="$bash_library:$i_dir/METIS/lib" + example_library_path="$example_library_path -L$i_dir/METIS/lib" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/METIS/include" fi if [ -d "$i_dir/PARMETIS" ]; then installation_report="$installation_report \033[92;1mPARMETIS\033[0m Installed: \033[1m $i_dir/PARMETIS \033[0m\n" bash_library="$bash_library:$i_dir/PARMETIS/lib" + example_library_path="$example_library_path -L$i_dir/PARMETIS/lib" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/PARMETIS/include" fi if [ -d "$i_dir/BOOST" ]; then installation_report="$installation_report \033[92;1mBOOST\033[0m Installed: \033[1m $i_dir/BOOST \033[0m\n" bash_library="$bash_library:$i_dir/BOOST/lib" + example_library_path="$example_library_path -L$i_dir/BOOST/lib" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/BOOST/include" elif [ $BOOST_System_prv -eq 1 ]; then installation_report="$installation_report \033[92;1mBOOST\033[0m Installed: \033[1m System installation \033[0m\n" fi @@ -392,6 +399,9 @@ fi if [ -d "$i_dir/HDF5" ]; then installation_report="$installation_report \033[92;1mHDF5\033[0m Installed: \033[1m $i_dir/HDF5 \033[0m\n" bash_library="$bash_library:$i_dir/HDF5/lib" + example_library_path="$example_library_path -L$i_dir/HDF5/lib" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/HDF5/include" fi echo -e "$installation_report" @@ -405,12 +415,18 @@ installation_report="" if [ -d "$i_dir/PETSC" ]; then installation_report="$installation_report \033[92;1mPETSC\033[0m Installed: \033[1m $i_dir/PETSC \033[0m\n" bash_library="$bash_library:$i_dir/PETSC/lib" + example_library_path="$example_library_path -L$i_dir/PETSC/lib" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/PETSC/include" else installation_report="$installation_report \033[91;1mPETSC\033[0m Installed: \033[1m NO \033[0m\n" fi if [ -d "$i_dir/EIGEN" ]; then installation_report="$installation_report \033[92;1mEIGEN\033[0m Installed: \033[1m $i_dir/EIGEN \033[0m\n" + example_library_path="$example_library_path" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/EIGEN/include" fi echo -e "$installation_report" @@ -422,6 +438,9 @@ installation_report="" if [ -d "$i_dir/TRILINOS" ]; then installation_report="$installation_report \033[92;1mTRILINOS\033[0m Installed: \033[1m $i_dir/TRILINOS \033[0m\n" bash_library="$bash_library:$i_dir/TRILINOS/lib" + example_library_path="$example_library_path" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/TRILINOS/include" else installation_report="$installation_report \033[91;1mTRILINOS\033[0m Installed: \033[1m NO \033[0m\n" fi @@ -429,6 +448,8 @@ fi if [ -d "$i_dir/OPENBLAS" ]; then installation_report="$installation_report \033[92;1mOPENBLAS\033[0m Installed: \033[1m $i_dir/OPENBLAS \033[0m\n" bash_library="$bash_library:$i_dir/OPENBLAS/lib" + example_library_path="$example_library_path" + example_library="$example_library" else installation_report="$installation_report \033[91;1mOPENBLAS\033[0m Installed: \033[1m NO \033[0m\n" fi @@ -436,6 +457,9 @@ fi if [ -d "$i_dir/SUITESPARSE" ]; then installation_report="$installation_report \033[92;1mSUITESPARSE\033[0m Installed: \033[1m $i_dir/SUITESPARSE \033[0m\n" bash_library="$bash_library:$i_dir/SUITESPARSE/lib" + example_library_path="$example_library_path -L$i_dir/SUITESPARSE/lib" + example_library="$example_library" + example_include_path="$example_include_path -I$i_dir/SUITESPARSE/include" else installation_report="$installation_report \033[91;1mSUITESPARSE\033[0m Installed: \033[1m NO \033[0m\n" fi @@ -443,6 +467,8 @@ fi if [ -d "$i_dir/SCALAPACK" ]; then installation_report="$installation_report \033[92;1mSCALAPACK\033[0m Installed: \033[1m $i_dir/SCALAPACK \033[0m\n" bash_library="$bash_library:$i_dir/SCALAPACK/lib" + example_library_path="$example_library_path" + example_library="$example_library" else installation_report="$installation_report \033[91;1mSCALAPACK\033[0m Installed: \033[1m NO \033[0m\n" fi @@ -450,6 +476,8 @@ fi if [ -d "$i_dir/MUMPS" ]; then installation_report="$installation_report \033[92;1mMUMPS\033[0m Installed: \033[1m $i_dir/MUMPS \033[0m\n" bash_library="$bash_library:$i_dir/MUMPS/lib" + example_library_path="$example_library_path" + example_library="$example_library" else installation_report="$installation_report \033[91;1mMUMPS\033[0m Installed: \033[1m NO \033[0m\n" fi @@ -457,6 +485,8 @@ fi if [ -d "$i_dir/SUPERLU_DIST" ]; then installation_report="$installation_report \033[92;1mSUPERLU_DIST\033[0m Installed: \033[1m $i_dir/SUPERLU_DIST \033[0m\n" bash_library="$bash_library:$i_dir/SUPERLU_DIST/lib" + example_library_path="$example_library_path" + example_library="$example_library" else installation_report="$installation_report \033[91;1mSUPERLU_DIST\033[0m Installed: \033[1m NO \033[0m\n" fi @@ -464,6 +494,8 @@ fi if [ -d "$i_dir/HYPRE" ]; then installation_report="$installation_report \033[92;1mHYPRE\033[0m Installed: \033[1m $i_dir/HYPRE \033[0m\n" bash_library="$bash_library:$i_dir/HYPRE/lib" + example_library_path="$example_library_path" + example_library="$example_library" else installation_report="$installation_report \033[91;1mHYPRE\033[0m Installed: \033[1m NO \033[0m\n" fi @@ -476,6 +508,15 @@ bash_library="$bash_library\"" echo "$bash_path" > $HOME/openfpm_vars echo "$bash_library" >> $HOME/openfpm_vars +### Create example.mk + +echo "INCLUDE_PATH=-I. -I$install_base/openfpm_numerics/include -I$install_base/openfpm_pdata/include/config -I$install_base/openfpm_pdata/include -I$install_base/openfpm_data/include -I$install_base/openfpm_vcluster/include -I$install_base/openfpm_io/include -I$install_base/openfpm_devices/include $example_include_path $lin_alg_inc" > example.mk +echo "LIBS_PATH= -L$install_base/openfpm_devices/lib -L$install_base/openfpm_pdata/lib -L$install_base/openfpm_vcluster/lib $example_library_path $lin_alg_dir" >> example.mk +echo "LIBS=-lvcluster -lofpm_pdata -lofpmmemory -lparmetis -lmetis -lboost_iostreams -lhdf5 $lin_alg_lib" >> example.mk +echo "LIBS_SE2=-lvcluster -lofpmmemory_se2 -lparmetis -lmetis -lboost_iostreams -lhdf5 $lin_alg_lib" >> example.mk +cp example.mk src/example.mk +cp example.mk example/example.mk + echo -e "$installation_report" echo "" echo "" diff --git a/ofpdoxygen.css b/ofpdoxygen.css new file mode 100644 index 0000000000000000000000000000000000000000..b2c94ac212bd24085366baaca1d63d5ed978724d --- /dev/null +++ b/ofpdoxygen.css @@ -0,0 +1,1454 @@ +/* The standard CSS for doxygen 1.8.10 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px cyan; +} + +dt { + font-weight: bold; +} + +div.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.qindex, div.navtab{ + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; +} + +div.qindex, div.navpath { + width: 100%; + line-height: 140%; +} + +div.navtab { + margin-right: 15px; +} + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +a.qindex { + font-weight: bold; +} + +a.qindexHL { + font-weight: bold; + background-color: #9CAFD4; + color: #ffffff; + border: 1px double #869DCA; +} + +.contents a.qindexHL:visited { + color: #ffffff; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +pre.fragment { + border: 1px solid #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 4px 6px; + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line.glow { + background-color: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +div.ah, span.ah { + background-color: black; + font-weight: bold; + color: #ffffff; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000); +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +img.formulaDsp { + +} + +img.formulaInl { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px cyan; +} + +.memname { + font-weight: bold; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + -moz-border-radius-topleft: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + -webkit-border-top-left-radius: 4px; + +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: #602020; + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir { + font-family: "courier new",courier,monospace; + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid #9CAFD4; + border-bottom: 1px solid #9CAFD4; + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: #3D578C; +} + +.arrow { + color: #9CAFD4; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: #2A3D61; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color:#364D7C; + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +dl +{ + padding: 0 0 0 10px; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug */ +dl.section +{ + margin-left: 0px; + padding-left: 0px; +} + +dl.note +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00D000; +} + +dl.deprecated +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #505050; +} + +dl.todo +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #00C0E0; +} + +dl.test +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #3030E0; +} + +dl.bug +{ + margin-left:-7px; + padding-left: 3px; + border-left:4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; +} + +dl.citelist dd { + margin:2px 0; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 20px 10px 10px; + width: 200px; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + white-space: nowrap; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: #ffffff; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #ffffff; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} +