18namespace CurveFitting {
36 std::string
name()
const override {
return "CubicSpline"; }
37 void function1D(
double *out,
const double *xValues,
const size_t nData)
const override;
38 void derivative1D(
double *out,
const double *xValues,
size_t nData,
const size_t order)
const override;
39 void setParameter(
size_t i,
const double &
value,
bool explicitlySet =
true)
override;
40 using ParamFunction::setParameter;
43 void setAttribute(
const std::string &attName,
const Attribute &)
override;
46 void setXAttribute(
const size_t index,
double x);
62 void reallocGSLObjects(
const int n);
65 void setupInput(
int const n)
const;
68 void calculateSpline(
double *out,
const double *xValues,
const size_t nData)
const;
71 void calculateDerivative(
double *out,
const double *xValues,
const size_t nData,
const size_t order)
const;
74 void checkGSLError(
const int status,
const int errorType)
const;
77 bool checkXInRange(
double x)
const;
80 double splineEval(
const double x)
const;
double value
The value of the point.
std::map< DeltaEMode::Type, std::string > index
Attribute is a non-fitting parameter.
A wrapper around GSL functions implementing cubic spline interpolation.
bool m_recalculateSpline
Flag for checking if the spline needs recalculating.
std::string name() const override
overwrite IFunction base class methods
Mantid::Kernel::spline::accel_uptr m_acc
GSL interpolation accelerator object.
const int m_min_points
Minimum number of data points in spline.
Mantid::Kernel::spline::spline_uptr m_spline
GSL data structure used to calculate spline.
const std::shared_ptr< CubicSpline > CubicSpline_const_sptr
std::shared_ptr< CubicSpline > CubicSpline_sptr
std::unique_ptr< gsl_interp_accel, GSLFree > accel_uptr
std::unique_ptr< gsl_spline, GSLFree > spline_uptr
Helper class which provides the Collimation Length for SANS instruments.