5 #ifndef OPENFPM_PDATA_BOOST_VECTOR_ALGEBRA_OFP_HPP 6 #define OPENFPM_PDATA_BOOST_VECTOR_ALGEBRA_OFP_HPP 53 template<
typename S1,
typename S2>
71 v1.data.template get<T::value>().getVector().resize(v2.data.template get<T::value>().getVector().size());
79 template<
typename vector_type,
typename index_type,
typename op_type>
101 op(v.data.template get<T::value>().getVector().template get<0>(p));
107 template<
class S1 ,
class Op >
108 static void for_each1( S1 &s1 , Op op )
112 auto it=s1.data.template get<0>().getVector().getIterator();
118 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
125 template<
typename S1,
typename S2,
typename index_type,
typename op_type>
141 :v1(v1),v2(v2),p(p),op(op)
147 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p));
150 template<
class S1 ,
class S2 ,
class Op >
151 static void for_each2( S1 &s1 , S2 &s2 , Op op )
154 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
157 auto it=s1.data.template get<0>().getVector().getIterator();
161 for_each_prop2<S1,S2,size_t,Op> cp(s1,s2,p,op);
163 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
171 template<
typename S1,
typename S2,
typename S3,
typename index_type,
typename op_type>
188 :v1(v1),v2(v2),v3(v3),p(p),op(op)
195 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p));
200 template<
class S1 ,
class S2 ,
class S3 ,
class Op >
201 static void for_each3( S1 &s1 , S2 &s2 , S3 &s3 , Op op )
206 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(the_resize);
208 auto it=s1.data.template get<0>().getVector().getIterator();
212 for_each_prop3<S1,S2,S3,size_t,Op> cp(s1,s2,s3,p,op);
214 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
221 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename index_type,
typename op_type>
240 :v1(v1),v2(v2),v3(v3),v4(v4),p(p),op(op)
246 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p));
250 template<
class S1 ,
class S2 ,
class S3 ,
class S4 ,
class Op >
251 static void for_each4( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , Op op )
254 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
256 auto it=s1.data.template get<0>().getVector().getIterator();
260 for_each_prop4<S1,S2,S3,S4,size_t,Op> cp(s1,s2,s3,s4,p,op);
262 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
269 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename index_type,
typename op_type>
288 inline for_each_prop5(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,index_type &p,op_type &op)
289 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),p(p),op(op)
295 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p));
299 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5 ,
class Op >
300 static void for_each5( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5 , Op op )
303 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
305 auto it=s1.data.template get<0>().getVector().getIterator();
309 for_each_prop5<S1,S2,S3,S4,S5,size_t,Op> cp(s1,s2,s3,s4,s5,p,op);
311 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
318 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename index_type,
typename op_type>
339 inline for_each_prop6(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,index_type &p,op_type &op)
340 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),p(p),op(op)
346 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p));
349 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class Op >
350 static void for_each6( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6 , Op op )
353 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
355 auto it=s1.data.template get<0>().getVector().getIterator();
359 for_each_prop6<S1,S2,S3,S4,S5,S6,size_t,Op> cp(s1,s2,s3,s4,s5,s6,p,op);
361 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
369 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename index_type,
typename op_type>
391 inline for_each_prop7(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,index_type &p,op_type &op)
392 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),p(p),op(op)
398 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p));
403 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class Op >
404 static void for_each7( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7 , Op op )
407 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
409 auto it=s1.data.template get<0>().getVector().getIterator();
413 for_each_prop7<S1,S2,S3,S4,S5,S6,S7,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,p,op);
415 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
421 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename index_type,
typename op_type>
444 inline for_each_prop8(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,index_type &p,op_type &op)
445 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),p(p),op(op)
451 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p));
456 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class Op >
457 static void for_each8( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8 , Op op )
460 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
462 auto it=s1.data.template get<0>().getVector().getIterator();
466 for_each_prop8<S1,S2,S3,S4,S5,S6,S7,S8,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,p,op);
468 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
474 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename S9,
typename index_type,
typename op_type>
498 inline for_each_prop9(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,S9 &v9,index_type &p,op_type &op)
499 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),p(p),op(op)
505 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p),v9.data.template get<T::value>().getVector().template get<0>(p));
510 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class Op >
511 static void for_each9( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9 , Op op )
514 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
516 auto it=s1.data.template get<0>().getVector().getIterator();
520 for_each_prop9<S1,S2,S3,S4,S5,S6,S7,S8,S9,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,p,op);
522 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
528 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename S9,
typename S10,
typename index_type,
typename op_type>
553 inline for_each_prop10(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,S9 &v9,S10 &v10,index_type &p,op_type &op)
554 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),v10(v10),p(p),op(op)
560 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p),v9.data.template get<T::value>().getVector().template get<0>(p),v10.data.template get<T::value>().getVector().template get<0>(p));
565 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class S10,
class Op >
566 static void for_each10( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9 , S10 &s10, Op op )
569 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
571 auto it=s1.data.template get<0>().getVector().getIterator();
575 for_each_prop10<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,p,op);
577 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
583 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename S9,
typename S10,
typename S11,
typename index_type,
typename op_type>
609 inline for_each_prop11(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,S9 &v9,S10 &v10, S11 &v11,index_type &p,op_type &op)
610 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),v10(v10),v11(v11),p(p),op(op)
616 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p),v9.data.template get<T::value>().getVector().template get<0>(p),v10.data.template get<T::value>().getVector().template get<0>(p),v11.data.template get<T::value>().getVector().template get<0>(p));
621 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class S10,
class S11,
class Op >
622 static void for_each11( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9 , S10 &s10,S11 &s11, Op op )
625 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
627 auto it=s1.data.template get<0>().getVector().getIterator();
631 for_each_prop11<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,p,op);
633 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
639 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename S9,
typename S10,
typename S11,
typename S12,
typename index_type,
typename op_type>
666 inline for_each_prop12(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,S9 &v9,S10 &v10, S11 &v11,S12 &v12,index_type &p,op_type &op)
667 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),v10(v10),v11(v11), v12(v12),p(p),op(op)
673 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p),v9.data.template get<T::value>().getVector().template get<0>(p),v10.data.template get<T::value>().getVector().template get<0>(p),v11.data.template get<T::value>().getVector().template get<0>(p),v12.data.template get<T::value>().getVector().template get<0>(p));
678 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class S10,
class S11,
class S12,
class Op >
679 static void for_each12( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9 , S10 &s10,S11 &s11,S12 &s12, Op op )
682 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
684 auto it=s1.data.template get<0>().getVector().getIterator();
688 for_each_prop12<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,p,op);
690 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
696 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename S9,
typename S10,
typename S11,
typename S12,
typename S13,
typename index_type,
typename op_type>
724 inline for_each_prop13(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,S9 &v9,S10 &v10, S11 &v11,S12 &v12,S13 &v13,index_type &p,op_type &op)
725 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),v10(v10),v11(v11), v12(v12),v13(v13),p(p),op(op)
731 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p),v9.data.template get<T::value>().getVector().template get<0>(p),v10.data.template get<T::value>().getVector().template get<0>(p),v11.data.template get<T::value>().getVector().template get<0>(p),v12.data.template get<T::value>().getVector().template get<0>(p),v13.data.template get<T::value>().getVector().template get<0>(p));
736 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class S10,
class S11,
class S12,
class S13,
class Op >
737 static void for_each13( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9 , S10 &s10,S11 &s11,S12 &s12,S13 &s13, Op op )
740 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
742 auto it=s1.data.template get<0>().getVector().getIterator();
746 for_each_prop13<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,p,op);
748 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
754 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename S9,
typename S10,
typename S11,
typename S12,
typename S13,
typename S14,
typename index_type,
typename op_type>
783 inline for_each_prop14(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,S9 &v9,S10 &v10, S11 &v11,S12 &v12,S13 &v13,S14 &v14,index_type &p,op_type &op)
784 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),v10(v10),v11(v11), v12(v12),v13(v13),v14(v14),p(p),op(op)
790 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p),v9.data.template get<T::value>().getVector().template get<0>(p),v10.data.template get<T::value>().getVector().template get<0>(p),v11.data.template get<T::value>().getVector().template get<0>(p),v12.data.template get<T::value>().getVector().template get<0>(p),v13.data.template get<T::value>().getVector().template get<0>(p),v14.data.template get<T::value>().getVector().template get<0>(p));
795 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class S10,
class S11,
class S12,
class S13,
class S14,
class Op >
796 static void for_each14( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9, S10 &s10,S11 &s11,S12 &s12,S13 &s13,S14 &s14, Op op )
799 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
801 auto it=s1.data.template get<0>().getVector().getIterator();
805 for_each_prop14<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,p,op);
807 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
813 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename S9,
typename S10,
typename S11,
typename S12,
typename S13,
typename S14,
typename S15,
typename index_type,
typename op_type>
843 inline for_each_prop15(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,S8 &v8,S9 &v9,S10 &v10, S11 &v11,S12 &v12,S13 &v13,S14 &v14,S15 &v15,index_type &p,op_type &op)
844 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),v10(v10),v11(v11), v12(v12),v13(v13),v14(v14),v15(v15),p(p),op(op)
850 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p),v3.data.template get<T::value>().getVector().template get<0>(p),v4.data.template get<T::value>().getVector().template get<0>(p),v5.data.template get<T::value>().getVector().template get<0>(p),v6.data.template get<T::value>().getVector().template get<0>(p),v7.data.template get<T::value>().getVector().template get<0>(p),v8.data.template get<T::value>().getVector().template get<0>(p),v9.data.template get<T::value>().getVector().template get<0>(p),v10.data.template get<T::value>().getVector().template get<0>(p),v11.data.template get<T::value>().getVector().template get<0>(p),v12.data.template get<T::value>().getVector().template get<0>(p),v13.data.template get<T::value>().getVector().template get<0>(p),v14.data.template get<T::value>().getVector().template get<0>(p),v15.data.template get<T::value>().getVector().template get<0>(p));
855 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class S10,
class S11,
class S12,
class S13,
class S14,
class S15,
class Op >
856 static void for_each15( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9, S10 &s10,S11 &s11,S12 &s12,S13 &s13,S14 &s14,S15 &s15, Op op )
859 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s1.data)::max_prop>>(the_resize);
861 auto it=s1.data.template get<0>().getVector().getIterator();
865 for_each_prop15<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,size_t,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,p,op);
867 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype( s1.data)::max_prop>>(cp);
878 template<
typename vector_type,
typename index_type,
typename norm_result_type>
898 if(fabs(v.data.template get<T::value>().getVector().template get<0>(p)) > n)
900 n=fabs(v.data.template get<T::value>().getVector().template get<0>(p));
907 static typename boost::numeric::odeint::vector_space_norm_inf< S >::result_type norm_inf(
const S &s )
909 typename boost::numeric::odeint::vector_space_norm_inf< S >::result_type n=0;
910 auto it=s.data.template get<0>().getVector().getIterator();
914 for_each_norm<S,size_t,typename boost::numeric::odeint::vector_space_norm_inf< S >::result_type> cp(s,p,n);
916 boost::mpl::for_each_ref<boost::mpl::range_c<
int,0,decltype(s.data)::max_prop>>(cp);
920 auto &v_cl = create_vcluster();
942 #endif //OPENFPM_PDATA_BOOST_VECTOR_ALGEBRA_OFP_HPP void operator()(T &t) const
It call the copy function for each property.
for_each_prop6(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, index_type &p, op_type &op)
constructor
for_each_prop7(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, index_type &p, op_type &op)
constructor
void operator()(T &t) const
It call the copy function for each property.
for_each_prop9(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, S9 &v9, index_type &p, op_type &op)
constructor
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
for_each_prop12(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, S9 &v9, S10 &v10, S11 &v11, S12 &v12, index_type &p, op_type &op)
constructor
for_each_prop5(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, index_type &p, op_type &op)
constructor
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
for_each_prop11(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, S9 &v9, S10 &v10, S11 &v11, index_type &p, op_type &op)
constructor
for_each_prop10(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, S9 &v9, S10 &v10, index_type &p, op_type &op)
constructor
void operator()(T &t) const
It call the copy function for each property.
KeyT const ValueT ValueT OffsetIteratorT OffsetIteratorT int
[in] The number of segments that comprise the sorting data
void operator()(T &t) const
It call the copy function for each property.
for_each_prop13(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, S9 &v9, S10 &v10, S11 &v11, S12 &v12, S13 &v13, index_type &p, op_type &op)
constructor
for_each_prop_resize(S1 &v1, S2 &v2)
constructor
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
for_each_prop14(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, S9 &v9, S10 &v10, S11 &v11, S12 &v12, S13 &v13, S14 &v14, index_type &p, op_type &op)
constructor
for_each_prop3(S1 &v1, S2 &v2, S3 &v3, index_type &p, op_type &op)
constructor
for_each_prop15(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, S9 &v9, S10 &v10, S11 &v11, S12 &v12, S13 &v13, S14 &v14, S15 &v15, index_type &p, op_type &op)
constructor
void operator()(T &t) const
It call the copy function for each property.
void operator()(T &t) const
It call the copy function for each property.
for_each_norm(const vector_type &v, index_type &p, norm_result_type &n)
constructor
for_each_prop8(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, S8 &v8, index_type &p, op_type &op)
constructor
for_each_prop2(S1 &v1, S2 &v2, index_type &p, op_type &op)
constructor
for_each_prop1(vector_type &v, index_type &p, op_type &op)
constructor
void operator()(T &t) const
It call the copy function for each property.
for_each_prop4(S1 &v1, S2 &v2, S3 &v3, S4 &v4, index_type &p, op_type &op)
constructor