26 #ifndef viskores_exec_internal_WorkletInvokeFunctorDetail_h
27 #define viskores_exec_internal_WorkletInvokeFunctorDetail_h
29 #if !defined(viskores_exec_internal_TaskSingular_h) && \
30 !defined(viskores_exec_internal_TaskTiling_h) && \
31 !defined(viskores_exec_cuda_internal_TaskStrided_h) && \
32 !defined(VISKORES_TEST_HEADER_BUILD)
33 #error WorkletInvokeFunctorDetail.h must be included from TaskSingular.h, TaskTiling.h, TaskStrided.h
42 #if VISKORES_MAX_FUNCTION_PARAMETERS != 20
43 #error Mismatch of maximum parameters between FunctionInterfaceDatailPre.h.in and WorkletInvokeFunctorDetail.h.in
56 struct DummyDeviceControlSignatureTag
64 template <
typename ThreadIndicesType,
67 struct InvocationToFetch
69 using ExecutionSignatureTag =
70 typename Invocation::ExecutionInterface::template ParameterType<ExecutionParameterIndex>::type;
76 using AspectTag =
typename ExecutionSignatureTag::AspectTag;
81 using ControlInterface =
typename Invocation::ControlInterface;
82 using ControlSignatureTag =
83 typename std::conditional<
84 ControlParameterIndex == 0,
85 DummyDeviceControlSignatureTag,
86 typename ControlInterface::template ParameterType<ControlParameterIndex>::type>::type;
87 using FetchTag =
typename ControlSignatureTag::FetchTag;
89 using ExecObjectType =
90 typename std::conditional<
91 ControlParameterIndex == 0,
92 typename Invocation::DeviceAdapterTag,
93 typename Invocation::ParameterInterface::template ParameterType<ControlParameterIndex>::type>::type;
97 VISKORES_EXEC static ExecObjectType GetParameterImpl(
const Invocation&, std::true_type)
99 return typename Invocation::DeviceAdapterTag();
102 VISKORES_EXEC static ExecObjectType GetParameterImpl(
const Invocation& invocation, std::false_type)
104 return viskores::internal::ParameterGet<ControlParameterIndex>(invocation.Parameters);
107 VISKORES_EXEC static ExecObjectType GetParameter(
const Invocation& invocation)
109 return GetParameterImpl(invocation, std::integral_constant<bool, ControlParameterIndex == 0>());
115 template <
typename WorkletType,
116 typename ParameterInterface,
117 typename ControlInterface,
119 typename OutputToInputMapType,
120 typename VisitArrayType,
121 typename ThreadToOutputMapType,
122 typename DeviceAdapterTag,
123 typename ThreadIndicesType,
127 const WorkletType& worklet,
128 const viskores::internal::Invocation<ParameterInterface,
130 viskores::internal::FunctionInterface<R(P1)>,
132 OutputToInputMapType,
134 ThreadToOutputMapType,
135 DeviceAdapterTag>& invocation,
136 const ThreadIndicesType& threadIndices)
138 using Invocation = viskores::internal::Invocation<ParameterInterface,
140 viskores::internal::FunctionInterface<R(P1)>,
142 OutputToInputMapType,
144 ThreadToOutputMapType,
147 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
148 using FetchType1 =
typename FetchInfo1::type;
151 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
153 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
154 using ReturnFetchType =
typename FetchInfo0::type;
155 ReturnFetchType returnFetch;
165 auto r = worklet(p1);
167 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
169 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
172 template <
typename WorkletType,
173 typename ParameterInterface,
174 typename ControlInterface,
176 typename OutputToInputMapType,
177 typename VisitArrayType,
178 typename ThreadToOutputMapType,
179 typename DeviceAdapterTag,
180 typename ThreadIndicesType,
183 const WorkletType& worklet,
184 const viskores::internal::Invocation<ParameterInterface,
186 viskores::internal::FunctionInterface<
void(P1)>,
188 OutputToInputMapType,
190 ThreadToOutputMapType,
191 DeviceAdapterTag>& invocation,
192 const ThreadIndicesType& threadIndices)
195 viskores::internal::Invocation<ParameterInterface,
197 viskores::internal::FunctionInterface<void(P1)>,
199 OutputToInputMapType,
201 ThreadToOutputMapType,
204 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
205 using FetchType1 =
typename FetchInfo1::type;
208 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
221 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
224 template <
typename WorkletType,
225 typename ParameterInterface,
226 typename ControlInterface,
228 typename OutputToInputMapType,
229 typename VisitArrayType,
230 typename ThreadToOutputMapType,
231 typename DeviceAdapterTag,
232 typename ThreadIndicesType,
237 const WorkletType& worklet,
238 const viskores::internal::Invocation<ParameterInterface,
240 viskores::internal::FunctionInterface<R(P1, P2)>,
242 OutputToInputMapType,
244 ThreadToOutputMapType,
245 DeviceAdapterTag>& invocation,
246 const ThreadIndicesType& threadIndices)
248 using Invocation = viskores::internal::Invocation<ParameterInterface,
250 viskores::internal::FunctionInterface<R(P1, P2)>,
252 OutputToInputMapType,
254 ThreadToOutputMapType,
257 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
258 using FetchType1 =
typename FetchInfo1::type;
261 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
263 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
264 using FetchType2 =
typename FetchInfo2::type;
267 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
269 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
270 using ReturnFetchType =
typename FetchInfo0::type;
271 ReturnFetchType returnFetch;
281 auto r = worklet(p1, p2);
283 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
284 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
286 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
289 template <
typename WorkletType,
290 typename ParameterInterface,
291 typename ControlInterface,
293 typename OutputToInputMapType,
294 typename VisitArrayType,
295 typename ThreadToOutputMapType,
296 typename DeviceAdapterTag,
297 typename ThreadIndicesType,
301 const WorkletType& worklet,
302 const viskores::internal::Invocation<ParameterInterface,
304 viskores::internal::FunctionInterface<
void(P1, P2)>,
306 OutputToInputMapType,
308 ThreadToOutputMapType,
309 DeviceAdapterTag>& invocation,
310 const ThreadIndicesType& threadIndices)
313 viskores::internal::Invocation<ParameterInterface,
315 viskores::internal::FunctionInterface<void(P1, P2)>,
317 OutputToInputMapType,
319 ThreadToOutputMapType,
322 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
323 using FetchType1 =
typename FetchInfo1::type;
326 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
328 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
329 using FetchType2 =
typename FetchInfo2::type;
332 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
345 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
346 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
349 template <
typename WorkletType,
350 typename ParameterInterface,
351 typename ControlInterface,
353 typename OutputToInputMapType,
354 typename VisitArrayType,
355 typename ThreadToOutputMapType,
356 typename DeviceAdapterTag,
357 typename ThreadIndicesType,
363 const WorkletType& worklet,
364 const viskores::internal::Invocation<ParameterInterface,
366 viskores::internal::FunctionInterface<R(P1, P2, P3)>,
368 OutputToInputMapType,
370 ThreadToOutputMapType,
371 DeviceAdapterTag>& invocation,
372 const ThreadIndicesType& threadIndices)
374 using Invocation = viskores::internal::Invocation<ParameterInterface,
376 viskores::internal::FunctionInterface<R(P1, P2, P3)>,
378 OutputToInputMapType,
380 ThreadToOutputMapType,
383 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
384 using FetchType1 =
typename FetchInfo1::type;
387 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
389 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
390 using FetchType2 =
typename FetchInfo2::type;
393 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
395 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
396 using FetchType3 =
typename FetchInfo3::type;
399 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
401 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
402 using ReturnFetchType =
typename FetchInfo0::type;
403 ReturnFetchType returnFetch;
413 auto r = worklet(p1, p2, p3);
415 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
416 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
417 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
419 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
422 template <
typename WorkletType,
423 typename ParameterInterface,
424 typename ControlInterface,
426 typename OutputToInputMapType,
427 typename VisitArrayType,
428 typename ThreadToOutputMapType,
429 typename DeviceAdapterTag,
430 typename ThreadIndicesType,
435 const WorkletType& worklet,
436 const viskores::internal::Invocation<ParameterInterface,
438 viskores::internal::FunctionInterface<
void(P1, P2, P3)>,
440 OutputToInputMapType,
442 ThreadToOutputMapType,
443 DeviceAdapterTag>& invocation,
444 const ThreadIndicesType& threadIndices)
447 viskores::internal::Invocation<ParameterInterface,
449 viskores::internal::FunctionInterface<void(P1, P2, P3)>,
451 OutputToInputMapType,
453 ThreadToOutputMapType,
456 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
457 using FetchType1 =
typename FetchInfo1::type;
460 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
462 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
463 using FetchType2 =
typename FetchInfo2::type;
466 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
468 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
469 using FetchType3 =
typename FetchInfo3::type;
472 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
485 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
486 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
487 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
490 template <
typename WorkletType,
491 typename ParameterInterface,
492 typename ControlInterface,
494 typename OutputToInputMapType,
495 typename VisitArrayType,
496 typename ThreadToOutputMapType,
497 typename DeviceAdapterTag,
498 typename ThreadIndicesType,
505 const WorkletType& worklet,
506 const viskores::internal::Invocation<ParameterInterface,
508 viskores::internal::FunctionInterface<R(P1, P2, P3, P4)>,
510 OutputToInputMapType,
512 ThreadToOutputMapType,
513 DeviceAdapterTag>& invocation,
514 const ThreadIndicesType& threadIndices)
516 using Invocation = viskores::internal::Invocation<ParameterInterface,
518 viskores::internal::FunctionInterface<R(P1, P2, P3, P4)>,
520 OutputToInputMapType,
522 ThreadToOutputMapType,
525 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
526 using FetchType1 =
typename FetchInfo1::type;
529 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
531 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
532 using FetchType2 =
typename FetchInfo2::type;
535 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
537 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
538 using FetchType3 =
typename FetchInfo3::type;
541 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
543 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
544 using FetchType4 =
typename FetchInfo4::type;
547 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
549 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
550 using ReturnFetchType =
typename FetchInfo0::type;
551 ReturnFetchType returnFetch;
561 auto r = worklet(p1, p2, p3, p4);
563 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
564 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
565 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
566 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
568 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
571 template <
typename WorkletType,
572 typename ParameterInterface,
573 typename ControlInterface,
575 typename OutputToInputMapType,
576 typename VisitArrayType,
577 typename ThreadToOutputMapType,
578 typename DeviceAdapterTag,
579 typename ThreadIndicesType,
585 const WorkletType& worklet,
586 const viskores::internal::Invocation<ParameterInterface,
588 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4)>,
590 OutputToInputMapType,
592 ThreadToOutputMapType,
593 DeviceAdapterTag>& invocation,
594 const ThreadIndicesType& threadIndices)
597 viskores::internal::Invocation<ParameterInterface,
599 viskores::internal::FunctionInterface<void(P1, P2, P3, P4)>,
601 OutputToInputMapType,
603 ThreadToOutputMapType,
606 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
607 using FetchType1 =
typename FetchInfo1::type;
610 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
612 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
613 using FetchType2 =
typename FetchInfo2::type;
616 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
618 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
619 using FetchType3 =
typename FetchInfo3::type;
622 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
624 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
625 using FetchType4 =
typename FetchInfo4::type;
628 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
639 worklet(p1, p2, p3, p4);
641 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
642 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
643 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
644 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
647 template <
typename WorkletType,
648 typename ParameterInterface,
649 typename ControlInterface,
651 typename OutputToInputMapType,
652 typename VisitArrayType,
653 typename ThreadToOutputMapType,
654 typename DeviceAdapterTag,
655 typename ThreadIndicesType,
663 const WorkletType& worklet,
664 const viskores::internal::Invocation<ParameterInterface,
666 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5)>,
668 OutputToInputMapType,
670 ThreadToOutputMapType,
671 DeviceAdapterTag>& invocation,
672 const ThreadIndicesType& threadIndices)
674 using Invocation = viskores::internal::Invocation<ParameterInterface,
676 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5)>,
678 OutputToInputMapType,
680 ThreadToOutputMapType,
683 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
684 using FetchType1 =
typename FetchInfo1::type;
687 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
689 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
690 using FetchType2 =
typename FetchInfo2::type;
693 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
695 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
696 using FetchType3 =
typename FetchInfo3::type;
699 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
701 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
702 using FetchType4 =
typename FetchInfo4::type;
705 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
707 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
708 using FetchType5 =
typename FetchInfo5::type;
711 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
713 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
714 using ReturnFetchType =
typename FetchInfo0::type;
715 ReturnFetchType returnFetch;
725 auto r = worklet(p1, p2, p3, p4, p5);
727 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
728 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
729 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
730 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
731 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
733 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
736 template <
typename WorkletType,
737 typename ParameterInterface,
738 typename ControlInterface,
740 typename OutputToInputMapType,
741 typename VisitArrayType,
742 typename ThreadToOutputMapType,
743 typename DeviceAdapterTag,
744 typename ThreadIndicesType,
751 const WorkletType& worklet,
752 const viskores::internal::Invocation<ParameterInterface,
754 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5)>,
756 OutputToInputMapType,
758 ThreadToOutputMapType,
759 DeviceAdapterTag>& invocation,
760 const ThreadIndicesType& threadIndices)
763 viskores::internal::Invocation<ParameterInterface,
765 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5)>,
767 OutputToInputMapType,
769 ThreadToOutputMapType,
772 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
773 using FetchType1 =
typename FetchInfo1::type;
776 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
778 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
779 using FetchType2 =
typename FetchInfo2::type;
782 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
784 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
785 using FetchType3 =
typename FetchInfo3::type;
788 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
790 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
791 using FetchType4 =
typename FetchInfo4::type;
794 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
796 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
797 using FetchType5 =
typename FetchInfo5::type;
800 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
811 worklet(p1, p2, p3, p4, p5);
813 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
814 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
815 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
816 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
817 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
820 template <
typename WorkletType,
821 typename ParameterInterface,
822 typename ControlInterface,
824 typename OutputToInputMapType,
825 typename VisitArrayType,
826 typename ThreadToOutputMapType,
827 typename DeviceAdapterTag,
828 typename ThreadIndicesType,
837 const WorkletType& worklet,
838 const viskores::internal::Invocation<ParameterInterface,
840 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6)>,
842 OutputToInputMapType,
844 ThreadToOutputMapType,
845 DeviceAdapterTag>& invocation,
846 const ThreadIndicesType& threadIndices)
848 using Invocation = viskores::internal::Invocation<ParameterInterface,
850 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6)>,
852 OutputToInputMapType,
854 ThreadToOutputMapType,
857 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
858 using FetchType1 =
typename FetchInfo1::type;
861 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
863 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
864 using FetchType2 =
typename FetchInfo2::type;
867 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
869 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
870 using FetchType3 =
typename FetchInfo3::type;
873 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
875 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
876 using FetchType4 =
typename FetchInfo4::type;
879 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
881 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
882 using FetchType5 =
typename FetchInfo5::type;
885 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
887 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
888 using FetchType6 =
typename FetchInfo6::type;
891 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
893 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
894 using ReturnFetchType =
typename FetchInfo0::type;
895 ReturnFetchType returnFetch;
905 auto r = worklet(p1, p2, p3, p4, p5, p6);
907 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
908 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
909 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
910 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
911 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
912 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
914 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
917 template <
typename WorkletType,
918 typename ParameterInterface,
919 typename ControlInterface,
921 typename OutputToInputMapType,
922 typename VisitArrayType,
923 typename ThreadToOutputMapType,
924 typename DeviceAdapterTag,
925 typename ThreadIndicesType,
933 const WorkletType& worklet,
934 const viskores::internal::Invocation<ParameterInterface,
936 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6)>,
938 OutputToInputMapType,
940 ThreadToOutputMapType,
941 DeviceAdapterTag>& invocation,
942 const ThreadIndicesType& threadIndices)
945 viskores::internal::Invocation<ParameterInterface,
947 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6)>,
949 OutputToInputMapType,
951 ThreadToOutputMapType,
954 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
955 using FetchType1 =
typename FetchInfo1::type;
958 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
960 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
961 using FetchType2 =
typename FetchInfo2::type;
964 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
966 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
967 using FetchType3 =
typename FetchInfo3::type;
970 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
972 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
973 using FetchType4 =
typename FetchInfo4::type;
976 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
978 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
979 using FetchType5 =
typename FetchInfo5::type;
982 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
984 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
985 using FetchType6 =
typename FetchInfo6::type;
988 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
999 worklet(p1, p2, p3, p4, p5, p6);
1001 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1002 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1003 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1004 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1005 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1006 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1009 template <
typename WorkletType,
1010 typename ParameterInterface,
1011 typename ControlInterface,
1013 typename OutputToInputMapType,
1014 typename VisitArrayType,
1015 typename ThreadToOutputMapType,
1016 typename DeviceAdapterTag,
1017 typename ThreadIndicesType,
1027 const WorkletType& worklet,
1028 const viskores::internal::Invocation<ParameterInterface,
1030 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7)>,
1032 OutputToInputMapType,
1034 ThreadToOutputMapType,
1035 DeviceAdapterTag>& invocation,
1036 const ThreadIndicesType& threadIndices)
1038 using Invocation = viskores::internal::Invocation<ParameterInterface,
1040 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7)>,
1042 OutputToInputMapType,
1044 ThreadToOutputMapType,
1047 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1048 using FetchType1 =
typename FetchInfo1::type;
1051 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1053 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1054 using FetchType2 =
typename FetchInfo2::type;
1057 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1059 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1060 using FetchType3 =
typename FetchInfo3::type;
1063 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1065 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1066 using FetchType4 =
typename FetchInfo4::type;
1069 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1071 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1072 using FetchType5 =
typename FetchInfo5::type;
1075 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1077 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1078 using FetchType6 =
typename FetchInfo6::type;
1081 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1083 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1084 using FetchType7 =
typename FetchInfo7::type;
1087 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1089 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
1090 using ReturnFetchType =
typename FetchInfo0::type;
1091 ReturnFetchType returnFetch;
1101 auto r = worklet(p1, p2, p3, p4, p5, p6, p7);
1103 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1104 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1105 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1106 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1107 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1108 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1109 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1111 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
1114 template <
typename WorkletType,
1115 typename ParameterInterface,
1116 typename ControlInterface,
1118 typename OutputToInputMapType,
1119 typename VisitArrayType,
1120 typename ThreadToOutputMapType,
1121 typename DeviceAdapterTag,
1122 typename ThreadIndicesType,
1131 const WorkletType& worklet,
1132 const viskores::internal::Invocation<ParameterInterface,
1134 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7)>,
1136 OutputToInputMapType,
1138 ThreadToOutputMapType,
1139 DeviceAdapterTag>& invocation,
1140 const ThreadIndicesType& threadIndices)
1143 viskores::internal::Invocation<ParameterInterface,
1145 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7)>,
1147 OutputToInputMapType,
1149 ThreadToOutputMapType,
1152 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1153 using FetchType1 =
typename FetchInfo1::type;
1156 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1158 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1159 using FetchType2 =
typename FetchInfo2::type;
1162 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1164 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1165 using FetchType3 =
typename FetchInfo3::type;
1168 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1170 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1171 using FetchType4 =
typename FetchInfo4::type;
1174 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1176 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1177 using FetchType5 =
typename FetchInfo5::type;
1180 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1182 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1183 using FetchType6 =
typename FetchInfo6::type;
1186 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1188 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1189 using FetchType7 =
typename FetchInfo7::type;
1192 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1203 worklet(p1, p2, p3, p4, p5, p6, p7);
1205 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1206 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1207 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1208 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1209 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1210 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1211 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1214 template <
typename WorkletType,
1215 typename ParameterInterface,
1216 typename ControlInterface,
1218 typename OutputToInputMapType,
1219 typename VisitArrayType,
1220 typename ThreadToOutputMapType,
1221 typename DeviceAdapterTag,
1222 typename ThreadIndicesType,
1233 const WorkletType& worklet,
1234 const viskores::internal::Invocation<ParameterInterface,
1236 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8)>,
1238 OutputToInputMapType,
1240 ThreadToOutputMapType,
1241 DeviceAdapterTag>& invocation,
1242 const ThreadIndicesType& threadIndices)
1244 using Invocation = viskores::internal::Invocation<ParameterInterface,
1246 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8)>,
1248 OutputToInputMapType,
1250 ThreadToOutputMapType,
1253 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1254 using FetchType1 =
typename FetchInfo1::type;
1257 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1259 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1260 using FetchType2 =
typename FetchInfo2::type;
1263 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1265 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1266 using FetchType3 =
typename FetchInfo3::type;
1269 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1271 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1272 using FetchType4 =
typename FetchInfo4::type;
1275 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1277 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1278 using FetchType5 =
typename FetchInfo5::type;
1281 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1283 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1284 using FetchType6 =
typename FetchInfo6::type;
1287 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1289 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1290 using FetchType7 =
typename FetchInfo7::type;
1293 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1295 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
1296 using FetchType8 =
typename FetchInfo8::type;
1299 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
1301 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
1302 using ReturnFetchType =
typename FetchInfo0::type;
1303 ReturnFetchType returnFetch;
1313 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8);
1315 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1316 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1317 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1318 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1319 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1320 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1321 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1322 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
1324 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
1327 template <
typename WorkletType,
1328 typename ParameterInterface,
1329 typename ControlInterface,
1331 typename OutputToInputMapType,
1332 typename VisitArrayType,
1333 typename ThreadToOutputMapType,
1334 typename DeviceAdapterTag,
1335 typename ThreadIndicesType,
1345 const WorkletType& worklet,
1346 const viskores::internal::Invocation<ParameterInterface,
1348 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8)>,
1350 OutputToInputMapType,
1352 ThreadToOutputMapType,
1353 DeviceAdapterTag>& invocation,
1354 const ThreadIndicesType& threadIndices)
1357 viskores::internal::Invocation<ParameterInterface,
1359 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8)>,
1361 OutputToInputMapType,
1363 ThreadToOutputMapType,
1366 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1367 using FetchType1 =
typename FetchInfo1::type;
1370 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1372 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1373 using FetchType2 =
typename FetchInfo2::type;
1376 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1378 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1379 using FetchType3 =
typename FetchInfo3::type;
1382 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1384 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1385 using FetchType4 =
typename FetchInfo4::type;
1388 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1390 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1391 using FetchType5 =
typename FetchInfo5::type;
1394 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1396 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1397 using FetchType6 =
typename FetchInfo6::type;
1400 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1402 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1403 using FetchType7 =
typename FetchInfo7::type;
1406 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1408 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
1409 using FetchType8 =
typename FetchInfo8::type;
1412 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
1423 worklet(p1, p2, p3, p4, p5, p6, p7, p8);
1425 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1426 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1427 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1428 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1429 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1430 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1431 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1432 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
1435 template <
typename WorkletType,
1436 typename ParameterInterface,
1437 typename ControlInterface,
1439 typename OutputToInputMapType,
1440 typename VisitArrayType,
1441 typename ThreadToOutputMapType,
1442 typename DeviceAdapterTag,
1443 typename ThreadIndicesType,
1455 const WorkletType& worklet,
1456 const viskores::internal::Invocation<ParameterInterface,
1458 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9)>,
1460 OutputToInputMapType,
1462 ThreadToOutputMapType,
1463 DeviceAdapterTag>& invocation,
1464 const ThreadIndicesType& threadIndices)
1466 using Invocation = viskores::internal::Invocation<ParameterInterface,
1468 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9)>,
1470 OutputToInputMapType,
1472 ThreadToOutputMapType,
1475 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1476 using FetchType1 =
typename FetchInfo1::type;
1479 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1481 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1482 using FetchType2 =
typename FetchInfo2::type;
1485 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1487 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1488 using FetchType3 =
typename FetchInfo3::type;
1491 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1493 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1494 using FetchType4 =
typename FetchInfo4::type;
1497 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1499 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1500 using FetchType5 =
typename FetchInfo5::type;
1503 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1505 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1506 using FetchType6 =
typename FetchInfo6::type;
1509 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1511 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1512 using FetchType7 =
typename FetchInfo7::type;
1515 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1517 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
1518 using FetchType8 =
typename FetchInfo8::type;
1521 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
1523 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
1524 using FetchType9 =
typename FetchInfo9::type;
1527 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
1529 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
1530 using ReturnFetchType =
typename FetchInfo0::type;
1531 ReturnFetchType returnFetch;
1541 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9);
1543 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1544 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1545 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1546 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1547 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1548 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1549 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1550 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
1551 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
1553 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
1556 template <
typename WorkletType,
1557 typename ParameterInterface,
1558 typename ControlInterface,
1560 typename OutputToInputMapType,
1561 typename VisitArrayType,
1562 typename ThreadToOutputMapType,
1563 typename DeviceAdapterTag,
1564 typename ThreadIndicesType,
1575 const WorkletType& worklet,
1576 const viskores::internal::Invocation<ParameterInterface,
1578 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9)>,
1580 OutputToInputMapType,
1582 ThreadToOutputMapType,
1583 DeviceAdapterTag>& invocation,
1584 const ThreadIndicesType& threadIndices)
1587 viskores::internal::Invocation<ParameterInterface,
1589 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9)>,
1591 OutputToInputMapType,
1593 ThreadToOutputMapType,
1596 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1597 using FetchType1 =
typename FetchInfo1::type;
1600 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1602 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1603 using FetchType2 =
typename FetchInfo2::type;
1606 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1608 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1609 using FetchType3 =
typename FetchInfo3::type;
1612 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1614 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1615 using FetchType4 =
typename FetchInfo4::type;
1618 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1620 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1621 using FetchType5 =
typename FetchInfo5::type;
1624 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1626 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1627 using FetchType6 =
typename FetchInfo6::type;
1630 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1632 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1633 using FetchType7 =
typename FetchInfo7::type;
1636 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1638 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
1639 using FetchType8 =
typename FetchInfo8::type;
1642 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
1644 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
1645 using FetchType9 =
typename FetchInfo9::type;
1648 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
1659 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9);
1661 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1662 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1663 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1664 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1665 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1666 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1667 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1668 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
1669 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
1672 template <
typename WorkletType,
1673 typename ParameterInterface,
1674 typename ControlInterface,
1676 typename OutputToInputMapType,
1677 typename VisitArrayType,
1678 typename ThreadToOutputMapType,
1679 typename DeviceAdapterTag,
1680 typename ThreadIndicesType,
1693 const WorkletType& worklet,
1694 const viskores::internal::Invocation<ParameterInterface,
1696 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)>,
1698 OutputToInputMapType,
1700 ThreadToOutputMapType,
1701 DeviceAdapterTag>& invocation,
1702 const ThreadIndicesType& threadIndices)
1704 using Invocation = viskores::internal::Invocation<ParameterInterface,
1706 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)>,
1708 OutputToInputMapType,
1710 ThreadToOutputMapType,
1713 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1714 using FetchType1 =
typename FetchInfo1::type;
1717 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1719 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1720 using FetchType2 =
typename FetchInfo2::type;
1723 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1725 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1726 using FetchType3 =
typename FetchInfo3::type;
1729 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1731 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1732 using FetchType4 =
typename FetchInfo4::type;
1735 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1737 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1738 using FetchType5 =
typename FetchInfo5::type;
1741 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1743 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1744 using FetchType6 =
typename FetchInfo6::type;
1747 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1749 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1750 using FetchType7 =
typename FetchInfo7::type;
1753 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1755 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
1756 using FetchType8 =
typename FetchInfo8::type;
1759 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
1761 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
1762 using FetchType9 =
typename FetchInfo9::type;
1765 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
1767 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
1768 using FetchType10 =
typename FetchInfo10::type;
1769 FetchType10 fetch10;
1771 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
1773 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
1774 using ReturnFetchType =
typename FetchInfo0::type;
1775 ReturnFetchType returnFetch;
1785 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
1787 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1788 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1789 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1790 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1791 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1792 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1793 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1794 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
1795 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
1796 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
1798 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
1801 template <
typename WorkletType,
1802 typename ParameterInterface,
1803 typename ControlInterface,
1805 typename OutputToInputMapType,
1806 typename VisitArrayType,
1807 typename ThreadToOutputMapType,
1808 typename DeviceAdapterTag,
1809 typename ThreadIndicesType,
1821 const WorkletType& worklet,
1822 const viskores::internal::Invocation<ParameterInterface,
1824 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)>,
1826 OutputToInputMapType,
1828 ThreadToOutputMapType,
1829 DeviceAdapterTag>& invocation,
1830 const ThreadIndicesType& threadIndices)
1833 viskores::internal::Invocation<ParameterInterface,
1835 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)>,
1837 OutputToInputMapType,
1839 ThreadToOutputMapType,
1842 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1843 using FetchType1 =
typename FetchInfo1::type;
1846 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1848 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1849 using FetchType2 =
typename FetchInfo2::type;
1852 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1854 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1855 using FetchType3 =
typename FetchInfo3::type;
1858 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1860 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1861 using FetchType4 =
typename FetchInfo4::type;
1864 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1866 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1867 using FetchType5 =
typename FetchInfo5::type;
1870 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1872 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1873 using FetchType6 =
typename FetchInfo6::type;
1876 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
1878 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
1879 using FetchType7 =
typename FetchInfo7::type;
1882 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
1884 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
1885 using FetchType8 =
typename FetchInfo8::type;
1888 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
1890 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
1891 using FetchType9 =
typename FetchInfo9::type;
1894 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
1896 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
1897 using FetchType10 =
typename FetchInfo10::type;
1898 FetchType10 fetch10;
1900 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
1911 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10);
1913 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
1914 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
1915 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
1916 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
1917 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
1918 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
1919 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
1920 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
1921 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
1922 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
1925 template <
typename WorkletType,
1926 typename ParameterInterface,
1927 typename ControlInterface,
1929 typename OutputToInputMapType,
1930 typename VisitArrayType,
1931 typename ThreadToOutputMapType,
1932 typename DeviceAdapterTag,
1933 typename ThreadIndicesType,
1947 const WorkletType& worklet,
1948 const viskores::internal::Invocation<ParameterInterface,
1950 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)>,
1952 OutputToInputMapType,
1954 ThreadToOutputMapType,
1955 DeviceAdapterTag>& invocation,
1956 const ThreadIndicesType& threadIndices)
1958 using Invocation = viskores::internal::Invocation<ParameterInterface,
1960 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)>,
1962 OutputToInputMapType,
1964 ThreadToOutputMapType,
1967 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
1968 using FetchType1 =
typename FetchInfo1::type;
1971 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
1973 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
1974 using FetchType2 =
typename FetchInfo2::type;
1977 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
1979 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
1980 using FetchType3 =
typename FetchInfo3::type;
1983 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
1985 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
1986 using FetchType4 =
typename FetchInfo4::type;
1989 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
1991 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
1992 using FetchType5 =
typename FetchInfo5::type;
1995 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
1997 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
1998 using FetchType6 =
typename FetchInfo6::type;
2001 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
2003 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
2004 using FetchType7 =
typename FetchInfo7::type;
2007 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
2009 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
2010 using FetchType8 =
typename FetchInfo8::type;
2013 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
2015 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
2016 using FetchType9 =
typename FetchInfo9::type;
2019 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
2021 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
2022 using FetchType10 =
typename FetchInfo10::type;
2023 FetchType10 fetch10;
2025 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
2027 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
2028 using FetchType11 =
typename FetchInfo11::type;
2029 FetchType11 fetch11;
2031 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
2033 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
2034 using ReturnFetchType =
typename FetchInfo0::type;
2035 ReturnFetchType returnFetch;
2045 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
2047 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
2048 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
2049 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
2050 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
2051 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
2052 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
2053 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
2054 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
2055 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
2056 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
2057 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
2059 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
2062 template <
typename WorkletType,
2063 typename ParameterInterface,
2064 typename ControlInterface,
2066 typename OutputToInputMapType,
2067 typename VisitArrayType,
2068 typename ThreadToOutputMapType,
2069 typename DeviceAdapterTag,
2070 typename ThreadIndicesType,
2083 const WorkletType& worklet,
2084 const viskores::internal::Invocation<ParameterInterface,
2086 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)>,
2088 OutputToInputMapType,
2090 ThreadToOutputMapType,
2091 DeviceAdapterTag>& invocation,
2092 const ThreadIndicesType& threadIndices)
2095 viskores::internal::Invocation<ParameterInterface,
2097 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)>,
2099 OutputToInputMapType,
2101 ThreadToOutputMapType,
2104 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
2105 using FetchType1 =
typename FetchInfo1::type;
2108 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
2110 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
2111 using FetchType2 =
typename FetchInfo2::type;
2114 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
2116 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
2117 using FetchType3 =
typename FetchInfo3::type;
2120 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
2122 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
2123 using FetchType4 =
typename FetchInfo4::type;
2126 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
2128 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
2129 using FetchType5 =
typename FetchInfo5::type;
2132 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
2134 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
2135 using FetchType6 =
typename FetchInfo6::type;
2138 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
2140 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
2141 using FetchType7 =
typename FetchInfo7::type;
2144 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
2146 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
2147 using FetchType8 =
typename FetchInfo8::type;
2150 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
2152 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
2153 using FetchType9 =
typename FetchInfo9::type;
2156 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
2158 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
2159 using FetchType10 =
typename FetchInfo10::type;
2160 FetchType10 fetch10;
2162 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
2164 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
2165 using FetchType11 =
typename FetchInfo11::type;
2166 FetchType11 fetch11;
2168 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
2179 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11);
2181 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
2182 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
2183 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
2184 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
2185 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
2186 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
2187 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
2188 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
2189 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
2190 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
2191 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
2194 template <
typename WorkletType,
2195 typename ParameterInterface,
2196 typename ControlInterface,
2198 typename OutputToInputMapType,
2199 typename VisitArrayType,
2200 typename ThreadToOutputMapType,
2201 typename DeviceAdapterTag,
2202 typename ThreadIndicesType,
2217 const WorkletType& worklet,
2218 const viskores::internal::Invocation<ParameterInterface,
2220 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)>,
2222 OutputToInputMapType,
2224 ThreadToOutputMapType,
2225 DeviceAdapterTag>& invocation,
2226 const ThreadIndicesType& threadIndices)
2228 using Invocation = viskores::internal::Invocation<ParameterInterface,
2230 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)>,
2232 OutputToInputMapType,
2234 ThreadToOutputMapType,
2237 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
2238 using FetchType1 =
typename FetchInfo1::type;
2241 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
2243 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
2244 using FetchType2 =
typename FetchInfo2::type;
2247 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
2249 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
2250 using FetchType3 =
typename FetchInfo3::type;
2253 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
2255 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
2256 using FetchType4 =
typename FetchInfo4::type;
2259 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
2261 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
2262 using FetchType5 =
typename FetchInfo5::type;
2265 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
2267 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
2268 using FetchType6 =
typename FetchInfo6::type;
2271 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
2273 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
2274 using FetchType7 =
typename FetchInfo7::type;
2277 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
2279 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
2280 using FetchType8 =
typename FetchInfo8::type;
2283 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
2285 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
2286 using FetchType9 =
typename FetchInfo9::type;
2289 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
2291 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
2292 using FetchType10 =
typename FetchInfo10::type;
2293 FetchType10 fetch10;
2295 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
2297 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
2298 using FetchType11 =
typename FetchInfo11::type;
2299 FetchType11 fetch11;
2301 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
2303 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
2304 using FetchType12 =
typename FetchInfo12::type;
2305 FetchType12 fetch12;
2307 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
2309 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
2310 using ReturnFetchType =
typename FetchInfo0::type;
2311 ReturnFetchType returnFetch;
2321 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
2323 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
2324 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
2325 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
2326 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
2327 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
2328 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
2329 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
2330 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
2331 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
2332 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
2333 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
2334 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
2336 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
2339 template <
typename WorkletType,
2340 typename ParameterInterface,
2341 typename ControlInterface,
2343 typename OutputToInputMapType,
2344 typename VisitArrayType,
2345 typename ThreadToOutputMapType,
2346 typename DeviceAdapterTag,
2347 typename ThreadIndicesType,
2361 const WorkletType& worklet,
2362 const viskores::internal::Invocation<ParameterInterface,
2364 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)>,
2366 OutputToInputMapType,
2368 ThreadToOutputMapType,
2369 DeviceAdapterTag>& invocation,
2370 const ThreadIndicesType& threadIndices)
2373 viskores::internal::Invocation<ParameterInterface,
2375 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)>,
2377 OutputToInputMapType,
2379 ThreadToOutputMapType,
2382 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
2383 using FetchType1 =
typename FetchInfo1::type;
2386 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
2388 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
2389 using FetchType2 =
typename FetchInfo2::type;
2392 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
2394 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
2395 using FetchType3 =
typename FetchInfo3::type;
2398 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
2400 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
2401 using FetchType4 =
typename FetchInfo4::type;
2404 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
2406 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
2407 using FetchType5 =
typename FetchInfo5::type;
2410 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
2412 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
2413 using FetchType6 =
typename FetchInfo6::type;
2416 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
2418 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
2419 using FetchType7 =
typename FetchInfo7::type;
2422 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
2424 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
2425 using FetchType8 =
typename FetchInfo8::type;
2428 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
2430 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
2431 using FetchType9 =
typename FetchInfo9::type;
2434 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
2436 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
2437 using FetchType10 =
typename FetchInfo10::type;
2438 FetchType10 fetch10;
2440 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
2442 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
2443 using FetchType11 =
typename FetchInfo11::type;
2444 FetchType11 fetch11;
2446 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
2448 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
2449 using FetchType12 =
typename FetchInfo12::type;
2450 FetchType12 fetch12;
2452 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
2463 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12);
2465 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
2466 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
2467 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
2468 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
2469 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
2470 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
2471 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
2472 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
2473 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
2474 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
2475 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
2476 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
2479 template <
typename WorkletType,
2480 typename ParameterInterface,
2481 typename ControlInterface,
2483 typename OutputToInputMapType,
2484 typename VisitArrayType,
2485 typename ThreadToOutputMapType,
2486 typename DeviceAdapterTag,
2487 typename ThreadIndicesType,
2503 const WorkletType& worklet,
2504 const viskores::internal::Invocation<ParameterInterface,
2506 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)>,
2508 OutputToInputMapType,
2510 ThreadToOutputMapType,
2511 DeviceAdapterTag>& invocation,
2512 const ThreadIndicesType& threadIndices)
2514 using Invocation = viskores::internal::Invocation<ParameterInterface,
2516 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)>,
2518 OutputToInputMapType,
2520 ThreadToOutputMapType,
2523 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
2524 using FetchType1 =
typename FetchInfo1::type;
2527 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
2529 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
2530 using FetchType2 =
typename FetchInfo2::type;
2533 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
2535 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
2536 using FetchType3 =
typename FetchInfo3::type;
2539 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
2541 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
2542 using FetchType4 =
typename FetchInfo4::type;
2545 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
2547 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
2548 using FetchType5 =
typename FetchInfo5::type;
2551 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
2553 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
2554 using FetchType6 =
typename FetchInfo6::type;
2557 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
2559 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
2560 using FetchType7 =
typename FetchInfo7::type;
2563 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
2565 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
2566 using FetchType8 =
typename FetchInfo8::type;
2569 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
2571 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
2572 using FetchType9 =
typename FetchInfo9::type;
2575 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
2577 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
2578 using FetchType10 =
typename FetchInfo10::type;
2579 FetchType10 fetch10;
2581 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
2583 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
2584 using FetchType11 =
typename FetchInfo11::type;
2585 FetchType11 fetch11;
2587 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
2589 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
2590 using FetchType12 =
typename FetchInfo12::type;
2591 FetchType12 fetch12;
2593 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
2595 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
2596 using FetchType13 =
typename FetchInfo13::type;
2597 FetchType13 fetch13;
2599 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
2601 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
2602 using ReturnFetchType =
typename FetchInfo0::type;
2603 ReturnFetchType returnFetch;
2613 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
2615 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
2616 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
2617 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
2618 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
2619 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
2620 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
2621 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
2622 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
2623 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
2624 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
2625 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
2626 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
2627 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
2629 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
2632 template <
typename WorkletType,
2633 typename ParameterInterface,
2634 typename ControlInterface,
2636 typename OutputToInputMapType,
2637 typename VisitArrayType,
2638 typename ThreadToOutputMapType,
2639 typename DeviceAdapterTag,
2640 typename ThreadIndicesType,
2655 const WorkletType& worklet,
2656 const viskores::internal::Invocation<ParameterInterface,
2658 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)>,
2660 OutputToInputMapType,
2662 ThreadToOutputMapType,
2663 DeviceAdapterTag>& invocation,
2664 const ThreadIndicesType& threadIndices)
2667 viskores::internal::Invocation<ParameterInterface,
2669 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)>,
2671 OutputToInputMapType,
2673 ThreadToOutputMapType,
2676 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
2677 using FetchType1 =
typename FetchInfo1::type;
2680 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
2682 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
2683 using FetchType2 =
typename FetchInfo2::type;
2686 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
2688 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
2689 using FetchType3 =
typename FetchInfo3::type;
2692 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
2694 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
2695 using FetchType4 =
typename FetchInfo4::type;
2698 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
2700 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
2701 using FetchType5 =
typename FetchInfo5::type;
2704 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
2706 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
2707 using FetchType6 =
typename FetchInfo6::type;
2710 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
2712 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
2713 using FetchType7 =
typename FetchInfo7::type;
2716 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
2718 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
2719 using FetchType8 =
typename FetchInfo8::type;
2722 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
2724 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
2725 using FetchType9 =
typename FetchInfo9::type;
2728 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
2730 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
2731 using FetchType10 =
typename FetchInfo10::type;
2732 FetchType10 fetch10;
2734 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
2736 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
2737 using FetchType11 =
typename FetchInfo11::type;
2738 FetchType11 fetch11;
2740 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
2742 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
2743 using FetchType12 =
typename FetchInfo12::type;
2744 FetchType12 fetch12;
2746 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
2748 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
2749 using FetchType13 =
typename FetchInfo13::type;
2750 FetchType13 fetch13;
2752 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
2763 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13);
2765 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
2766 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
2767 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
2768 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
2769 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
2770 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
2771 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
2772 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
2773 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
2774 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
2775 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
2776 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
2777 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
2780 template <
typename WorkletType,
2781 typename ParameterInterface,
2782 typename ControlInterface,
2784 typename OutputToInputMapType,
2785 typename VisitArrayType,
2786 typename ThreadToOutputMapType,
2787 typename DeviceAdapterTag,
2788 typename ThreadIndicesType,
2805 const WorkletType& worklet,
2806 const viskores::internal::Invocation<ParameterInterface,
2808 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)>,
2810 OutputToInputMapType,
2812 ThreadToOutputMapType,
2813 DeviceAdapterTag>& invocation,
2814 const ThreadIndicesType& threadIndices)
2816 using Invocation = viskores::internal::Invocation<ParameterInterface,
2818 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)>,
2820 OutputToInputMapType,
2822 ThreadToOutputMapType,
2825 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
2826 using FetchType1 =
typename FetchInfo1::type;
2829 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
2831 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
2832 using FetchType2 =
typename FetchInfo2::type;
2835 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
2837 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
2838 using FetchType3 =
typename FetchInfo3::type;
2841 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
2843 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
2844 using FetchType4 =
typename FetchInfo4::type;
2847 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
2849 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
2850 using FetchType5 =
typename FetchInfo5::type;
2853 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
2855 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
2856 using FetchType6 =
typename FetchInfo6::type;
2859 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
2861 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
2862 using FetchType7 =
typename FetchInfo7::type;
2865 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
2867 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
2868 using FetchType8 =
typename FetchInfo8::type;
2871 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
2873 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
2874 using FetchType9 =
typename FetchInfo9::type;
2877 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
2879 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
2880 using FetchType10 =
typename FetchInfo10::type;
2881 FetchType10 fetch10;
2883 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
2885 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
2886 using FetchType11 =
typename FetchInfo11::type;
2887 FetchType11 fetch11;
2889 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
2891 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
2892 using FetchType12 =
typename FetchInfo12::type;
2893 FetchType12 fetch12;
2895 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
2897 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
2898 using FetchType13 =
typename FetchInfo13::type;
2899 FetchType13 fetch13;
2901 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
2903 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
2904 using FetchType14 =
typename FetchInfo14::type;
2905 FetchType14 fetch14;
2907 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
2909 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
2910 using ReturnFetchType =
typename FetchInfo0::type;
2911 ReturnFetchType returnFetch;
2921 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
2923 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
2924 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
2925 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
2926 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
2927 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
2928 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
2929 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
2930 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
2931 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
2932 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
2933 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
2934 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
2935 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
2936 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
2938 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
2941 template <
typename WorkletType,
2942 typename ParameterInterface,
2943 typename ControlInterface,
2945 typename OutputToInputMapType,
2946 typename VisitArrayType,
2947 typename ThreadToOutputMapType,
2948 typename DeviceAdapterTag,
2949 typename ThreadIndicesType,
2965 const WorkletType& worklet,
2966 const viskores::internal::Invocation<ParameterInterface,
2968 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)>,
2970 OutputToInputMapType,
2972 ThreadToOutputMapType,
2973 DeviceAdapterTag>& invocation,
2974 const ThreadIndicesType& threadIndices)
2977 viskores::internal::Invocation<ParameterInterface,
2979 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)>,
2981 OutputToInputMapType,
2983 ThreadToOutputMapType,
2986 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
2987 using FetchType1 =
typename FetchInfo1::type;
2990 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
2992 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
2993 using FetchType2 =
typename FetchInfo2::type;
2996 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
2998 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
2999 using FetchType3 =
typename FetchInfo3::type;
3002 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
3004 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
3005 using FetchType4 =
typename FetchInfo4::type;
3008 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
3010 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
3011 using FetchType5 =
typename FetchInfo5::type;
3014 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
3016 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
3017 using FetchType6 =
typename FetchInfo6::type;
3020 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
3022 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
3023 using FetchType7 =
typename FetchInfo7::type;
3026 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
3028 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
3029 using FetchType8 =
typename FetchInfo8::type;
3032 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
3034 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
3035 using FetchType9 =
typename FetchInfo9::type;
3038 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
3040 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
3041 using FetchType10 =
typename FetchInfo10::type;
3042 FetchType10 fetch10;
3044 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
3046 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
3047 using FetchType11 =
typename FetchInfo11::type;
3048 FetchType11 fetch11;
3050 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
3052 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
3053 using FetchType12 =
typename FetchInfo12::type;
3054 FetchType12 fetch12;
3056 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
3058 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
3059 using FetchType13 =
typename FetchInfo13::type;
3060 FetchType13 fetch13;
3062 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
3064 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
3065 using FetchType14 =
typename FetchInfo14::type;
3066 FetchType14 fetch14;
3068 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
3079 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14);
3081 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
3082 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
3083 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
3084 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
3085 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
3086 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
3087 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
3088 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
3089 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
3090 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
3091 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
3092 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
3093 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
3094 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
3097 template <
typename WorkletType,
3098 typename ParameterInterface,
3099 typename ControlInterface,
3101 typename OutputToInputMapType,
3102 typename VisitArrayType,
3103 typename ThreadToOutputMapType,
3104 typename DeviceAdapterTag,
3105 typename ThreadIndicesType,
3123 const WorkletType& worklet,
3124 const viskores::internal::Invocation<ParameterInterface,
3126 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)>,
3128 OutputToInputMapType,
3130 ThreadToOutputMapType,
3131 DeviceAdapterTag>& invocation,
3132 const ThreadIndicesType& threadIndices)
3134 using Invocation = viskores::internal::Invocation<ParameterInterface,
3136 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)>,
3138 OutputToInputMapType,
3140 ThreadToOutputMapType,
3143 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
3144 using FetchType1 =
typename FetchInfo1::type;
3147 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
3149 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
3150 using FetchType2 =
typename FetchInfo2::type;
3153 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
3155 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
3156 using FetchType3 =
typename FetchInfo3::type;
3159 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
3161 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
3162 using FetchType4 =
typename FetchInfo4::type;
3165 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
3167 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
3168 using FetchType5 =
typename FetchInfo5::type;
3171 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
3173 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
3174 using FetchType6 =
typename FetchInfo6::type;
3177 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
3179 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
3180 using FetchType7 =
typename FetchInfo7::type;
3183 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
3185 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
3186 using FetchType8 =
typename FetchInfo8::type;
3189 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
3191 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
3192 using FetchType9 =
typename FetchInfo9::type;
3195 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
3197 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
3198 using FetchType10 =
typename FetchInfo10::type;
3199 FetchType10 fetch10;
3201 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
3203 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
3204 using FetchType11 =
typename FetchInfo11::type;
3205 FetchType11 fetch11;
3207 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
3209 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
3210 using FetchType12 =
typename FetchInfo12::type;
3211 FetchType12 fetch12;
3213 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
3215 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
3216 using FetchType13 =
typename FetchInfo13::type;
3217 FetchType13 fetch13;
3219 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
3221 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
3222 using FetchType14 =
typename FetchInfo14::type;
3223 FetchType14 fetch14;
3225 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
3227 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
3228 using FetchType15 =
typename FetchInfo15::type;
3229 FetchType15 fetch15;
3231 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
3233 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
3234 using ReturnFetchType =
typename FetchInfo0::type;
3235 ReturnFetchType returnFetch;
3245 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
3247 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
3248 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
3249 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
3250 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
3251 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
3252 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
3253 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
3254 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
3255 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
3256 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
3257 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
3258 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
3259 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
3260 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
3261 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
3263 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
3266 template <
typename WorkletType,
3267 typename ParameterInterface,
3268 typename ControlInterface,
3270 typename OutputToInputMapType,
3271 typename VisitArrayType,
3272 typename ThreadToOutputMapType,
3273 typename DeviceAdapterTag,
3274 typename ThreadIndicesType,
3291 const WorkletType& worklet,
3292 const viskores::internal::Invocation<ParameterInterface,
3294 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)>,
3296 OutputToInputMapType,
3298 ThreadToOutputMapType,
3299 DeviceAdapterTag>& invocation,
3300 const ThreadIndicesType& threadIndices)
3303 viskores::internal::Invocation<ParameterInterface,
3305 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)>,
3307 OutputToInputMapType,
3309 ThreadToOutputMapType,
3312 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
3313 using FetchType1 =
typename FetchInfo1::type;
3316 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
3318 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
3319 using FetchType2 =
typename FetchInfo2::type;
3322 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
3324 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
3325 using FetchType3 =
typename FetchInfo3::type;
3328 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
3330 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
3331 using FetchType4 =
typename FetchInfo4::type;
3334 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
3336 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
3337 using FetchType5 =
typename FetchInfo5::type;
3340 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
3342 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
3343 using FetchType6 =
typename FetchInfo6::type;
3346 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
3348 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
3349 using FetchType7 =
typename FetchInfo7::type;
3352 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
3354 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
3355 using FetchType8 =
typename FetchInfo8::type;
3358 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
3360 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
3361 using FetchType9 =
typename FetchInfo9::type;
3364 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
3366 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
3367 using FetchType10 =
typename FetchInfo10::type;
3368 FetchType10 fetch10;
3370 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
3372 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
3373 using FetchType11 =
typename FetchInfo11::type;
3374 FetchType11 fetch11;
3376 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
3378 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
3379 using FetchType12 =
typename FetchInfo12::type;
3380 FetchType12 fetch12;
3382 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
3384 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
3385 using FetchType13 =
typename FetchInfo13::type;
3386 FetchType13 fetch13;
3388 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
3390 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
3391 using FetchType14 =
typename FetchInfo14::type;
3392 FetchType14 fetch14;
3394 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
3396 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
3397 using FetchType15 =
typename FetchInfo15::type;
3398 FetchType15 fetch15;
3400 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
3411 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15);
3413 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
3414 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
3415 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
3416 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
3417 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
3418 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
3419 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
3420 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
3421 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
3422 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
3423 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
3424 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
3425 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
3426 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
3427 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
3430 template <
typename WorkletType,
3431 typename ParameterInterface,
3432 typename ControlInterface,
3434 typename OutputToInputMapType,
3435 typename VisitArrayType,
3436 typename ThreadToOutputMapType,
3437 typename DeviceAdapterTag,
3438 typename ThreadIndicesType,
3457 const WorkletType& worklet,
3458 const viskores::internal::Invocation<ParameterInterface,
3460 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16)>,
3462 OutputToInputMapType,
3464 ThreadToOutputMapType,
3465 DeviceAdapterTag>& invocation,
3466 const ThreadIndicesType& threadIndices)
3468 using Invocation = viskores::internal::Invocation<ParameterInterface,
3470 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16)>,
3472 OutputToInputMapType,
3474 ThreadToOutputMapType,
3477 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
3478 using FetchType1 =
typename FetchInfo1::type;
3481 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
3483 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
3484 using FetchType2 =
typename FetchInfo2::type;
3487 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
3489 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
3490 using FetchType3 =
typename FetchInfo3::type;
3493 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
3495 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
3496 using FetchType4 =
typename FetchInfo4::type;
3499 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
3501 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
3502 using FetchType5 =
typename FetchInfo5::type;
3505 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
3507 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
3508 using FetchType6 =
typename FetchInfo6::type;
3511 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
3513 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
3514 using FetchType7 =
typename FetchInfo7::type;
3517 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
3519 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
3520 using FetchType8 =
typename FetchInfo8::type;
3523 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
3525 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
3526 using FetchType9 =
typename FetchInfo9::type;
3529 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
3531 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
3532 using FetchType10 =
typename FetchInfo10::type;
3533 FetchType10 fetch10;
3535 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
3537 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
3538 using FetchType11 =
typename FetchInfo11::type;
3539 FetchType11 fetch11;
3541 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
3543 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
3544 using FetchType12 =
typename FetchInfo12::type;
3545 FetchType12 fetch12;
3547 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
3549 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
3550 using FetchType13 =
typename FetchInfo13::type;
3551 FetchType13 fetch13;
3553 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
3555 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
3556 using FetchType14 =
typename FetchInfo14::type;
3557 FetchType14 fetch14;
3559 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
3561 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
3562 using FetchType15 =
typename FetchInfo15::type;
3563 FetchType15 fetch15;
3565 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
3567 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
3568 using FetchType16 =
typename FetchInfo16::type;
3569 FetchType16 fetch16;
3571 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
3573 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
3574 using ReturnFetchType =
typename FetchInfo0::type;
3575 ReturnFetchType returnFetch;
3585 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
3587 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
3588 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
3589 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
3590 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
3591 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
3592 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
3593 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
3594 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
3595 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
3596 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
3597 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
3598 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
3599 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
3600 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
3601 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
3602 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
3604 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
3607 template <
typename WorkletType,
3608 typename ParameterInterface,
3609 typename ControlInterface,
3611 typename OutputToInputMapType,
3612 typename VisitArrayType,
3613 typename ThreadToOutputMapType,
3614 typename DeviceAdapterTag,
3615 typename ThreadIndicesType,
3633 const WorkletType& worklet,
3634 const viskores::internal::Invocation<ParameterInterface,
3636 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16)>,
3638 OutputToInputMapType,
3640 ThreadToOutputMapType,
3641 DeviceAdapterTag>& invocation,
3642 const ThreadIndicesType& threadIndices)
3645 viskores::internal::Invocation<ParameterInterface,
3647 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16)>,
3649 OutputToInputMapType,
3651 ThreadToOutputMapType,
3654 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
3655 using FetchType1 =
typename FetchInfo1::type;
3658 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
3660 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
3661 using FetchType2 =
typename FetchInfo2::type;
3664 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
3666 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
3667 using FetchType3 =
typename FetchInfo3::type;
3670 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
3672 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
3673 using FetchType4 =
typename FetchInfo4::type;
3676 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
3678 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
3679 using FetchType5 =
typename FetchInfo5::type;
3682 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
3684 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
3685 using FetchType6 =
typename FetchInfo6::type;
3688 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
3690 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
3691 using FetchType7 =
typename FetchInfo7::type;
3694 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
3696 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
3697 using FetchType8 =
typename FetchInfo8::type;
3700 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
3702 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
3703 using FetchType9 =
typename FetchInfo9::type;
3706 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
3708 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
3709 using FetchType10 =
typename FetchInfo10::type;
3710 FetchType10 fetch10;
3712 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
3714 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
3715 using FetchType11 =
typename FetchInfo11::type;
3716 FetchType11 fetch11;
3718 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
3720 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
3721 using FetchType12 =
typename FetchInfo12::type;
3722 FetchType12 fetch12;
3724 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
3726 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
3727 using FetchType13 =
typename FetchInfo13::type;
3728 FetchType13 fetch13;
3730 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
3732 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
3733 using FetchType14 =
typename FetchInfo14::type;
3734 FetchType14 fetch14;
3736 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
3738 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
3739 using FetchType15 =
typename FetchInfo15::type;
3740 FetchType15 fetch15;
3742 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
3744 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
3745 using FetchType16 =
typename FetchInfo16::type;
3746 FetchType16 fetch16;
3748 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
3759 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16);
3761 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
3762 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
3763 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
3764 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
3765 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
3766 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
3767 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
3768 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
3769 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
3770 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
3771 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
3772 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
3773 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
3774 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
3775 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
3776 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
3779 template <
typename WorkletType,
3780 typename ParameterInterface,
3781 typename ControlInterface,
3783 typename OutputToInputMapType,
3784 typename VisitArrayType,
3785 typename ThreadToOutputMapType,
3786 typename DeviceAdapterTag,
3787 typename ThreadIndicesType,
3807 const WorkletType& worklet,
3808 const viskores::internal::Invocation<ParameterInterface,
3810 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17)>,
3812 OutputToInputMapType,
3814 ThreadToOutputMapType,
3815 DeviceAdapterTag>& invocation,
3816 const ThreadIndicesType& threadIndices)
3818 using Invocation = viskores::internal::Invocation<ParameterInterface,
3820 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17)>,
3822 OutputToInputMapType,
3824 ThreadToOutputMapType,
3827 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
3828 using FetchType1 =
typename FetchInfo1::type;
3831 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
3833 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
3834 using FetchType2 =
typename FetchInfo2::type;
3837 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
3839 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
3840 using FetchType3 =
typename FetchInfo3::type;
3843 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
3845 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
3846 using FetchType4 =
typename FetchInfo4::type;
3849 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
3851 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
3852 using FetchType5 =
typename FetchInfo5::type;
3855 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
3857 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
3858 using FetchType6 =
typename FetchInfo6::type;
3861 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
3863 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
3864 using FetchType7 =
typename FetchInfo7::type;
3867 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
3869 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
3870 using FetchType8 =
typename FetchInfo8::type;
3873 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
3875 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
3876 using FetchType9 =
typename FetchInfo9::type;
3879 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
3881 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
3882 using FetchType10 =
typename FetchInfo10::type;
3883 FetchType10 fetch10;
3885 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
3887 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
3888 using FetchType11 =
typename FetchInfo11::type;
3889 FetchType11 fetch11;
3891 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
3893 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
3894 using FetchType12 =
typename FetchInfo12::type;
3895 FetchType12 fetch12;
3897 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
3899 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
3900 using FetchType13 =
typename FetchInfo13::type;
3901 FetchType13 fetch13;
3903 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
3905 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
3906 using FetchType14 =
typename FetchInfo14::type;
3907 FetchType14 fetch14;
3909 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
3911 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
3912 using FetchType15 =
typename FetchInfo15::type;
3913 FetchType15 fetch15;
3915 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
3917 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
3918 using FetchType16 =
typename FetchInfo16::type;
3919 FetchType16 fetch16;
3921 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
3923 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
3924 using FetchType17 =
typename FetchInfo17::type;
3925 FetchType17 fetch17;
3927 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
3929 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
3930 using ReturnFetchType =
typename FetchInfo0::type;
3931 ReturnFetchType returnFetch;
3941 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17);
3943 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
3944 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
3945 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
3946 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
3947 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
3948 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
3949 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
3950 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
3951 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
3952 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
3953 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
3954 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
3955 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
3956 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
3957 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
3958 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
3959 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
3961 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
3964 template <
typename WorkletType,
3965 typename ParameterInterface,
3966 typename ControlInterface,
3968 typename OutputToInputMapType,
3969 typename VisitArrayType,
3970 typename ThreadToOutputMapType,
3971 typename DeviceAdapterTag,
3972 typename ThreadIndicesType,
3991 const WorkletType& worklet,
3992 const viskores::internal::Invocation<ParameterInterface,
3994 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17)>,
3996 OutputToInputMapType,
3998 ThreadToOutputMapType,
3999 DeviceAdapterTag>& invocation,
4000 const ThreadIndicesType& threadIndices)
4003 viskores::internal::Invocation<ParameterInterface,
4005 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17)>,
4007 OutputToInputMapType,
4009 ThreadToOutputMapType,
4012 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
4013 using FetchType1 =
typename FetchInfo1::type;
4016 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
4018 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
4019 using FetchType2 =
typename FetchInfo2::type;
4022 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
4024 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
4025 using FetchType3 =
typename FetchInfo3::type;
4028 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
4030 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
4031 using FetchType4 =
typename FetchInfo4::type;
4034 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
4036 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
4037 using FetchType5 =
typename FetchInfo5::type;
4040 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
4042 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
4043 using FetchType6 =
typename FetchInfo6::type;
4046 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
4048 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
4049 using FetchType7 =
typename FetchInfo7::type;
4052 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
4054 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
4055 using FetchType8 =
typename FetchInfo8::type;
4058 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
4060 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
4061 using FetchType9 =
typename FetchInfo9::type;
4064 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
4066 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
4067 using FetchType10 =
typename FetchInfo10::type;
4068 FetchType10 fetch10;
4070 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
4072 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
4073 using FetchType11 =
typename FetchInfo11::type;
4074 FetchType11 fetch11;
4076 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
4078 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
4079 using FetchType12 =
typename FetchInfo12::type;
4080 FetchType12 fetch12;
4082 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
4084 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
4085 using FetchType13 =
typename FetchInfo13::type;
4086 FetchType13 fetch13;
4088 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
4090 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
4091 using FetchType14 =
typename FetchInfo14::type;
4092 FetchType14 fetch14;
4094 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
4096 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
4097 using FetchType15 =
typename FetchInfo15::type;
4098 FetchType15 fetch15;
4100 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
4102 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
4103 using FetchType16 =
typename FetchInfo16::type;
4104 FetchType16 fetch16;
4106 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
4108 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
4109 using FetchType17 =
typename FetchInfo17::type;
4110 FetchType17 fetch17;
4112 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
4123 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17);
4125 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
4126 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
4127 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
4128 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
4129 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
4130 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
4131 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
4132 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
4133 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
4134 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
4135 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
4136 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
4137 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
4138 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
4139 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
4140 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
4141 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
4144 template <
typename WorkletType,
4145 typename ParameterInterface,
4146 typename ControlInterface,
4148 typename OutputToInputMapType,
4149 typename VisitArrayType,
4150 typename ThreadToOutputMapType,
4151 typename DeviceAdapterTag,
4152 typename ThreadIndicesType,
4173 const WorkletType& worklet,
4174 const viskores::internal::Invocation<ParameterInterface,
4176 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18)>,
4178 OutputToInputMapType,
4180 ThreadToOutputMapType,
4181 DeviceAdapterTag>& invocation,
4182 const ThreadIndicesType& threadIndices)
4184 using Invocation = viskores::internal::Invocation<ParameterInterface,
4186 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18)>,
4188 OutputToInputMapType,
4190 ThreadToOutputMapType,
4193 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
4194 using FetchType1 =
typename FetchInfo1::type;
4197 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
4199 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
4200 using FetchType2 =
typename FetchInfo2::type;
4203 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
4205 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
4206 using FetchType3 =
typename FetchInfo3::type;
4209 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
4211 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
4212 using FetchType4 =
typename FetchInfo4::type;
4215 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
4217 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
4218 using FetchType5 =
typename FetchInfo5::type;
4221 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
4223 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
4224 using FetchType6 =
typename FetchInfo6::type;
4227 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
4229 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
4230 using FetchType7 =
typename FetchInfo7::type;
4233 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
4235 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
4236 using FetchType8 =
typename FetchInfo8::type;
4239 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
4241 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
4242 using FetchType9 =
typename FetchInfo9::type;
4245 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
4247 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
4248 using FetchType10 =
typename FetchInfo10::type;
4249 FetchType10 fetch10;
4251 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
4253 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
4254 using FetchType11 =
typename FetchInfo11::type;
4255 FetchType11 fetch11;
4257 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
4259 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
4260 using FetchType12 =
typename FetchInfo12::type;
4261 FetchType12 fetch12;
4263 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
4265 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
4266 using FetchType13 =
typename FetchInfo13::type;
4267 FetchType13 fetch13;
4269 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
4271 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
4272 using FetchType14 =
typename FetchInfo14::type;
4273 FetchType14 fetch14;
4275 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
4277 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
4278 using FetchType15 =
typename FetchInfo15::type;
4279 FetchType15 fetch15;
4281 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
4283 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
4284 using FetchType16 =
typename FetchInfo16::type;
4285 FetchType16 fetch16;
4287 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
4289 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
4290 using FetchType17 =
typename FetchInfo17::type;
4291 FetchType17 fetch17;
4293 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
4295 using FetchInfo18 = InvocationToFetch<ThreadIndicesType, Invocation, 18>;
4296 using FetchType18 =
typename FetchInfo18::type;
4297 FetchType18 fetch18;
4299 fetch18.Load(threadIndices, FetchInfo18::GetParameter(invocation));
4301 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
4302 using ReturnFetchType =
typename FetchInfo0::type;
4303 ReturnFetchType returnFetch;
4313 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18);
4315 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
4316 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
4317 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
4318 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
4319 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
4320 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
4321 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
4322 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
4323 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
4324 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
4325 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
4326 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
4327 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
4328 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
4329 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
4330 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
4331 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
4332 fetch18.Store(threadIndices, FetchInfo18::GetParameter(invocation), p18);
4334 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
4337 template <
typename WorkletType,
4338 typename ParameterInterface,
4339 typename ControlInterface,
4341 typename OutputToInputMapType,
4342 typename VisitArrayType,
4343 typename ThreadToOutputMapType,
4344 typename DeviceAdapterTag,
4345 typename ThreadIndicesType,
4365 const WorkletType& worklet,
4366 const viskores::internal::Invocation<ParameterInterface,
4368 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18)>,
4370 OutputToInputMapType,
4372 ThreadToOutputMapType,
4373 DeviceAdapterTag>& invocation,
4374 const ThreadIndicesType& threadIndices)
4377 viskores::internal::Invocation<ParameterInterface,
4379 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18)>,
4381 OutputToInputMapType,
4383 ThreadToOutputMapType,
4386 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
4387 using FetchType1 =
typename FetchInfo1::type;
4390 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
4392 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
4393 using FetchType2 =
typename FetchInfo2::type;
4396 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
4398 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
4399 using FetchType3 =
typename FetchInfo3::type;
4402 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
4404 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
4405 using FetchType4 =
typename FetchInfo4::type;
4408 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
4410 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
4411 using FetchType5 =
typename FetchInfo5::type;
4414 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
4416 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
4417 using FetchType6 =
typename FetchInfo6::type;
4420 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
4422 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
4423 using FetchType7 =
typename FetchInfo7::type;
4426 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
4428 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
4429 using FetchType8 =
typename FetchInfo8::type;
4432 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
4434 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
4435 using FetchType9 =
typename FetchInfo9::type;
4438 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
4440 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
4441 using FetchType10 =
typename FetchInfo10::type;
4442 FetchType10 fetch10;
4444 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
4446 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
4447 using FetchType11 =
typename FetchInfo11::type;
4448 FetchType11 fetch11;
4450 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
4452 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
4453 using FetchType12 =
typename FetchInfo12::type;
4454 FetchType12 fetch12;
4456 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
4458 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
4459 using FetchType13 =
typename FetchInfo13::type;
4460 FetchType13 fetch13;
4462 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
4464 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
4465 using FetchType14 =
typename FetchInfo14::type;
4466 FetchType14 fetch14;
4468 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
4470 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
4471 using FetchType15 =
typename FetchInfo15::type;
4472 FetchType15 fetch15;
4474 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
4476 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
4477 using FetchType16 =
typename FetchInfo16::type;
4478 FetchType16 fetch16;
4480 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
4482 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
4483 using FetchType17 =
typename FetchInfo17::type;
4484 FetchType17 fetch17;
4486 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
4488 using FetchInfo18 = InvocationToFetch<ThreadIndicesType, Invocation, 18>;
4489 using FetchType18 =
typename FetchInfo18::type;
4490 FetchType18 fetch18;
4492 fetch18.Load(threadIndices, FetchInfo18::GetParameter(invocation));
4503 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18);
4505 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
4506 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
4507 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
4508 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
4509 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
4510 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
4511 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
4512 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
4513 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
4514 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
4515 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
4516 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
4517 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
4518 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
4519 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
4520 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
4521 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
4522 fetch18.Store(threadIndices, FetchInfo18::GetParameter(invocation), p18);
4525 template <
typename WorkletType,
4526 typename ParameterInterface,
4527 typename ControlInterface,
4529 typename OutputToInputMapType,
4530 typename VisitArrayType,
4531 typename ThreadToOutputMapType,
4532 typename DeviceAdapterTag,
4533 typename ThreadIndicesType,
4555 const WorkletType& worklet,
4556 const viskores::internal::Invocation<ParameterInterface,
4558 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19)>,
4560 OutputToInputMapType,
4562 ThreadToOutputMapType,
4563 DeviceAdapterTag>& invocation,
4564 const ThreadIndicesType& threadIndices)
4566 using Invocation = viskores::internal::Invocation<ParameterInterface,
4568 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19)>,
4570 OutputToInputMapType,
4572 ThreadToOutputMapType,
4575 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
4576 using FetchType1 =
typename FetchInfo1::type;
4579 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
4581 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
4582 using FetchType2 =
typename FetchInfo2::type;
4585 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
4587 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
4588 using FetchType3 =
typename FetchInfo3::type;
4591 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
4593 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
4594 using FetchType4 =
typename FetchInfo4::type;
4597 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
4599 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
4600 using FetchType5 =
typename FetchInfo5::type;
4603 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
4605 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
4606 using FetchType6 =
typename FetchInfo6::type;
4609 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
4611 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
4612 using FetchType7 =
typename FetchInfo7::type;
4615 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
4617 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
4618 using FetchType8 =
typename FetchInfo8::type;
4621 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
4623 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
4624 using FetchType9 =
typename FetchInfo9::type;
4627 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
4629 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
4630 using FetchType10 =
typename FetchInfo10::type;
4631 FetchType10 fetch10;
4633 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
4635 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
4636 using FetchType11 =
typename FetchInfo11::type;
4637 FetchType11 fetch11;
4639 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
4641 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
4642 using FetchType12 =
typename FetchInfo12::type;
4643 FetchType12 fetch12;
4645 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
4647 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
4648 using FetchType13 =
typename FetchInfo13::type;
4649 FetchType13 fetch13;
4651 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
4653 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
4654 using FetchType14 =
typename FetchInfo14::type;
4655 FetchType14 fetch14;
4657 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
4659 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
4660 using FetchType15 =
typename FetchInfo15::type;
4661 FetchType15 fetch15;
4663 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
4665 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
4666 using FetchType16 =
typename FetchInfo16::type;
4667 FetchType16 fetch16;
4669 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
4671 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
4672 using FetchType17 =
typename FetchInfo17::type;
4673 FetchType17 fetch17;
4675 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
4677 using FetchInfo18 = InvocationToFetch<ThreadIndicesType, Invocation, 18>;
4678 using FetchType18 =
typename FetchInfo18::type;
4679 FetchType18 fetch18;
4681 fetch18.Load(threadIndices, FetchInfo18::GetParameter(invocation));
4683 using FetchInfo19 = InvocationToFetch<ThreadIndicesType, Invocation, 19>;
4684 using FetchType19 =
typename FetchInfo19::type;
4685 FetchType19 fetch19;
4687 fetch19.Load(threadIndices, FetchInfo19::GetParameter(invocation));
4689 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
4690 using ReturnFetchType =
typename FetchInfo0::type;
4691 ReturnFetchType returnFetch;
4701 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19);
4703 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
4704 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
4705 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
4706 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
4707 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
4708 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
4709 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
4710 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
4711 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
4712 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
4713 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
4714 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
4715 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
4716 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
4717 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
4718 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
4719 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
4720 fetch18.Store(threadIndices, FetchInfo18::GetParameter(invocation), p18);
4721 fetch19.Store(threadIndices, FetchInfo19::GetParameter(invocation), p19);
4723 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
4726 template <
typename WorkletType,
4727 typename ParameterInterface,
4728 typename ControlInterface,
4730 typename OutputToInputMapType,
4731 typename VisitArrayType,
4732 typename ThreadToOutputMapType,
4733 typename DeviceAdapterTag,
4734 typename ThreadIndicesType,
4755 const WorkletType& worklet,
4756 const viskores::internal::Invocation<ParameterInterface,
4758 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19)>,
4760 OutputToInputMapType,
4762 ThreadToOutputMapType,
4763 DeviceAdapterTag>& invocation,
4764 const ThreadIndicesType& threadIndices)
4767 viskores::internal::Invocation<ParameterInterface,
4769 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19)>,
4771 OutputToInputMapType,
4773 ThreadToOutputMapType,
4776 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
4777 using FetchType1 =
typename FetchInfo1::type;
4780 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
4782 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
4783 using FetchType2 =
typename FetchInfo2::type;
4786 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
4788 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
4789 using FetchType3 =
typename FetchInfo3::type;
4792 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
4794 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
4795 using FetchType4 =
typename FetchInfo4::type;
4798 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
4800 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
4801 using FetchType5 =
typename FetchInfo5::type;
4804 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
4806 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
4807 using FetchType6 =
typename FetchInfo6::type;
4810 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
4812 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
4813 using FetchType7 =
typename FetchInfo7::type;
4816 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
4818 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
4819 using FetchType8 =
typename FetchInfo8::type;
4822 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
4824 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
4825 using FetchType9 =
typename FetchInfo9::type;
4828 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
4830 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
4831 using FetchType10 =
typename FetchInfo10::type;
4832 FetchType10 fetch10;
4834 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
4836 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
4837 using FetchType11 =
typename FetchInfo11::type;
4838 FetchType11 fetch11;
4840 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
4842 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
4843 using FetchType12 =
typename FetchInfo12::type;
4844 FetchType12 fetch12;
4846 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
4848 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
4849 using FetchType13 =
typename FetchInfo13::type;
4850 FetchType13 fetch13;
4852 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
4854 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
4855 using FetchType14 =
typename FetchInfo14::type;
4856 FetchType14 fetch14;
4858 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
4860 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
4861 using FetchType15 =
typename FetchInfo15::type;
4862 FetchType15 fetch15;
4864 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
4866 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
4867 using FetchType16 =
typename FetchInfo16::type;
4868 FetchType16 fetch16;
4870 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
4872 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
4873 using FetchType17 =
typename FetchInfo17::type;
4874 FetchType17 fetch17;
4876 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
4878 using FetchInfo18 = InvocationToFetch<ThreadIndicesType, Invocation, 18>;
4879 using FetchType18 =
typename FetchInfo18::type;
4880 FetchType18 fetch18;
4882 fetch18.Load(threadIndices, FetchInfo18::GetParameter(invocation));
4884 using FetchInfo19 = InvocationToFetch<ThreadIndicesType, Invocation, 19>;
4885 using FetchType19 =
typename FetchInfo19::type;
4886 FetchType19 fetch19;
4888 fetch19.Load(threadIndices, FetchInfo19::GetParameter(invocation));
4899 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19);
4901 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
4902 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
4903 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
4904 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
4905 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
4906 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
4907 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
4908 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
4909 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
4910 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
4911 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
4912 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
4913 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
4914 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
4915 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
4916 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
4917 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
4918 fetch18.Store(threadIndices, FetchInfo18::GetParameter(invocation), p18);
4919 fetch19.Store(threadIndices, FetchInfo19::GetParameter(invocation), p19);
4922 template <
typename WorkletType,
4923 typename ParameterInterface,
4924 typename ControlInterface,
4926 typename OutputToInputMapType,
4927 typename VisitArrayType,
4928 typename ThreadToOutputMapType,
4929 typename DeviceAdapterTag,
4930 typename ThreadIndicesType,
4953 const WorkletType& worklet,
4954 const viskores::internal::Invocation<ParameterInterface,
4956 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20)>,
4958 OutputToInputMapType,
4960 ThreadToOutputMapType,
4961 DeviceAdapterTag>& invocation,
4962 const ThreadIndicesType& threadIndices)
4964 using Invocation = viskores::internal::Invocation<ParameterInterface,
4966 viskores::internal::FunctionInterface<R(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20)>,
4968 OutputToInputMapType,
4970 ThreadToOutputMapType,
4973 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
4974 using FetchType1 =
typename FetchInfo1::type;
4977 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
4979 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
4980 using FetchType2 =
typename FetchInfo2::type;
4983 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
4985 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
4986 using FetchType3 =
typename FetchInfo3::type;
4989 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
4991 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
4992 using FetchType4 =
typename FetchInfo4::type;
4995 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
4997 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
4998 using FetchType5 =
typename FetchInfo5::type;
5001 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
5003 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
5004 using FetchType6 =
typename FetchInfo6::type;
5007 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
5009 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
5010 using FetchType7 =
typename FetchInfo7::type;
5013 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
5015 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
5016 using FetchType8 =
typename FetchInfo8::type;
5019 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
5021 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
5022 using FetchType9 =
typename FetchInfo9::type;
5025 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
5027 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
5028 using FetchType10 =
typename FetchInfo10::type;
5029 FetchType10 fetch10;
5031 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
5033 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
5034 using FetchType11 =
typename FetchInfo11::type;
5035 FetchType11 fetch11;
5037 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
5039 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
5040 using FetchType12 =
typename FetchInfo12::type;
5041 FetchType12 fetch12;
5043 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
5045 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
5046 using FetchType13 =
typename FetchInfo13::type;
5047 FetchType13 fetch13;
5049 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
5051 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
5052 using FetchType14 =
typename FetchInfo14::type;
5053 FetchType14 fetch14;
5055 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
5057 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
5058 using FetchType15 =
typename FetchInfo15::type;
5059 FetchType15 fetch15;
5061 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
5063 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
5064 using FetchType16 =
typename FetchInfo16::type;
5065 FetchType16 fetch16;
5067 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
5069 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
5070 using FetchType17 =
typename FetchInfo17::type;
5071 FetchType17 fetch17;
5073 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
5075 using FetchInfo18 = InvocationToFetch<ThreadIndicesType, Invocation, 18>;
5076 using FetchType18 =
typename FetchInfo18::type;
5077 FetchType18 fetch18;
5079 fetch18.Load(threadIndices, FetchInfo18::GetParameter(invocation));
5081 using FetchInfo19 = InvocationToFetch<ThreadIndicesType, Invocation, 19>;
5082 using FetchType19 =
typename FetchInfo19::type;
5083 FetchType19 fetch19;
5085 fetch19.Load(threadIndices, FetchInfo19::GetParameter(invocation));
5087 using FetchInfo20 = InvocationToFetch<ThreadIndicesType, Invocation, 20>;
5088 using FetchType20 =
typename FetchInfo20::type;
5089 FetchType20 fetch20;
5091 fetch20.Load(threadIndices, FetchInfo20::GetParameter(invocation));
5093 using FetchInfo0 = InvocationToFetch<ThreadIndicesType, Invocation, 0>;
5094 using ReturnFetchType =
typename FetchInfo0::type;
5095 ReturnFetchType returnFetch;
5105 auto r = worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20);
5107 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
5108 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
5109 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
5110 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
5111 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
5112 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
5113 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
5114 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
5115 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
5116 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
5117 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
5118 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
5119 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
5120 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
5121 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
5122 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
5123 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
5124 fetch18.Store(threadIndices, FetchInfo18::GetParameter(invocation), p18);
5125 fetch19.Store(threadIndices, FetchInfo19::GetParameter(invocation), p19);
5126 fetch20.Store(threadIndices, FetchInfo20::GetParameter(invocation), p20);
5128 returnFetch.Store(threadIndices, FetchInfo0::GetParameter(invocation), r);
5131 template <
typename WorkletType,
5132 typename ParameterInterface,
5133 typename ControlInterface,
5135 typename OutputToInputMapType,
5136 typename VisitArrayType,
5137 typename ThreadToOutputMapType,
5138 typename DeviceAdapterTag,
5139 typename ThreadIndicesType,
5161 const WorkletType& worklet,
5162 const viskores::internal::Invocation<ParameterInterface,
5164 viskores::internal::FunctionInterface<
void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20)>,
5166 OutputToInputMapType,
5168 ThreadToOutputMapType,
5169 DeviceAdapterTag>& invocation,
5170 const ThreadIndicesType& threadIndices)
5173 viskores::internal::Invocation<ParameterInterface,
5175 viskores::internal::FunctionInterface<void(P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20)>,
5177 OutputToInputMapType,
5179 ThreadToOutputMapType,
5182 using FetchInfo1 = InvocationToFetch<ThreadIndicesType, Invocation, 1>;
5183 using FetchType1 =
typename FetchInfo1::type;
5186 fetch1.Load(threadIndices, FetchInfo1::GetParameter(invocation));
5188 using FetchInfo2 = InvocationToFetch<ThreadIndicesType, Invocation, 2>;
5189 using FetchType2 =
typename FetchInfo2::type;
5192 fetch2.Load(threadIndices, FetchInfo2::GetParameter(invocation));
5194 using FetchInfo3 = InvocationToFetch<ThreadIndicesType, Invocation, 3>;
5195 using FetchType3 =
typename FetchInfo3::type;
5198 fetch3.Load(threadIndices, FetchInfo3::GetParameter(invocation));
5200 using FetchInfo4 = InvocationToFetch<ThreadIndicesType, Invocation, 4>;
5201 using FetchType4 =
typename FetchInfo4::type;
5204 fetch4.Load(threadIndices, FetchInfo4::GetParameter(invocation));
5206 using FetchInfo5 = InvocationToFetch<ThreadIndicesType, Invocation, 5>;
5207 using FetchType5 =
typename FetchInfo5::type;
5210 fetch5.Load(threadIndices, FetchInfo5::GetParameter(invocation));
5212 using FetchInfo6 = InvocationToFetch<ThreadIndicesType, Invocation, 6>;
5213 using FetchType6 =
typename FetchInfo6::type;
5216 fetch6.Load(threadIndices, FetchInfo6::GetParameter(invocation));
5218 using FetchInfo7 = InvocationToFetch<ThreadIndicesType, Invocation, 7>;
5219 using FetchType7 =
typename FetchInfo7::type;
5222 fetch7.Load(threadIndices, FetchInfo7::GetParameter(invocation));
5224 using FetchInfo8 = InvocationToFetch<ThreadIndicesType, Invocation, 8>;
5225 using FetchType8 =
typename FetchInfo8::type;
5228 fetch8.Load(threadIndices, FetchInfo8::GetParameter(invocation));
5230 using FetchInfo9 = InvocationToFetch<ThreadIndicesType, Invocation, 9>;
5231 using FetchType9 =
typename FetchInfo9::type;
5234 fetch9.Load(threadIndices, FetchInfo9::GetParameter(invocation));
5236 using FetchInfo10 = InvocationToFetch<ThreadIndicesType, Invocation, 10>;
5237 using FetchType10 =
typename FetchInfo10::type;
5238 FetchType10 fetch10;
5240 fetch10.Load(threadIndices, FetchInfo10::GetParameter(invocation));
5242 using FetchInfo11 = InvocationToFetch<ThreadIndicesType, Invocation, 11>;
5243 using FetchType11 =
typename FetchInfo11::type;
5244 FetchType11 fetch11;
5246 fetch11.Load(threadIndices, FetchInfo11::GetParameter(invocation));
5248 using FetchInfo12 = InvocationToFetch<ThreadIndicesType, Invocation, 12>;
5249 using FetchType12 =
typename FetchInfo12::type;
5250 FetchType12 fetch12;
5252 fetch12.Load(threadIndices, FetchInfo12::GetParameter(invocation));
5254 using FetchInfo13 = InvocationToFetch<ThreadIndicesType, Invocation, 13>;
5255 using FetchType13 =
typename FetchInfo13::type;
5256 FetchType13 fetch13;
5258 fetch13.Load(threadIndices, FetchInfo13::GetParameter(invocation));
5260 using FetchInfo14 = InvocationToFetch<ThreadIndicesType, Invocation, 14>;
5261 using FetchType14 =
typename FetchInfo14::type;
5262 FetchType14 fetch14;
5264 fetch14.Load(threadIndices, FetchInfo14::GetParameter(invocation));
5266 using FetchInfo15 = InvocationToFetch<ThreadIndicesType, Invocation, 15>;
5267 using FetchType15 =
typename FetchInfo15::type;
5268 FetchType15 fetch15;
5270 fetch15.Load(threadIndices, FetchInfo15::GetParameter(invocation));
5272 using FetchInfo16 = InvocationToFetch<ThreadIndicesType, Invocation, 16>;
5273 using FetchType16 =
typename FetchInfo16::type;
5274 FetchType16 fetch16;
5276 fetch16.Load(threadIndices, FetchInfo16::GetParameter(invocation));
5278 using FetchInfo17 = InvocationToFetch<ThreadIndicesType, Invocation, 17>;
5279 using FetchType17 =
typename FetchInfo17::type;
5280 FetchType17 fetch17;
5282 fetch17.Load(threadIndices, FetchInfo17::GetParameter(invocation));
5284 using FetchInfo18 = InvocationToFetch<ThreadIndicesType, Invocation, 18>;
5285 using FetchType18 =
typename FetchInfo18::type;
5286 FetchType18 fetch18;
5288 fetch18.Load(threadIndices, FetchInfo18::GetParameter(invocation));
5290 using FetchInfo19 = InvocationToFetch<ThreadIndicesType, Invocation, 19>;
5291 using FetchType19 =
typename FetchInfo19::type;
5292 FetchType19 fetch19;
5294 fetch19.Load(threadIndices, FetchInfo19::GetParameter(invocation));
5296 using FetchInfo20 = InvocationToFetch<ThreadIndicesType, Invocation, 20>;
5297 using FetchType20 =
typename FetchInfo20::type;
5298 FetchType20 fetch20;
5300 fetch20.Load(threadIndices, FetchInfo20::GetParameter(invocation));
5311 worklet(p1, p2, p3, p4, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p15, p16, p17, p18, p19, p20);
5313 fetch1.Store(threadIndices, FetchInfo1::GetParameter(invocation), p1);
5314 fetch2.Store(threadIndices, FetchInfo2::GetParameter(invocation), p2);
5315 fetch3.Store(threadIndices, FetchInfo3::GetParameter(invocation), p3);
5316 fetch4.Store(threadIndices, FetchInfo4::GetParameter(invocation), p4);
5317 fetch5.Store(threadIndices, FetchInfo5::GetParameter(invocation), p5);
5318 fetch6.Store(threadIndices, FetchInfo6::GetParameter(invocation), p6);
5319 fetch7.Store(threadIndices, FetchInfo7::GetParameter(invocation), p7);
5320 fetch8.Store(threadIndices, FetchInfo8::GetParameter(invocation), p8);
5321 fetch9.Store(threadIndices, FetchInfo9::GetParameter(invocation), p9);
5322 fetch10.Store(threadIndices, FetchInfo10::GetParameter(invocation), p10);
5323 fetch11.Store(threadIndices, FetchInfo11::GetParameter(invocation), p11);
5324 fetch12.Store(threadIndices, FetchInfo12::GetParameter(invocation), p12);
5325 fetch13.Store(threadIndices, FetchInfo13::GetParameter(invocation), p13);
5326 fetch14.Store(threadIndices, FetchInfo14::GetParameter(invocation), p14);
5327 fetch15.Store(threadIndices, FetchInfo15::GetParameter(invocation), p15);
5328 fetch16.Store(threadIndices, FetchInfo16::GetParameter(invocation), p16);
5329 fetch17.Store(threadIndices, FetchInfo17::GetParameter(invocation), p17);
5330 fetch18.Store(threadIndices, FetchInfo18::GetParameter(invocation), p18);
5331 fetch19.Store(threadIndices, FetchInfo19::GetParameter(invocation), p19);
5332 fetch20.Store(threadIndices, FetchInfo20::GetParameter(invocation), p20);
5341 #endif //viskores_exec_internal_WorkletInvokeFunctorDetail_h