//============================================================================ // Copyright (c) Kitware, Inc. // All rights reserved. // See LICENSE.txt for details. // // This software is distributed WITHOUT ANY WARRANTY; without even // the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR // PURPOSE. See the above copyright notice for more information. //============================================================================ // **** DO NOT EDIT THIS FILE!!! **** // This file is automatically generated by FunctionInterfaceDetailPre.h.in #ifndef vtk_m_internal_FunctionInterfaceDetailPre_h #define vtk_m_internal_FunctionInterfaceDetailPre_h #if !defined(vtk_m_internal_FunctionInterface_h) && !defined(VTKM_TEST_HEADER_BUILD) #error FunctionInterfaceDetailPre.h must be included from FunctionInterface.h #endif #include #include #include #include #define VTKM_MAX_FUNCTION_PARAMETERS 20 namespace vtkm { namespace internal { /// This struct is used internally by FunctionInterface to store the return /// value of a function. There is a special implementation for a return type of /// void, which stores nothing. /// template struct FunctionInterfaceReturnContainer { T Value; static constexpr bool VALID = true; }; template <> struct FunctionInterfaceReturnContainer { // Nothing to store for void return. static constexpr bool VALID = false; }; namespace detail { //============================================================================ // This templated class contains the state of parameters. If you get a compiler // error stating that this class is not specialized, that probably means that // you are using FunctionInterface with an unsupported number of arguments. template struct ParameterContainer; // clang-format off template struct ParameterContainer { }; template struct ParameterContainer { P1 Parameter1; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; P14 Parameter14; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; P14 Parameter14; P15 Parameter15; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; P14 Parameter14; P15 Parameter15; P16 Parameter16; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; P14 Parameter14; P15 Parameter15; P16 Parameter16; P17 Parameter17; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; P14 Parameter14; P15 Parameter15; P16 Parameter16; P17 Parameter17; P18 Parameter18; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; P14 Parameter14; P15 Parameter15; P16 Parameter16; P17 Parameter17; P18 Parameter18; P19 Parameter19; }; template struct ParameterContainer { P1 Parameter1; P2 Parameter2; P3 Parameter3; P4 Parameter4; P5 Parameter5; P6 Parameter6; P7 Parameter7; P8 Parameter8; P9 Parameter9; P10 Parameter10; P11 Parameter11; P12 Parameter12; P13 Parameter13; P14 Parameter14; P15 Parameter15; P16 Parameter16; P17 Parameter17; P18 Parameter18; P19 Parameter19; P20 Parameter20; }; // clang-format on //============================================================================ template struct FunctionSigInfo; template struct FunctionSigInfo { static constexpr std::size_t Arity = sizeof...(ArgTypes); using ArityType = std::integral_constant(Arity)>; using ResultType = R; using Components = brigand::list; using Parameters = brigand::list; }; template struct AtType; template struct AtType { using type = brigand::at_c, Index>; }; //============================================================================ // clang-format off VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<1>) -> decltype(parameters.Parameter1) const& { return parameters.Parameter1; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<2>) -> decltype(parameters.Parameter2) const& { return parameters.Parameter2; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<3>) -> decltype(parameters.Parameter3) const& { return parameters.Parameter3; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<4>) -> decltype(parameters.Parameter4) const& { return parameters.Parameter4; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<5>) -> decltype(parameters.Parameter5) const& { return parameters.Parameter5; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<6>) -> decltype(parameters.Parameter6) const& { return parameters.Parameter6; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<7>) -> decltype(parameters.Parameter7) const& { return parameters.Parameter7; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<8>) -> decltype(parameters.Parameter8) const& { return parameters.Parameter8; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<9>) -> decltype(parameters.Parameter9) const& { return parameters.Parameter9; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<10>) -> decltype(parameters.Parameter10) const& { return parameters.Parameter10; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<11>) -> decltype(parameters.Parameter11) const& { return parameters.Parameter11; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<12>) -> decltype(parameters.Parameter12) const& { return parameters.Parameter12; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<13>) -> decltype(parameters.Parameter13) const& { return parameters.Parameter13; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<14>) -> decltype(parameters.Parameter14) const& { return parameters.Parameter14; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<15>) -> decltype(parameters.Parameter15) const& { return parameters.Parameter15; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<16>) -> decltype(parameters.Parameter16) const& { return parameters.Parameter16; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<17>) -> decltype(parameters.Parameter17) const& { return parameters.Parameter17; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<18>) -> decltype(parameters.Parameter18) const& { return parameters.Parameter18; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<19>) -> decltype(parameters.Parameter19) const& { return parameters.Parameter19; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_EXEC_CONT auto ParameterGet(const ParameterContainer& parameters, vtkm::internal::IndexTag<20>) -> decltype(parameters.Parameter20) const& { return parameters.Parameter20; } // clang-format on //============================================================================ template struct FunctionInterfaceStaticTransformType; // clang-format off VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { (void)transform; (void)originalParameters; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()), transform(originalParameters.Parameter13, vtkm::internal::IndexTag<13>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()), transform(originalParameters.Parameter13, vtkm::internal::IndexTag<13>()), transform(originalParameters.Parameter14, vtkm::internal::IndexTag<14>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()), transform(originalParameters.Parameter13, vtkm::internal::IndexTag<13>()), transform(originalParameters.Parameter14, vtkm::internal::IndexTag<14>()), transform(originalParameters.Parameter15, vtkm::internal::IndexTag<15>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()), transform(originalParameters.Parameter13, vtkm::internal::IndexTag<13>()), transform(originalParameters.Parameter14, vtkm::internal::IndexTag<14>()), transform(originalParameters.Parameter15, vtkm::internal::IndexTag<15>()), transform(originalParameters.Parameter16, vtkm::internal::IndexTag<16>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()), transform(originalParameters.Parameter13, vtkm::internal::IndexTag<13>()), transform(originalParameters.Parameter14, vtkm::internal::IndexTag<14>()), transform(originalParameters.Parameter15, vtkm::internal::IndexTag<15>()), transform(originalParameters.Parameter16, vtkm::internal::IndexTag<16>()), transform(originalParameters.Parameter17, vtkm::internal::IndexTag<17>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()), transform(originalParameters.Parameter13, vtkm::internal::IndexTag<13>()), transform(originalParameters.Parameter14, vtkm::internal::IndexTag<14>()), transform(originalParameters.Parameter15, vtkm::internal::IndexTag<15>()), transform(originalParameters.Parameter16, vtkm::internal::IndexTag<16>()), transform(originalParameters.Parameter17, vtkm::internal::IndexTag<17>()), transform(originalParameters.Parameter18, vtkm::internal::IndexTag<18>()) }; } VTKM_SUPPRESS_EXEC_WARNINGS template VTKM_CONT Result DoStaticTransformCont( const Transform& transform, ParameterContainer& originalParameters) { return Result{ transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()), transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()), transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()), transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()), transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()), transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()), transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()), transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()), transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()), transform(originalParameters.Parameter10, vtkm::internal::IndexTag<10>()), transform(originalParameters.Parameter11, vtkm::internal::IndexTag<11>()), transform(originalParameters.Parameter12, vtkm::internal::IndexTag<12>()), transform(originalParameters.Parameter13, vtkm::internal::IndexTag<13>()), transform(originalParameters.Parameter14, vtkm::internal::IndexTag<14>()), transform(originalParameters.Parameter15, vtkm::internal::IndexTag<15>()), transform(originalParameters.Parameter16, vtkm::internal::IndexTag<16>()), transform(originalParameters.Parameter17, vtkm::internal::IndexTag<17>()), transform(originalParameters.Parameter18, vtkm::internal::IndexTag<18>()), transform(originalParameters.Parameter19, vtkm::internal::IndexTag<19>()) }; } // clang-format on } // namespace detail } } // namespace vtkm::internal #endif //vtk_m_internal_FunctionInterfaceDetailPre_h