40 #ifndef mia_2d_interpolator_hh
41 #define mia_2d_interpolator_hh
77 struct C2DWeightCache {
81 C2DWeightCache(
int kernel_size,
139 T operator () (
const C2DFVector& x, C2DWeightCache& cache)
const;
167 typename TCoeff2D::value_type evaluate()
const;
177 mutable CMutex m_cache_lock;
178 mutable C2DWeightCache m_cache;
240 __attribute__ ((warn_unused_result));
std::shared_ptr< C2DInterpolatorFactory > P2DInterpolatorFactory
Pointer type for the 2D interpolationfactory.
The factory to create an interpolator from some input data.
C2DInterpolatorFactory(PSplineKernel kernel, const std::string &boundary_conditions)
C2DInterpolatorFactory(PSplineKernel kernel, const CSplineBoundaryCondition &xbc, const CSplineBoundaryCondition &ybc)
C2DInterpolatorFactory(const std::string &kernel, const std::string &boundary_conditions)
T2DInterpolator< T > * create(const T2DDatafield< T > &src) const __attribute__((warn_unused_result))
C2DInterpolatorFactory(const C2DInterpolatorFactory &o)
Copy constructor.
const CSplineKernel * get_kernel() const
C2DInterpolatorFactory(PSplineKernel kernel, const CSplineBoundaryCondition &boundary_conditions)
virtual ~C2DInterpolatorFactory()
Abstract base class for B-spline interpolation boundary conditions.
Base class for all spline based interpolation kernels.
A class to hold data on a regular 2D grid.
The base class for 2D interpolators that use some kind of spacial convolution.
std::vector< typename TCoeff2D::value_type > coeff_vector
helper class for the coefficient field
T2DVector< T > derivative_at(const C2DFVector &x) const
T2DInterpolator(const T2DDatafield< T > &data, PSplineKernel kernel, const CSplineBoundaryCondition &xbc, const CSplineBoundaryCondition &ybc)
C2DWeightCache create_cache() const
T2DDatafield< typename coeff_map< T >::coeff_type > TCoeff2D
const TCoeff2D & get_coefficients() const
T2DInterpolator(const T2DDatafield< T > &data, PSplineKernel kernel)
#define NS_MIA_BEGIN
conveniance define to start the mia namespace
#define NS_MIA_END
conveniance define to end the mia namespace
CSplineBoundaryCondition::Pointer PSplineBoundaryCondition
std::shared_ptr< CSplineKernel > PSplineKernel