28 #ifndef SCIMATH_INTERPOLATE2D_H
29 #define SCIMATH_INTERPOLATE2D_H
38 template <
typename T>
class Vector;
39 template <
typename T>
class Matrix;
189 template <
typename T>
218 template <
typename T>
226 template <
typename T>
234 template <
typename T>
242 template <
typename T>
249 template <
typename T>
250 T
sinc(
const T x)
const;
251 template <
typename T>
252 T
L(
const T x,
const Int a)
const;
284 #ifndef CASACORE_NO_AUTO_TEMPLATES
285 #include <casacore/scimath/Mathematics/Interpolate2D2.tcc>
286 #endif //# CASACORE_NO_AUTO_TEMPLATES
std::vector< double > Vector
Bool interpLinear2(T &resultI, T &resultJ, const Vector< Double > &where, const Matrix< T > &dataI, const Matrix< T > &dataJ, const Matrix< Bool > &mask) const
Bool interpLinear(T &result, const Vector< Double > &where, const Matrix< T > &data, const Matrix< Bool > *&maskPtr) const
bi-linear interpolation
std::complex< Float > Complex
static Interpolate2D::Method stringToMethod(const String &method)
Convert string ("nearest", "linear", "cubic", "lanczos") to interpolation method. ...
FuncPtrDouble itsFuncPtrDouble
LatticeExprNode mask(const LatticeExprNode &expr)
This function returns the mask of the given expression.
Bool interpNearest(T &result, const Vector< Double > &where, const Matrix< T > &data, const Matrix< Bool > *&maskPtr) const
nearest neighbour interpolation
Bool anyBadMaskPixels(const Matrix< Bool > *&mask, Int i1, Int i2, Int j1, Int j2) const
Are any of the mask pixels bad ? Returns False if no mask.
Bool interpLanczos(T &result, const Vector< Double > &where, const Matrix< T > &data, const Matrix< Bool > *&maskPtr) const
Lanczos interpolation.
Bool interp(Float &result, const Vector< Double > &where, const Matrix< Float > &data) const
Do one Float interpolation, supply Matrix and mask (True is good), and pixel coordinate.
FuncPtrFloat itsFuncPtrFloat
Interpolate2D & operator=(const Interpolate2D &other)
Assignment operator (copy semantics)
Interpolate2D(Interpolate2D::Method method=Interpolate2D::LINEAR)
Constructor.
ABSTRACT CLASSES Deliberately vague to be general enough to allow for many different types of data
Bool(Interpolate2D::* FuncPtrDouble)(Double &result, const Vector< Double > &where, const Matrix< Double > &data, const Matrix< Bool > *&maskPtr) const
std::complex< Double > DComplex
void bcucof(Double c[4][4], const Double y[4], const Double y1[4], const Double y2[4], const Double y12[4]) const
helping routine from numerical recipes
Bool interpLinearBool(Bool &result, const Vector< Double > &where, const Matrix< Bool > &data) const
bool Bool
Define the standard types used by Casacore.
Bool interpCubicBool(Bool &result, const Vector< Double > &where, const Matrix< Bool > &data) const
~Interpolate2D()
destructor
const Double c
Fundamental physical constants (SI units):
Bool(Interpolate2D::* FuncPtrBool)(Bool &result, const Vector< Double > &where, const Matrix< Bool > &data) const
A two dimension interpolator for Matrices or Arrays.
String: the storage and methods of handling collections of characters.
T L(const T x, const Int a) const
Bool interpLanczosBool(Bool &result, const Vector< Double > &where, const Matrix< Bool > &data) const
Bool(Interpolate2D::* FuncPtrFloat)(Float &result, const Vector< Double > &where, const Matrix< Float > &data, const Matrix< Bool > *&maskPtr) const
Typedefs for function pointers.
Bool interpCubic(T &result, const Vector< Double > &where, const Matrix< T > &data, const Matrix< Bool > *&maskPtr) const
bi-cubic interpolation
Bool interpNearestBool(Bool &result, const Vector< Double > &where, const Matrix< Bool > &data) const
T sinc(const T x) const
Lanczos interpolation: helper functions.
FuncPtrBool itsFuncPtrBool
#define casacore
<X11/Intrinsic.h> #defines true, false, casacore::Bool, and String.