// // Author: Joshua Cohen // Copyright 2017 // #ifndef INTERPOLATOR_H #define INTERPOLATOR_H #include #include #include struct Interpolator { Interpolator() = default; template static U bilinear(double,double,std::vector>&); template static U bicubic(double,double,std::vector>&); static void sinc_coef(double,double,int,double,int,int&,int&,std::vector&); template static U sinc_eval(std::vector&,std::vector&,int,int,int,double,int); template static U sinc_eval_2d(std::vector>&,std::vector&,int,int,int,int,double,double,int,int); static float interp_2d_spline(int,int,int,std::vector>&,double,double); static double quadInterpolate(std::vector&,std::vector&,double); static double akima(int,int,std::vector>&,double,double); }; void initSpline(std::vector&,int,std::vector&,std::vector&); double spline(double,std::vector&,int,std::vector&); #endif