//============================================================================ // 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. // // Copyright 2014 Sandia Corporation. // Copyright 2014 UT-Battelle, LLC. // Copyright 2014 Los Alamos National Security. // // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, // the U.S. Government retains certain rights in this software. // // Under the terms of Contract DE-AC52-06NA25396 with Los Alamos National // Laboratory (LANL), the U.S. Government retains certain rights in // this software. //============================================================================ // **** 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 VTKM_THIRDPARTY_PRE_INCLUDE #include #include VTKM_THIRDPARTY_POST_INCLUDE #define VTKM_MAX_FUNCTION_PARAMETERS 10 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 const bool VALID = true; }; template<> struct FunctionInterfaceReturnContainer { // Nothing to store for void return. static const 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; 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 ParameterContainerAccess; template struct ParameterContainerAccess<1, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 1>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter1; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter1 = value; } }; template struct ParameterContainerAccess<2, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 2>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter2; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter2 = value; } }; template struct ParameterContainerAccess<3, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 3>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter3; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter3 = value; } }; template struct ParameterContainerAccess<4, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 4>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter4; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter4 = value; } }; template struct ParameterContainerAccess<5, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 5>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter5; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter5 = value; } }; template struct ParameterContainerAccess<6, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 6>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter6; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter6 = value; } }; template struct ParameterContainerAccess<7, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 7>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter7; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter7 = value; } }; template struct ParameterContainerAccess<8, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 8>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter8; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter8 = value; } }; template struct ParameterContainerAccess<9, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 9>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter9; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter9 = value; } }; template struct ParameterContainerAccess<10, FunctionSignature> { typedef typename boost::mpl::at_c< boost::function_types::components, 10>::type ParameterType; VTKM_EXEC_CONT_EXPORT static ParameterType GetParameter(const ParameterContainer ¶meters) { return parameters.Parameter10; } VTKM_EXEC_CONT_EXPORT static void SetParameter(ParameterContainer ¶meters, const ParameterType &value) { parameters.Parameter10 = value; } }; //============================================================================ template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { (void) parameters; result.Value = transform(f()); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { (void) parameters; (void) transform; f(); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { (void) parameters; result.Value = transform(f()); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { (void) parameters; (void) transform; f(); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { (void) parameters; result.Value = transform(f()); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { (void) parameters; (void) transform; f(); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { (void) parameters; result.Value = transform(f()); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { (void) parameters; (void) transform; f(); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9)); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10))); } template VTKM_CONT_EXPORT void DoInvokeCont( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10)); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10))); } template VTKM_CONT_EXPORT void DoInvokeCont( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10)); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10))); } template VTKM_EXEC_EXPORT void DoInvokeExec( const Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10)); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &result, const TransformFunctor &transform) { result.Value = transform(f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10))); } template VTKM_EXEC_EXPORT void DoInvokeExec( Functor &f, ParameterContainer ¶meters, FunctionInterfaceReturnContainer &, const TransformFunctor &transform) { f( transform(parameters.Parameter1), transform(parameters.Parameter2), transform(parameters.Parameter3), transform(parameters.Parameter4), transform(parameters.Parameter5), transform(parameters.Parameter6), transform(parameters.Parameter7), transform(parameters.Parameter8), transform(parameters.Parameter9), transform(parameters.Parameter10)); } //============================================================================ template struct FunctionInterfaceStaticTransformType; template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { (void)transform; (void)originalParameters; (void)transformedParameters; } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { (void)transform; (void)originalParameters; (void)transformedParameters; } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); transformedParameters.Parameter7 = transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); transformedParameters.Parameter7 = transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); transformedParameters.Parameter7 = transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()); transformedParameters.Parameter8 = transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); transformedParameters.Parameter7 = transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()); transformedParameters.Parameter8 = transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()); } template VTKM_CONT_EXPORT void DoStaticTransformCont( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); transformedParameters.Parameter7 = transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()); transformedParameters.Parameter8 = transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()); transformedParameters.Parameter9 = transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()); } template VTKM_EXEC_EXPORT void DoStaticTransformExec( const Transform &transform, const ParameterContainer &originalParameters, ParameterContainer &transformedParameters) { transformedParameters.Parameter1 = transform(originalParameters.Parameter1, vtkm::internal::IndexTag<1>()); transformedParameters.Parameter2 = transform(originalParameters.Parameter2, vtkm::internal::IndexTag<2>()); transformedParameters.Parameter3 = transform(originalParameters.Parameter3, vtkm::internal::IndexTag<3>()); transformedParameters.Parameter4 = transform(originalParameters.Parameter4, vtkm::internal::IndexTag<4>()); transformedParameters.Parameter5 = transform(originalParameters.Parameter5, vtkm::internal::IndexTag<5>()); transformedParameters.Parameter6 = transform(originalParameters.Parameter6, vtkm::internal::IndexTag<6>()); transformedParameters.Parameter7 = transform(originalParameters.Parameter7, vtkm::internal::IndexTag<7>()); transformedParameters.Parameter8 = transform(originalParameters.Parameter8, vtkm::internal::IndexTag<8>()); transformedParameters.Parameter9 = transform(originalParameters.Parameter9, vtkm::internal::IndexTag<9>()); } //============================================================================ template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { (void)f; (void)parameters; } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { (void)f; (void)parameters; } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { (void)f; (void)parameters; } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { (void)f; (void)parameters; } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); f(parameters.Parameter9, vtkm::internal::IndexTag<9>()); } template VTKM_CONT_EXPORT void DoForEachCont( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); f(parameters.Parameter9, vtkm::internal::IndexTag<9>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, const ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); f(parameters.Parameter9, vtkm::internal::IndexTag<9>()); } template VTKM_EXEC_EXPORT void DoForEachExec( const Functor &f, ParameterContainer ¶meters) { f(parameters.Parameter1, vtkm::internal::IndexTag<1>()); f(parameters.Parameter2, vtkm::internal::IndexTag<2>()); f(parameters.Parameter3, vtkm::internal::IndexTag<3>()); f(parameters.Parameter4, vtkm::internal::IndexTag<4>()); f(parameters.Parameter5, vtkm::internal::IndexTag<5>()); f(parameters.Parameter6, vtkm::internal::IndexTag<6>()); f(parameters.Parameter7, vtkm::internal::IndexTag<7>()); f(parameters.Parameter8, vtkm::internal::IndexTag<8>()); f(parameters.Parameter9, vtkm::internal::IndexTag<9>()); } } // namespace detail } } // namespace vtkm::internal #endif //vtk_m_internal_FunctionInterfaceDetailPre_h