VTK-m  2.2
FunctionInterfaceDetailPost.h
Go to the documentation of this file.
1 //============================================================================
2 // Copyright (c) Kitware, Inc.
3 // All rights reserved.
4 // See LICENSE.txt for details.
5 //
6 // This software is distributed WITHOUT ANY WARRANTY; without even
7 // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
8 // PURPOSE. See the above copyright notice for more information.
9 //============================================================================
10 // **** DO NOT EDIT THIS FILE!!! ****
11 // This file is automatically generated by FunctionInterfaceDetailPost.h.in
12 
13 #ifndef vtk_m_internal_FunctionInterfaceDetailPost_h
14 #define vtk_m_internal_FunctionInterfaceDetailPost_h
15 
16 #if !defined(vtk_m_internal_FunctionInterface_h) && !defined(VTKM_TEST_HEADER_BUILD)
17 #error FunctionInterfaceDetailPre.h must be included from FunctionInterface.h
18 #endif
19 
21 
22 #if VTKM_MAX_FUNCTION_PARAMETERS != 20
23 #error Mismatch of maximum parameters between FunctionInterfaceDatailPre.h.in and FunctionInterfaceDetailPost.h.in
24 #endif
25 
26 
27 namespace vtkm
28 {
29 namespace internal
30 {
31 
32 namespace detail
33 {
34 
35 //============================================================================
36 
37 // clang-format off
38 
39 template<typename Transform,
40  typename R>
41 struct FunctionInterfaceStaticTransformType<R(), Transform>
42 {
43  using type = R(
44  );
45 };
46 
47 template<typename Transform,
48  typename R,
49  typename P1>
50 struct FunctionInterfaceStaticTransformType<R(P1), Transform>
51 {
52  using type = R(
53  typename Transform::template ReturnType<P1,1>::type
54  );
55 };
56 
57 template<typename Transform,
58  typename R,
59  typename P1,
60  typename P2>
61 struct FunctionInterfaceStaticTransformType<R(P1,P2), Transform>
62 {
63  using type = R(
64  typename Transform::template ReturnType<P1,1>::type,
65  typename Transform::template ReturnType<P2,2>::type
66  );
67 };
68 
69 template<typename Transform,
70  typename R,
71  typename P1,
72  typename P2,
73  typename P3>
74 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3), Transform>
75 {
76  using type = R(
77  typename Transform::template ReturnType<P1,1>::type,
78  typename Transform::template ReturnType<P2,2>::type,
79  typename Transform::template ReturnType<P3,3>::type
80  );
81 };
82 
83 template<typename Transform,
84  typename R,
85  typename P1,
86  typename P2,
87  typename P3,
88  typename P4>
89 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4), Transform>
90 {
91  using type = R(
92  typename Transform::template ReturnType<P1,1>::type,
93  typename Transform::template ReturnType<P2,2>::type,
94  typename Transform::template ReturnType<P3,3>::type,
95  typename Transform::template ReturnType<P4,4>::type
96  );
97 };
98 
99 template<typename Transform,
100  typename R,
101  typename P1,
102  typename P2,
103  typename P3,
104  typename P4,
105  typename P5>
106 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5), Transform>
107 {
108  using type = R(
109  typename Transform::template ReturnType<P1,1>::type,
110  typename Transform::template ReturnType<P2,2>::type,
111  typename Transform::template ReturnType<P3,3>::type,
112  typename Transform::template ReturnType<P4,4>::type,
113  typename Transform::template ReturnType<P5,5>::type
114  );
115 };
116 
117 template<typename Transform,
118  typename R,
119  typename P1,
120  typename P2,
121  typename P3,
122  typename P4,
123  typename P5,
124  typename P6>
125 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6), Transform>
126 {
127  using type = R(
128  typename Transform::template ReturnType<P1,1>::type,
129  typename Transform::template ReturnType<P2,2>::type,
130  typename Transform::template ReturnType<P3,3>::type,
131  typename Transform::template ReturnType<P4,4>::type,
132  typename Transform::template ReturnType<P5,5>::type,
133  typename Transform::template ReturnType<P6,6>::type
134  );
135 };
136 
137 template<typename Transform,
138  typename R,
139  typename P1,
140  typename P2,
141  typename P3,
142  typename P4,
143  typename P5,
144  typename P6,
145  typename P7>
146 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7), Transform>
147 {
148  using type = R(
149  typename Transform::template ReturnType<P1,1>::type,
150  typename Transform::template ReturnType<P2,2>::type,
151  typename Transform::template ReturnType<P3,3>::type,
152  typename Transform::template ReturnType<P4,4>::type,
153  typename Transform::template ReturnType<P5,5>::type,
154  typename Transform::template ReturnType<P6,6>::type,
155  typename Transform::template ReturnType<P7,7>::type
156  );
157 };
158 
159 template<typename Transform,
160  typename R,
161  typename P1,
162  typename P2,
163  typename P3,
164  typename P4,
165  typename P5,
166  typename P6,
167  typename P7,
168  typename P8>
169 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8), Transform>
170 {
171  using type = R(
172  typename Transform::template ReturnType<P1,1>::type,
173  typename Transform::template ReturnType<P2,2>::type,
174  typename Transform::template ReturnType<P3,3>::type,
175  typename Transform::template ReturnType<P4,4>::type,
176  typename Transform::template ReturnType<P5,5>::type,
177  typename Transform::template ReturnType<P6,6>::type,
178  typename Transform::template ReturnType<P7,7>::type,
179  typename Transform::template ReturnType<P8,8>::type
180  );
181 };
182 
183 template<typename Transform,
184  typename R,
185  typename P1,
186  typename P2,
187  typename P3,
188  typename P4,
189  typename P5,
190  typename P6,
191  typename P7,
192  typename P8,
193  typename P9>
194 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9), Transform>
195 {
196  using type = R(
197  typename Transform::template ReturnType<P1,1>::type,
198  typename Transform::template ReturnType<P2,2>::type,
199  typename Transform::template ReturnType<P3,3>::type,
200  typename Transform::template ReturnType<P4,4>::type,
201  typename Transform::template ReturnType<P5,5>::type,
202  typename Transform::template ReturnType<P6,6>::type,
203  typename Transform::template ReturnType<P7,7>::type,
204  typename Transform::template ReturnType<P8,8>::type,
205  typename Transform::template ReturnType<P9,9>::type
206  );
207 };
208 
209 template<typename Transform,
210  typename R,
211  typename P1,
212  typename P2,
213  typename P3,
214  typename P4,
215  typename P5,
216  typename P6,
217  typename P7,
218  typename P8,
219  typename P9,
220  typename P10>
221 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10), Transform>
222 {
223  using type = R(
224  typename Transform::template ReturnType<P1,1>::type,
225  typename Transform::template ReturnType<P2,2>::type,
226  typename Transform::template ReturnType<P3,3>::type,
227  typename Transform::template ReturnType<P4,4>::type,
228  typename Transform::template ReturnType<P5,5>::type,
229  typename Transform::template ReturnType<P6,6>::type,
230  typename Transform::template ReturnType<P7,7>::type,
231  typename Transform::template ReturnType<P8,8>::type,
232  typename Transform::template ReturnType<P9,9>::type,
233  typename Transform::template ReturnType<P10,10>::type
234  );
235 };
236 
237 template<typename Transform,
238  typename R,
239  typename P1,
240  typename P2,
241  typename P3,
242  typename P4,
243  typename P5,
244  typename P6,
245  typename P7,
246  typename P8,
247  typename P9,
248  typename P10,
249  typename P11>
250 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11), Transform>
251 {
252  using type = R(
253  typename Transform::template ReturnType<P1,1>::type,
254  typename Transform::template ReturnType<P2,2>::type,
255  typename Transform::template ReturnType<P3,3>::type,
256  typename Transform::template ReturnType<P4,4>::type,
257  typename Transform::template ReturnType<P5,5>::type,
258  typename Transform::template ReturnType<P6,6>::type,
259  typename Transform::template ReturnType<P7,7>::type,
260  typename Transform::template ReturnType<P8,8>::type,
261  typename Transform::template ReturnType<P9,9>::type,
262  typename Transform::template ReturnType<P10,10>::type,
263  typename Transform::template ReturnType<P11,11>::type
264  );
265 };
266 
267 template<typename Transform,
268  typename R,
269  typename P1,
270  typename P2,
271  typename P3,
272  typename P4,
273  typename P5,
274  typename P6,
275  typename P7,
276  typename P8,
277  typename P9,
278  typename P10,
279  typename P11,
280  typename P12>
281 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12), Transform>
282 {
283  using type = R(
284  typename Transform::template ReturnType<P1,1>::type,
285  typename Transform::template ReturnType<P2,2>::type,
286  typename Transform::template ReturnType<P3,3>::type,
287  typename Transform::template ReturnType<P4,4>::type,
288  typename Transform::template ReturnType<P5,5>::type,
289  typename Transform::template ReturnType<P6,6>::type,
290  typename Transform::template ReturnType<P7,7>::type,
291  typename Transform::template ReturnType<P8,8>::type,
292  typename Transform::template ReturnType<P9,9>::type,
293  typename Transform::template ReturnType<P10,10>::type,
294  typename Transform::template ReturnType<P11,11>::type,
295  typename Transform::template ReturnType<P12,12>::type
296  );
297 };
298 
299 template<typename Transform,
300  typename R,
301  typename P1,
302  typename P2,
303  typename P3,
304  typename P4,
305  typename P5,
306  typename P6,
307  typename P7,
308  typename P8,
309  typename P9,
310  typename P10,
311  typename P11,
312  typename P12,
313  typename P13>
314 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13), Transform>
315 {
316  using type = R(
317  typename Transform::template ReturnType<P1,1>::type,
318  typename Transform::template ReturnType<P2,2>::type,
319  typename Transform::template ReturnType<P3,3>::type,
320  typename Transform::template ReturnType<P4,4>::type,
321  typename Transform::template ReturnType<P5,5>::type,
322  typename Transform::template ReturnType<P6,6>::type,
323  typename Transform::template ReturnType<P7,7>::type,
324  typename Transform::template ReturnType<P8,8>::type,
325  typename Transform::template ReturnType<P9,9>::type,
326  typename Transform::template ReturnType<P10,10>::type,
327  typename Transform::template ReturnType<P11,11>::type,
328  typename Transform::template ReturnType<P12,12>::type,
329  typename Transform::template ReturnType<P13,13>::type
330  );
331 };
332 
333 template<typename Transform,
334  typename R,
335  typename P1,
336  typename P2,
337  typename P3,
338  typename P4,
339  typename P5,
340  typename P6,
341  typename P7,
342  typename P8,
343  typename P9,
344  typename P10,
345  typename P11,
346  typename P12,
347  typename P13,
348  typename P14>
349 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14), Transform>
350 {
351  using type = R(
352  typename Transform::template ReturnType<P1,1>::type,
353  typename Transform::template ReturnType<P2,2>::type,
354  typename Transform::template ReturnType<P3,3>::type,
355  typename Transform::template ReturnType<P4,4>::type,
356  typename Transform::template ReturnType<P5,5>::type,
357  typename Transform::template ReturnType<P6,6>::type,
358  typename Transform::template ReturnType<P7,7>::type,
359  typename Transform::template ReturnType<P8,8>::type,
360  typename Transform::template ReturnType<P9,9>::type,
361  typename Transform::template ReturnType<P10,10>::type,
362  typename Transform::template ReturnType<P11,11>::type,
363  typename Transform::template ReturnType<P12,12>::type,
364  typename Transform::template ReturnType<P13,13>::type,
365  typename Transform::template ReturnType<P14,14>::type
366  );
367 };
368 
369 template<typename Transform,
370  typename R,
371  typename P1,
372  typename P2,
373  typename P3,
374  typename P4,
375  typename P5,
376  typename P6,
377  typename P7,
378  typename P8,
379  typename P9,
380  typename P10,
381  typename P11,
382  typename P12,
383  typename P13,
384  typename P14,
385  typename P15>
386 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15), Transform>
387 {
388  using type = R(
389  typename Transform::template ReturnType<P1,1>::type,
390  typename Transform::template ReturnType<P2,2>::type,
391  typename Transform::template ReturnType<P3,3>::type,
392  typename Transform::template ReturnType<P4,4>::type,
393  typename Transform::template ReturnType<P5,5>::type,
394  typename Transform::template ReturnType<P6,6>::type,
395  typename Transform::template ReturnType<P7,7>::type,
396  typename Transform::template ReturnType<P8,8>::type,
397  typename Transform::template ReturnType<P9,9>::type,
398  typename Transform::template ReturnType<P10,10>::type,
399  typename Transform::template ReturnType<P11,11>::type,
400  typename Transform::template ReturnType<P12,12>::type,
401  typename Transform::template ReturnType<P13,13>::type,
402  typename Transform::template ReturnType<P14,14>::type,
403  typename Transform::template ReturnType<P15,15>::type
404  );
405 };
406 
407 template<typename Transform,
408  typename R,
409  typename P1,
410  typename P2,
411  typename P3,
412  typename P4,
413  typename P5,
414  typename P6,
415  typename P7,
416  typename P8,
417  typename P9,
418  typename P10,
419  typename P11,
420  typename P12,
421  typename P13,
422  typename P14,
423  typename P15,
424  typename P16>
425 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16), Transform>
426 {
427  using type = R(
428  typename Transform::template ReturnType<P1,1>::type,
429  typename Transform::template ReturnType<P2,2>::type,
430  typename Transform::template ReturnType<P3,3>::type,
431  typename Transform::template ReturnType<P4,4>::type,
432  typename Transform::template ReturnType<P5,5>::type,
433  typename Transform::template ReturnType<P6,6>::type,
434  typename Transform::template ReturnType<P7,7>::type,
435  typename Transform::template ReturnType<P8,8>::type,
436  typename Transform::template ReturnType<P9,9>::type,
437  typename Transform::template ReturnType<P10,10>::type,
438  typename Transform::template ReturnType<P11,11>::type,
439  typename Transform::template ReturnType<P12,12>::type,
440  typename Transform::template ReturnType<P13,13>::type,
441  typename Transform::template ReturnType<P14,14>::type,
442  typename Transform::template ReturnType<P15,15>::type,
443  typename Transform::template ReturnType<P16,16>::type
444  );
445 };
446 
447 template<typename Transform,
448  typename R,
449  typename P1,
450  typename P2,
451  typename P3,
452  typename P4,
453  typename P5,
454  typename P6,
455  typename P7,
456  typename P8,
457  typename P9,
458  typename P10,
459  typename P11,
460  typename P12,
461  typename P13,
462  typename P14,
463  typename P15,
464  typename P16,
465  typename P17>
466 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17), Transform>
467 {
468  using type = R(
469  typename Transform::template ReturnType<P1,1>::type,
470  typename Transform::template ReturnType<P2,2>::type,
471  typename Transform::template ReturnType<P3,3>::type,
472  typename Transform::template ReturnType<P4,4>::type,
473  typename Transform::template ReturnType<P5,5>::type,
474  typename Transform::template ReturnType<P6,6>::type,
475  typename Transform::template ReturnType<P7,7>::type,
476  typename Transform::template ReturnType<P8,8>::type,
477  typename Transform::template ReturnType<P9,9>::type,
478  typename Transform::template ReturnType<P10,10>::type,
479  typename Transform::template ReturnType<P11,11>::type,
480  typename Transform::template ReturnType<P12,12>::type,
481  typename Transform::template ReturnType<P13,13>::type,
482  typename Transform::template ReturnType<P14,14>::type,
483  typename Transform::template ReturnType<P15,15>::type,
484  typename Transform::template ReturnType<P16,16>::type,
485  typename Transform::template ReturnType<P17,17>::type
486  );
487 };
488 
489 template<typename Transform,
490  typename R,
491  typename P1,
492  typename P2,
493  typename P3,
494  typename P4,
495  typename P5,
496  typename P6,
497  typename P7,
498  typename P8,
499  typename P9,
500  typename P10,
501  typename P11,
502  typename P12,
503  typename P13,
504  typename P14,
505  typename P15,
506  typename P16,
507  typename P17,
508  typename P18>
509 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18), Transform>
510 {
511  using type = R(
512  typename Transform::template ReturnType<P1,1>::type,
513  typename Transform::template ReturnType<P2,2>::type,
514  typename Transform::template ReturnType<P3,3>::type,
515  typename Transform::template ReturnType<P4,4>::type,
516  typename Transform::template ReturnType<P5,5>::type,
517  typename Transform::template ReturnType<P6,6>::type,
518  typename Transform::template ReturnType<P7,7>::type,
519  typename Transform::template ReturnType<P8,8>::type,
520  typename Transform::template ReturnType<P9,9>::type,
521  typename Transform::template ReturnType<P10,10>::type,
522  typename Transform::template ReturnType<P11,11>::type,
523  typename Transform::template ReturnType<P12,12>::type,
524  typename Transform::template ReturnType<P13,13>::type,
525  typename Transform::template ReturnType<P14,14>::type,
526  typename Transform::template ReturnType<P15,15>::type,
527  typename Transform::template ReturnType<P16,16>::type,
528  typename Transform::template ReturnType<P17,17>::type,
529  typename Transform::template ReturnType<P18,18>::type
530  );
531 };
532 
533 template<typename Transform,
534  typename R,
535  typename P1,
536  typename P2,
537  typename P3,
538  typename P4,
539  typename P5,
540  typename P6,
541  typename P7,
542  typename P8,
543  typename P9,
544  typename P10,
545  typename P11,
546  typename P12,
547  typename P13,
548  typename P14,
549  typename P15,
550  typename P16,
551  typename P17,
552  typename P18,
553  typename P19>
554 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19), Transform>
555 {
556  using type = R(
557  typename Transform::template ReturnType<P1,1>::type,
558  typename Transform::template ReturnType<P2,2>::type,
559  typename Transform::template ReturnType<P3,3>::type,
560  typename Transform::template ReturnType<P4,4>::type,
561  typename Transform::template ReturnType<P5,5>::type,
562  typename Transform::template ReturnType<P6,6>::type,
563  typename Transform::template ReturnType<P7,7>::type,
564  typename Transform::template ReturnType<P8,8>::type,
565  typename Transform::template ReturnType<P9,9>::type,
566  typename Transform::template ReturnType<P10,10>::type,
567  typename Transform::template ReturnType<P11,11>::type,
568  typename Transform::template ReturnType<P12,12>::type,
569  typename Transform::template ReturnType<P13,13>::type,
570  typename Transform::template ReturnType<P14,14>::type,
571  typename Transform::template ReturnType<P15,15>::type,
572  typename Transform::template ReturnType<P16,16>::type,
573  typename Transform::template ReturnType<P17,17>::type,
574  typename Transform::template ReturnType<P18,18>::type,
575  typename Transform::template ReturnType<P19,19>::type
576  );
577 };
578 
579 template<typename Transform,
580  typename R,
581  typename P1,
582  typename P2,
583  typename P3,
584  typename P4,
585  typename P5,
586  typename P6,
587  typename P7,
588  typename P8,
589  typename P9,
590  typename P10,
591  typename P11,
592  typename P12,
593  typename P13,
594  typename P14,
595  typename P15,
596  typename P16,
597  typename P17,
598  typename P18,
599  typename P19,
600  typename P20>
601 struct FunctionInterfaceStaticTransformType<R(P1,P2,P3,P4,P5,P6,P7,P8,P9,P10,P11,P12,P13,P14,P15,P16,P17,P18,P19,P20), Transform>
602 {
603  using type = R(
604  typename Transform::template ReturnType<P1,1>::type,
605  typename Transform::template ReturnType<P2,2>::type,
606  typename Transform::template ReturnType<P3,3>::type,
607  typename Transform::template ReturnType<P4,4>::type,
608  typename Transform::template ReturnType<P5,5>::type,
609  typename Transform::template ReturnType<P6,6>::type,
610  typename Transform::template ReturnType<P7,7>::type,
611  typename Transform::template ReturnType<P8,8>::type,
612  typename Transform::template ReturnType<P9,9>::type,
613  typename Transform::template ReturnType<P10,10>::type,
614  typename Transform::template ReturnType<P11,11>::type,
615  typename Transform::template ReturnType<P12,12>::type,
616  typename Transform::template ReturnType<P13,13>::type,
617  typename Transform::template ReturnType<P14,14>::type,
618  typename Transform::template ReturnType<P15,15>::type,
619  typename Transform::template ReturnType<P16,16>::type,
620  typename Transform::template ReturnType<P17,17>::type,
621  typename Transform::template ReturnType<P18,18>::type,
622  typename Transform::template ReturnType<P19,19>::type,
623  typename Transform::template ReturnType<P20,20>::type
624  );
625 };
626 
627 
628 // clang-format on
629 
630 } // namespace detail
631 
632 }
633 } // namespace vtkm::internal
634 
635 #endif //vtk_m_internal_FunctionInterfaceDetailPost_h
vtkm
Groups connected points that have the same field value.
Definition: Atomic.h:19
vtkm::Transform
auto Transform(const TupleType &&tuple, Function &&f) -> decltype(Apply(tuple, detail::TupleTransformFunctor(), std::forward< Function >(f)))
Construct a new vtkm::Tuple by applying a function to each value.
Definition: Tuple.h:213
FunctionInterface.h