#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