#ifndef __JTOOLS__JFUNCTIONALMAP__ #define __JTOOLS__JFUNCTIONALMAP__ #include "JTools/JFunctionalMap_t.hh" #include "JTools/JSpline.hh" #include "JTools/JPolint.hh" #include "JTools/JCollection.hh" #include "JTools/JGridCollection.hh" #include "JTools/JElement.hh" #include "JTools/JDistance.hh" /** * \author mdejong */ namespace JTOOLS {} namespace JPP { using namespace JTOOLS; } namespace JTOOLS { /** * Auxiliary class to define corresponding one-dimensional function interpolator function_type. */ template class JFunctionalMap_t> struct JFunctionalMap; /** * Specialisation of JFunctionalMap for JSplineFunctionalMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JSplineFunction1D, JCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JSplineFunctionalGridMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JSplineFunction1D, JGridCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint0FunctionalMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<0, JElement2D, JCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint1FunctionalMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<1, JElement2D, JCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint2FunctionalMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<2, JElement2D, JCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint3FunctionalMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<3, JElement2D, JCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint0FunctionalGridMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<0, JElement2D, JGridCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint1FunctionalGridMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<1, JElement2D, JGridCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint2FunctionalGridMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<2, JElement2D, JGridCollection, JResult_t, JDistance_t> {}; }; /** * Specialisation of JFunctionalMap for JPolint3FunctionalGridMap. */ template<> struct JFunctionalMap { /** * Corresponding one-dimensional function interpolator. */ template > struct function_type : public JPolintFunction1D<3, JElement2D, JGridCollection, JResult_t, JDistance_t> {}; }; } #endif