5#ifndef OPENFPM_PDATA_VECTOR_ALGEBRA_OFP_HPP
6#define OPENFPM_PDATA_VECTOR_ALGEBRA_OFP_HPP
14 template<
typename vector_type,
typename index_type,
typename op_type>
36 op(v.data.template get<T::value>().getVector().template get<0>(p));
39 template<
typename S1,
typename S2,
typename index_type,
typename op_type>
54 __device__ __host__
inline for_each_prop2(S1 &v1,S2 &v2,index_type &p,op_type &op)
55 :v1(v1),v2(v2),p(p),op(op)
61 op(v1.data.template get<T::value>().getVector().template get<0>(p),v2.data.template get<T::value>().getVector().template get<0>(p));
65 template<
typename S1,
typename S2,
typename S3,
typename index_type,
typename op_type>
81 __device__ __host__
inline for_each_prop3(S1 &v1,S2 &v2,S3 &v3,index_type &p,op_type &op)
82 :v1(v1),v2(v2),v3(v3),p(p),op(op)
91 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));
96 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename index_type,
typename op_type>
114 __device__ __host__
inline for_each_prop4(S1 &v1,S2 &v2,S3 &v3,S4 &v4,index_type &p,op_type &op)
115 :v1(v1),v2(v2),v3(v3),v4(v4),p(p),op(op)
121 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));
124 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename index_type,
typename op_type>
143 __device__ __host__
inline for_each_prop5(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,index_type &p,op_type &op)
144 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),p(p),op(op)
150 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));
154 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename index_type,
typename op_type>
175 __device__ __host__
inline for_each_prop6(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,index_type &p,op_type &op)
176 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),p(p),op(op)
182 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));
187 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename index_type,
typename op_type>
209 __device__ __host__
inline for_each_prop7(S1 &v1,S2 &v2,S3 &v3,S4 &v4,S5 &v5,S6 &v6,S7 &v7,index_type &p,op_type &op)
210 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),p(p),op(op)
216 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));
220 template<
typename S1,
typename S2,
typename S3,
typename S4,
typename S5,
typename S6,
typename S7,
typename S8,
typename index_type,
typename op_type>
243 __device__ __host__
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)
244 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),p(p),op(op)
250 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));
254 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>
278 __device__ __host__
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)
279 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),p(p),op(op)
285 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));
289 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>
314 __device__ __host__
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)
315 :v1(v1),v2(v2),v3(v3),v4(v4),v5(v5),v6(v6),v7(v7),v8(v8),v9(v9),v10(v10),p(p),op(op)
321 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));
325 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>
351 __device__ __host__
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)
352 :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)
358 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));
363 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>
390 __device__ __host__
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)
391 :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)
397 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));
402 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>
430 __device__ __host__
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)
431 :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)
437 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));
442 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>
471 __device__ __host__
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)
472 :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)
478 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));
483 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>
513 __device__ __host__
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)
514 :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)
520 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));
565 template<
typename S1,
typename S2>
583 v1.data.template get<T::value>().getVector().resize(v2.data.template get<T::value>().getVector().size());
591 template<
class S1 ,
class Op >
592 static void for_each1( S1 &s1 , Op op )
596 auto it=s1.data.template get<0>().getVector().getIterator();
602 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
610 template<
class S1 ,
class S2 ,
class Op >
611 static void for_each2( S1 &s1 , S2 &s2 , Op op )
614 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
617 auto it=s1.data.template get<0>().getVector().getIterator();
623 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
630 template<
class S1 ,
class S2 ,
class S3 ,
class Op >
631 static void for_each3( S1 &s1 , S2 &s2 , S3 &s3 , Op op )
636 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(the_resize);
638 auto it=s1.data.template get<0>().getVector().getIterator();
645 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
654 template<
class S1 ,
class S2 ,
class S3 ,
class S4 ,
class Op >
655 static void for_each4( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4 , Op op )
658 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
660 auto it=s1.data.template get<0>().getVector().getIterator();
664 for_each_prop4<S1,S2,S3,S4,typename S1::index_type,Op> cp(s1,s2,s3,s4,p,op);
666 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
675 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5 ,
class Op >
676 static void for_each5( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5 , Op op )
679 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
681 auto it=s1.data.template get<0>().getVector().getIterator();
685 for_each_prop5<S1,S2,S3,S4,S5,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,p,op);
687 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
693 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class Op >
694 static void for_each6( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6 , Op op )
697 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
699 auto it=s1.data.template get<0>().getVector().getIterator();
703 for_each_prop6<S1,S2,S3,S4,S5,S6,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,p,op);
705 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
711 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class Op >
712 static void for_each7( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7 , Op op )
715 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
717 auto it=s1.data.template get<0>().getVector().getIterator();
721 for_each_prop7<S1,S2,S3,S4,S5,S6,S7,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,p,op);
723 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
729 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class Op >
730 static void for_each8( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8 , Op op )
733 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
735 auto it=s1.data.template get<0>().getVector().getIterator();
739 for_each_prop8<S1,S2,S3,S4,S5,S6,S7,S8,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,p,op);
741 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
747 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class Op >
748 static void for_each9( S1 &s1 , S2 &s2 , S3 &s3 , S4 &s4,S5 &s5,S6 &s6,S7 &s7,S8 &s8, S9 &s9 , Op op )
751 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
753 auto it=s1.data.template get<0>().getVector().getIterator();
757 for_each_prop9<S1,S2,S3,S4,S5,S6,S7,S8,S9,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,p,op);
759 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
765 template<
class S1 ,
class S2 ,
class S3 ,
class S4,
class S5,
class S6 ,
class S7,
class S8,
class S9,
class S10,
class Op >
766 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 )
769 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
771 auto it=s1.data.template get<0>().getVector().getIterator();
775 for_each_prop10<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,p,op);
777 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
784 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 >
785 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 )
788 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
790 auto it=s1.data.template get<0>().getVector().getIterator();
794 for_each_prop11<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,p,op);
796 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
802 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 >
803 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 )
806 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
808 auto it=s1.data.template get<0>().getVector().getIterator();
812 for_each_prop12<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,p,op);
814 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
820 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 >
821 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 )
824 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
826 auto it=s1.data.template get<0>().getVector().getIterator();
830 for_each_prop13<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,p,op);
832 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
839 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 >
840 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 )
843 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
845 auto it=s1.data.template get<0>().getVector().getIterator();
849 for_each_prop14<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,p,op);
851 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
857 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 >
858 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 )
861 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s1.data)::max_prop>>(the_resize);
863 auto it=s1.data.template get<0>().getVector().getIterator();
867 for_each_prop15<S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15,typename S1::index_type,Op> cp(s1,s2,s3,s4,s5,s6,s7,s8,s9,s10,s11,s12,s13,s14,s15,p,op);
869 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype( s1.data)::max_prop>>(cp);
880 template<
typename vector_type,
typename index_type,
typename norm_result_type>
900 if(fabs(v.data.template get<T::value>().getVector().template get<0>(p)) > n)
902 n=fabs(v.data.template get<T::value>().getVector().template get<0>(p));
909 static typename boost::numeric::odeint::vector_space_norm_inf< S >::result_type norm_inf(
const S &s )
911 typename boost::numeric::odeint::vector_space_norm_inf< S >::result_type n=0;
912 auto it=s.data.template get<0>().getVector().getIterator();
916 for_each_norm<S,typename S::index_type,typename boost::numeric::odeint::vector_space_norm_inf< S >::result_type> cp(s,p,n);
918 boost::mpl::for_each_ref<boost::mpl::range_c<int,0,
decltype(s.data)::max_prop>>(cp);
922 auto &v_cl = create_vcluster();
__device__ __host__ 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
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ 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
__device__ __host__ 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
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ 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
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ 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
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ 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
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ for_each_prop1(vector_type &v, index_type &p, op_type &op)
constructor
__device__ __host__ for_each_prop2(S1 &v1, S2 &v2, index_type &p, op_type &op)
constructor
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ for_each_prop3(S1 &v1, S2 &v2, S3 &v3, index_type &p, op_type &op)
constructor
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ for_each_prop4(S1 &v1, S2 &v2, S3 &v3, S4 &v4, index_type &p, op_type &op)
constructor
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ for_each_prop5(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, index_type &p, op_type &op)
constructor
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ for_each_prop6(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, index_type &p, op_type &op)
constructor
__device__ __host__ for_each_prop7(S1 &v1, S2 &v2, S3 &v3, S4 &v4, S5 &v5, S6 &v6, S7 &v7, index_type &p, op_type &op)
constructor
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ void operator()(T &t) const
It call the copy function for each property.
__device__ __host__ 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
__device__ __host__ 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
__device__ __host__ 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_prop_resize(S1 &v1, S2 &v2)
constructor
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