26 #ifndef LIBRARIES_RECONSTRUCTION_BSPLINE_HELPER_H_ 27 #define LIBRARIES_RECONSTRUCTION_BSPLINE_HELPER_H_ 36 #include <type_traits> 56 const Dimensions &controlPoints,
const std::pair<size_t, size_t> &noOfPatches,
57 int verbosity,
int solverIters);
70 size_t x,
size_t y,
size_t n);
80 static_assert(std::is_same<float, T>::value
81 || std::is_same<double, T>::value,
"T must be either float or double");
82 if (std::is_same<float, T>::value) {
83 argument = fabsf(argument);
85 argument = fabs(argument);
87 if (argument < (T)1) {
88 return(argument * argument * (argument - (T)2) * (T)0.5 + (T)2 / (T)3);
90 else if (argument < (T)2) {
92 return(argument * argument * argument * ((T)-1 / (T)6));
117 static void getShift(
int lX,
int lY,
int lN,
118 int xdim,
int ydim,
int ndim,
120 T &shiftY, T &shiftX,
121 const T *coeffsX,
const T *coeffsY);
static std::pair< T, T > getShift(const BSplineGrid< T > &grid, Dimensions dim, size_t x, size_t y, size_t n)
static T Bspline03(T argument)
static std::pair< Matrix1D< T >, Matrix1D< T > > computeBSplineCoeffs(const Dimensions &movieSize, const LocalAlignmentResult< T > &alignment, const Dimensions &controlPoints, const std::pair< size_t, size_t > &noOfPatches, int verbosity, int solverIters)