#ifdef HAVE_CONFIG_H #include #endif #include #include "base/helper.hpp" #include "base/index.hpp" #include "base/interpolate_polynomial.hpp" #include "base/vector.hpp" #include "grid/grid.hpp" using namespace VMG; InterpolatePolynomial::InterpolatePolynomial(const unsigned int& degree) : deg_1(degree+1), pos_begin(0.0) { coeff = new vmg_float[Helper::intpow(deg_1, 3)]; } InterpolatePolynomial::~InterpolatePolynomial() { delete [] coeff; } void InterpolatePolynomial::ComputeCoefficients(const Grid& grid, const Index& index) { Index i; const Index begin = index - (static_cast(deg_1)-1)/2 - 1; h = grid.Extent().MeshWidth(); for (i[0]=0; i[0] buffer_diff[deg_1-1]; Vector offset, result; buffer[0] = 1.0; offset = pos - pos_begin; for (int i=1; i