Mantid
Loading...
Searching...
No Matches
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Mantid::CurveFitting::Functions::CubicSpline Class Reference

A wrapper around GSL functions implementing cubic spline interpolation. More...

#include <CubicSpline.h>

Inheritance diagram for Mantid::CurveFitting::Functions::CubicSpline:
Mantid::CurveFitting::Functions::BackgroundFunction Mantid::API::IBackgroundFunction Mantid::API::IFunctionWithLocation Mantid::API::ParamFunction Mantid::API::IFunction1D Mantid::API::IFunction Mantid::API::IFunction

Classes

struct  GSLFree
 Functor to free a GSL objects in a shared pointer. More...
 

Public Member Functions

const std::string category () const override
 overwrite IFunction base class methods More...
 
 CubicSpline ()
 Constructor. More...
 
void derivative1D (double *out, const double *xValues, size_t nData, const size_t order) const override
 Calculate the derivatives for a set of points on the spline. More...
 
void function1D (double *out, const double *xValues, const size_t nData) const override
 Execute the function. More...
 
std::string name () const override
 overwrite IFunction base class methods More...
 
void setAttribute (const std::string &attName, const Attribute &) override
 Set a value to attribute attName. More...
 
void setParameter (const std::string &name, const double &value, bool explicitlySet=true) override
 Set parameter by name. More...
 
void setParameter (size_t i, const double &value, bool explicitlySet=true) override
 Set a parameter for the function and flags the spline for re-calculation. More...
 
void setParameter (size_t, const double &value, bool explicitlySet=true) override
 Set i-th parameter. More...
 
void setXAttribute (const size_t index, double x)
 Set the value of a data point location to x. More...
 
- Public Member Functions inherited from Mantid::CurveFitting::Functions::BackgroundFunction
const std::string category () const override
 overwrite IFunction base class methods More...
 
double centre () const override
 Returns the centre of the function, which may be something as simple as the centre of the fitting range in the case of a background function or peak shape function this return value reflects the centre of the peak. More...
 
void fit (const std::vector< double > &X, const std::vector< double > &Y) override
 Fits the function. More...
 
double height () const override
 Returns the height of the function. More...
 
void setCentre (const double c) override
 Sets the parameters such that centre == c. More...
 
void setHeight (const double h) override
 Sets the parameters such that height == h. More...
 
virtual void fit (const std::vector< double > &X, const std::vector< double > &Y)=0
 Fits the function. More...
 
- Public Member Functions inherited from Mantid::API::IFunctionWithLocation
virtual double centre () const =0
 Returns the centre of the function, which may be something as simple as the centre of the fitting range in the case of a background function or peak shape function this return value reflects the centre of the peak. More...
 
virtual void fixCentre (bool isDefault=false)
 Fix a parameter or set up a tie such that value returned by centre() is constant during fitting. More...
 
virtual double height () const =0
 Returns the height of the function. More...
 
virtual void setCentre (const double c)=0
 Sets the parameters such that centre == c. More...
 
virtual void setHeight (const double h)=0
 Sets the parameters such that height == h. More...
 
virtual void unfixCentre ()
 Free the centre parameter. More...
 
 ~IFunctionWithLocation () override=default
 Virtual destructor (avoids warnings about non-trivial move assignment in virtually inheriting classes) More...
 
- Public Member Functions inherited from Mantid::API::ParamFunction
IFunction_sptr getContainingFunction (const ParameterReference &ref) const
 Get the containing function. More...
 
IFunction_sptr getContainingFunction (IFunction_sptr fun)
 Get the containing function. More...
 
double getError (const std::string &name) const override
 Get the fitting error for a parameter by name. More...
 
double getError (size_t i) const override
 Get the fitting error for a parameter. More...
 
double getParameter (const std::string &name) const override
 Get parameter by name. More...
 
double getParameter (size_t i) const override
 Get i-th parameter. More...
 
size_t getParameterIndex (const ParameterReference &ref) const override
 Return parameter index from a parameter reference. More...
 
bool hasParameter (const std::string &name) const override
 Check if function has a parameter with this name. More...
 
bool isExplicitlySet (size_t i) const override
 Checks if a parameter has been set explicitly. More...
 
size_t nParams () const override
 Total number of parameters. More...
 
std::string parameterDescription (size_t i) const override
 Returns the description of parameter i. More...
 
size_t parameterIndex (const std::string &name) const override
 Returns the index of parameter name. More...
 
std::string parameterName (size_t i) const override
 Returns the name of parameter i. More...
 
 ParamFunction ()
 Default constructor. More...
 
void setError (const std::string &name, double err) override
 Set the fitting error for a parameter by name. More...
 
void setError (size_t i, double err) override
 Set the fitting error for a parameter. More...
 
void setParameter (const std::string &name, const double &value, bool explicitlySet=true) override
 Set parameter by name. More...
 
void setParameter (size_t, const double &value, bool explicitlySet=true) override
 Set i-th parameter. More...
 
void setParameterDescription (const std::string &name, const std::string &description) override
 Set description of parameter by name. More...
 
void setParameterDescription (size_t, const std::string &description) override
 Set i-th parameter description. More...
 
- Public Member Functions inherited from Mantid::API::IFunction
std::string asString () const
 Writes itself into a string. More...
 
bool cancellationRequestReceived () const
 Returns true if a progress reporter is set & evalaution has been requested to stop. More...
 
virtual const std::vector< std::string > categories () const
 Function to return all of the categories that contain this algorithm. More...
 
virtual const std::string category () const
 The categories the Fit function belong to. More...
 
virtual const std::string categorySeparator () const
 Function to return the sperator token for the category string. More...
 
virtual std::shared_ptr< IFunctionclone () const
 Virtual copy constructor. More...
 
virtual int64_t estimateNoProgressCalls () const
 Returns an estimate of the number of progress reports a single evaluation of the function will have. More...
 
virtual void function (const FunctionDomain &domain, FunctionValues &values) const =0
 Evaluates the function for all arguments in the domain. More...
 
virtual void functionDeriv (const FunctionDomain &domain, Jacobian &jacobian)
 Derivatives of function with respect to active parameters. More...
 
 IFunction ()
 Constructor. More...
 
 IFunction (const IFunction &)=delete
 No copying. More...
 
virtual void initialize ()
 Iinialize the function. More...
 
virtual void iterationFinished ()
 Called at the end of an iteration. More...
 
virtual void iterationStarting ()
 Called at the start of each iteration. More...
 
virtual std::string name () const =0
 Returns the function's name. More...
 
IFunctionoperator= (const IFunction &)=delete
 No copying. More...
 
virtual void registerFunctionUsage (bool internal)
 Registers the usage of the algorithm with the UsageService. More...
 
void reportProgress (const std::string &msg="") const
 Reports progress with an optional message. More...
 
virtual void setMatrixWorkspace (std::shared_ptr< const API::MatrixWorkspace > workspace, size_t wi, double startX, double endX)
 Set matrix workspace. More...
 
void setProgressReporter (std::shared_ptr< Kernel::ProgressBase > reporter)
 Attach a progress reporter. More...
 
virtual void setWorkspace (std::shared_ptr< const Workspace > ws)
 Set the workspace. More...
 
virtual ~IFunction ()
 Virtual destructor. More...
 
bool isFixed (size_t i) const
 Check if a parameter i is fixed. More...
 
bool isFixedByDefault (size_t i) const
 Check if a parameter i is fixed by default (not by user). More...
 
void fix (size_t i, bool isDefault=false)
 Removes a parameter i from the list of active. More...
 
void unfix (size_t i)
 Restores a declared parameter i to the active status. More...
 
void fixParameter (const std::string &name, bool isDefault=false)
 Fix a parameter. More...
 
void unfixParameter (const std::string &name)
 Free a parameter. More...
 
void fixAll (bool isDefault=false)
 Fix all parameters. More...
 
void unfixAll ()
 Free all parameters. More...
 
void unfixAllDefault ()
 Free all parameters fixed by default. More...
 
void fixAllActive (bool isDefault=false)
 Fix all active parameters. More...
 
std::vector< std::string > getParameterNames () const
 Return a vector with all parameter names. More...
 
virtual double activeParameter (size_t i) const
 Value of i-th active parameter. More...
 
virtual void setActiveParameter (size_t i, double value)
 Set new value of i-th active parameter. More...
 
virtual std::string nameOfActive (size_t i) const
 Returns the name of active parameter i. More...
 
virtual std::string descriptionOfActive (size_t i) const
 Returns the name of active parameter i. More...
 
bool isActive (size_t i) const
 Check if an active parameter i is actually active. More...
 
virtual void tie (const std::string &parName, const std::string &expr, bool isDefault=false)
 Tie a parameter to other parameters (or a constant) More...
 
virtual void addTies (const std::string &ties, bool isDefault=false)
 Add several ties. More...
 
virtual void applyTies ()
 Apply the ties. More...
 
virtual void removeTie (const std::string &parName)
 Removes the tie off a parameter. More...
 
virtual void clearTies ()
 Remove all ties. More...
 
virtual bool removeTie (size_t i)
 Removes i-th parameter's tie. More...
 
virtual ParameterTiegetTie (size_t i) const
 Get the tie of i-th parameter. More...
 
virtual bool ignoreTie (const ParameterTie &) const
 Ignore a tie. More...
 
void sortTies ()
 Put all ties in order in which they will be applied correctly. More...
 
std::string writeTies () const
 Write a parameter tie to a string. More...
 
virtual void addConstraints (const std::string &str, bool isDefault=false)
 Add a list of conatraints from a string. More...
 
virtual void addConstraint (std::unique_ptr< IConstraint > ic)
 Add a constraint to function. More...
 
virtual IConstraintgetConstraint (size_t i) const
 Get constraint of i-th parameter. More...
 
virtual void removeConstraint (const std::string &parName)
 Remove a constraint. More...
 
virtual void setConstraintPenaltyFactor (const std::string &parName, const double &c)
 Set a constraint penalty. More...
 
std::string writeConstraints () const
 Write a parameter constraint to a string. More...
 
virtual void clearConstraints ()
 Remove all constraints. More...
 
virtual size_t nAttributes () const
 Returns the number of attributes associated with the function. More...
 
virtual std::vector< std::string > getAttributeNames () const
 Returns a list of attribute names. More...
 
virtual std::string attributeName (size_t index) const
 Get name of ith attribute. More...
 
virtual Attribute getAttribute (const std::string &name) const
 Return a value of attribute attName. More...
 
virtual bool hasAttribute (const std::string &name) const
 Check if attribute attName exists. More...
 
template<typename T >
void setAttributeValue (const std::string &attName, const T &value)
 Set an attribute value. More...
 
void setAttributeValue (const std::string &attName, const char *value)
 Overload for const char* values. More...
 
void setAttributeValue (const std::string &attName, const std::string &value)
 Set string attribute by value. More...
 
virtual std::shared_ptr< IFunctiongetFunction (size_t i) const
 Returns the pointer to i-th child function. More...
 
virtual std::size_t nFunctions () const
 Number of child functions. More...
 
virtual void setUpForFit ()
 Set up the function for a fit. More...
 
virtual size_t getValuesSize (const FunctionDomain &domain) const
 Get number of values for a given domain. More...
 
virtual size_t getNumberDomains () const
 Get number of domains required by this function. More...
 
virtual std::vector< std::shared_ptr< IFunction > > createEquivalentFunctions () const
 Split this function (if needed) into a list of independent functions. More...
 
void calNumericalDeriv (const FunctionDomain &domain, Jacobian &jacobian)
 Calculate numerical derivatives. More...
 
double calculateStepSize (const double parameterValue) const
 Calculate step size for the given parameter value. More...
 
void setCovarianceMatrix (const std::shared_ptr< Kernel::Matrix< double > > &covar)
 Set the covariance matrix. More...
 
std::shared_ptr< const Kernel::Matrix< double > > getCovarianceMatrix () const
 Get the covariance matrix. More...
 
void setReducedChiSquared (double chi2)
 Set the reduced chi^2. More...
 
double getReducedChiSquared () const
 Get the reduced chi^2. More...
 
void setParallel (bool on)
 Set the parallel hint. More...
 
bool isParallel () const
 Get the parallel hint. More...
 
void setHandler (std::unique_ptr< FunctionHandler > handler)
 Set a function handler. More...
 
FunctionHandlergetHandler () const
 Return the handler. More...
 
virtual void setStepSizeMethod (const StepSizeMethod method)
 Sets the StepSizeMethod to use when calculation the step size. More...
 
- Public Member Functions inherited from Mantid::API::IFunction1D
virtual void derivative (const FunctionDomain &domain, FunctionValues &values, const size_t order=1) const
 
virtual void derivative1D (double *out, const double *xValues, const size_t nData, const size_t order) const
 Function to calculate the derivatives of the data set. More...
 
void function (const FunctionDomain &domain, FunctionValues &values) const override
 Evaluates the function for all arguments in the domain. More...
 
virtual void function1D (double *out, const double *xValues, const size_t nData) const =0
 Function you want to fit to. More...
 
void functionDeriv (const FunctionDomain &domain, Jacobian &jacobian) override
 Derivatives of function with respect to active parameters. More...
 
virtual void functionDeriv1D (Jacobian *jacobian, const double *xValues, const size_t nData)
 Derivatives of function with respect to active parameters. More...
 

Private Member Functions

void calculateDerivative (double *out, const double *xValues, const size_t nData, const size_t order) const
 Calculate the derivative. More...
 
void calculateSpline (double *out, const double *xValues, const size_t nData) const
 Calculate the spline. More...
 
void checkGSLError (const int status, const int errorType) const
 Check if an error occurred and throw appropriate message. More...
 
bool checkXInRange (double x) const
 Check if an x value falls within the range of the spline. More...
 
void initGSLObjects (boost::scoped_array< double > &x, boost::scoped_array< double > &y, int n) const
 Initialise GSL objects if required. More...
 
void reallocGSLObjects (const int n)
 Reallocate the spline object to use n data points. More...
 
void setupInput (boost::scoped_array< double > &x, boost::scoped_array< double > &y, int n) const
 Method to setup the gsl function. More...
 
double splineEval (const double x) const
 Evaluate a point on the spline, with basic error handling. More...
 

Private Attributes

std::shared_ptr< gsl_interp_accel > m_acc
 GSL interpolation accelerator object. More...
 
struct Mantid::CurveFitting::Functions::CubicSpline::GSLFree m_gslFree
 
const int m_min_points
 Minimum number of data points in spline. More...
 
bool m_recalculateSpline
 Flag for checking if the spline needs recalculating. More...
 
std::shared_ptr< gsl_spline > m_spline
 GSL data structure used to calculate spline. More...
 

Additional Inherited Members

- Public Types inherited from Mantid::API::IFunction
enum  ParameterStatus { Active , Fixed , FixedByDefault , Tied }
 Describe parameter status in relation to fitting: Active: Fit varies such parameter directly. More...
 
enum class  StepSizeMethod { DEFAULT , SQRT_EPSILON }
 Describes the method in which the step size will be calculated: DEFAULT: Uses the traditional Mantid method of calculating the step size. More...
 
- Protected Types inherited from Mantid::API::IFunction1D
template<typename FunctionType >
using Function1DMethod = void(FunctionType::*)(double *, const double *, const size_t) const
 
- Protected Member Functions inherited from Mantid::API::ParamFunction
void clearAllParameters ()
 Nonvirtual member which removes all declared parameters. More...
 
void declareParameter (const std::string &name, double initValue=0, const std::string &description="") override
 Declare a new parameter. More...
 
virtual double * getParameterAddress (size_t i)
 Get the address of the parameter. For use in UserFunction with mu::Parser. More...
 
ParameterStatus getParameterStatus (size_t i) const override
 Get status of parameter. More...
 
void setParameterStatus (size_t i, ParameterStatus status) override
 Change status of parameter. More...
 
- Protected Member Functions inherited from Mantid::API::IFunction
virtual void init ()
 Function initialization. Declare function parameters in this method. More...
 
double convertValue (double value, Kernel::Unit_sptr &outUnit, const std::shared_ptr< const MatrixWorkspace > &ws, size_t wsIndex) const
 Convert a value from one unit (inUnit) to unit defined in workspace (ws) More...
 
void convertValue (std::vector< double > &values, Kernel::Unit_sptr &outUnit, const std::shared_ptr< const MatrixWorkspace > &ws, size_t wsIndex) const
 Convert values from unit defined in workspace (ws) to outUnit. More...
 
virtual void declareAttributes ()
 Override to declare function attributes. More...
 
virtual void declareParameters ()
 Override to declare function parameters. More...
 
void declareAttribute (const std::string &name, const API::IFunction::Attribute &defaultValue)
 Declare a single attribute. More...
 
void declareAttribute (const std::string &name, const API::IFunction::Attribute &defaultValue, const Kernel::IValidator &validator)
 Declare a single attribute with validator. More...
 
void checkAttributeName (const std::string &name)
 Check Attribute to declare does not already exist. More...
 
void storeAttributeValue (const std::string &name, const API::IFunction::Attribute &value)
 Store an attribute's value. More...
 
void storeReadOnlyAttribute (const std::string &name, const API::IFunction::Attribute &value) const
 A read-only ("mutable") attribute can be stored in a const method. More...
 
virtual void addTie (std::unique_ptr< ParameterTie > tie)
 Add a new tie. Derived classes must provide storage for ties. More...
 
bool hasOrderedTies () const
 
void applyOrderedTies ()
 
virtual std::string writeToString (const std::string &parentLocalAttributesStr="") const
 Writes itself into a string. More...
 
- Protected Member Functions inherited from Mantid::API::IFunction1D
template<typename EvaluationMethod >
void calcNumericalDerivative1D (Jacobian *jacobian, EvaluationMethod func1D, const double *xValues, const size_t nData)
 Calculate a numerical derivative for the 1D data. More...
 
virtual void histogram1D (double *out, double left, const double *right, const size_t nBins) const
 Calculate histogram data for the given bin boundaries. More...
 
virtual void histogramDerivative1D (Jacobian *jacobian, double left, const double *right, const size_t nBins) const
 Derivatives of the histogram1D with respect to active parameters. More...
 
- Protected Attributes inherited from Mantid::API::IFunction
bool m_isParallel
 Flag to hint that the function is being used in parallel computations. More...
 
std::unique_ptr< FunctionHandlerm_handler
 Pointer to a function handler. More...
 
std::shared_ptr< Kernel::ProgressBasem_progReporter
 Pointer to the progress handler. More...
 
- Static Protected Attributes inherited from Mantid::API::IFunction1D
static Kernel::Logger g_log
 Logger instance. More...
 

Detailed Description

A wrapper around GSL functions implementing cubic spline interpolation.

This function can also calculate derivatives up to order 2 as a by product of the spline.

Author
Samuel Jackson, STFC
Date
05/07/2013

Definition at line 31 of file CubicSpline.h.

Constructor & Destructor Documentation

◆ CubicSpline()

Mantid::CurveFitting::Functions::CubicSpline::CubicSpline ( )

Constructor.

Definition at line 36 of file CubicSpline.cpp.

Member Function Documentation

◆ calculateDerivative()

void Mantid::CurveFitting::Functions::CubicSpline::calculateDerivative ( double *  out,
const double *  xValues,
const size_t  nData,
const size_t  order 
) const
private

Calculate the derivative.

Calculate the derivatives of each of the supplied points.

Parameters
out:: The array to store the calculated derivatives
xValues:: The array of x values we wish to calculate derivatives at
nData:: The size of the arrays
order:: The order of derivatives to calculate too

Definition at line 199 of file CubicSpline.cpp.

References checkGSLError(), checkXInRange(), Mantid::API::g_log, Mantid::Kernel::Logger::information(), m_acc, and m_spline.

Referenced by derivative1D().

◆ calculateSpline()

void Mantid::CurveFitting::Functions::CubicSpline::calculateSpline ( double *  out,
const double *  xValues,
const size_t  nData 
) const
private

Calculate the spline.

Calculate the values on the spline at each point supplied.

Parameters
out:: The array to store the calculated values
xValues:: The array of x values we wish to interpolate
nData:: The size of the arrays

Definition at line 152 of file CubicSpline.cpp.

References checkXInRange(), Mantid::API::g_log, Mantid::Kernel::Logger::information(), m_spline, and splineEval().

Referenced by function1D().

◆ category()

const std::string Mantid::CurveFitting::Functions::CubicSpline::category ( ) const
inlineoverridevirtual

overwrite IFunction base class methods

Reimplemented from Mantid::CurveFitting::Functions::BackgroundFunction.

Definition at line 39 of file CubicSpline.h.

◆ checkGSLError()

void Mantid::CurveFitting::Functions::CubicSpline::checkGSLError ( const int  status,
const int  errorType 
) const
private

Check if an error occurred and throw appropriate message.

Checks if a call to a GSL function produced a given error or not and throw an appropriate message.

Parameters
status:: The status returned for the GSL function call
errorType:: The type of GSL error to check for

Definition at line 320 of file CubicSpline.cpp.

References m_recalculateSpline.

Referenced by calculateDerivative(), initGSLObjects(), and splineEval().

◆ checkXInRange()

bool Mantid::CurveFitting::Functions::CubicSpline::checkXInRange ( double  x) const
private

Check if an x value falls within the range of the spline.

Check if the supplied x value falls within the range of the spline.

Parameters
x:: The x value to check
Returns
Whether the value falls within the range of the spline

Definition at line 144 of file CubicSpline.cpp.

References m_spline, and Mantid::Geometry::x.

Referenced by calculateDerivative(), and calculateSpline().

◆ derivative1D()

void Mantid::CurveFitting::Functions::CubicSpline::derivative1D ( double *  out,
const double *  xValues,
size_t  nData,
const size_t  order 
) const
overridevirtual

Calculate the derivatives for a set of points on the spline.

Parameters
out:: The array to store the derivatives in
xValues:: The array of x values we wish to know the derivatives of
nData:: The size of the arrays
order:: The order of the derivatives o calculate

Reimplemented from Mantid::API::IFunction1D.

Definition at line 127 of file CubicSpline.cpp.

References Mantid::API::IFunction::Attribute::asInt(), calculateDerivative(), Mantid::API::IFunction::getAttribute(), m_recalculateSpline, n, setupInput(), Mantid::Geometry::x, and Mantid::Geometry::y.

◆ function1D()

void Mantid::CurveFitting::Functions::CubicSpline::function1D ( double *  out,
const double *  xValues,
const size_t  nData 
) const
overridevirtual

Execute the function.

Parameters
out:: The array to store the calculated y values
xValues:: The array of x values to interpolate
nData:: The size of the arrays

Implements Mantid::API::IFunction1D.

Definition at line 58 of file CubicSpline.cpp.

References Mantid::API::IFunction::Attribute::asInt(), calculateSpline(), Mantid::API::IFunction::getAttribute(), m_recalculateSpline, n, setupInput(), Mantid::Geometry::x, and Mantid::Geometry::y.

◆ initGSLObjects()

void Mantid::CurveFitting::Functions::CubicSpline::initGSLObjects ( boost::scoped_array< double > &  x,
boost::scoped_array< double > &  y,
int  n 
) const
private

Initialise GSL objects if required.

Initilize the GSL spline with the given points.

Parameters
x:: The x points defining the spline
y:: The y points defining the spline
n:: The size of the arrays

Definition at line 338 of file CubicSpline.cpp.

References checkGSLError(), m_spline, n, Mantid::Geometry::x, and Mantid::Geometry::y.

Referenced by setupInput().

◆ name()

std::string Mantid::CurveFitting::Functions::CubicSpline::name ( ) const
inlineoverridevirtual

overwrite IFunction base class methods

Implements Mantid::API::IFunction.

Definition at line 38 of file CubicSpline.h.

◆ reallocGSLObjects()

void Mantid::CurveFitting::Functions::CubicSpline::reallocGSLObjects ( const int  n)
private

Reallocate the spline object to use n data points.

Reallocate the size of the GSL objects.

Parameters
n:: The new size of the spline object

Definition at line 347 of file CubicSpline.cpp.

References m_acc, m_gslFree, m_spline, and n.

Referenced by setAttribute().

◆ setAttribute()

void Mantid::CurveFitting::Functions::CubicSpline::setAttribute ( const std::string &  attName,
const Attribute att 
)
overridevirtual

Set a value to attribute attName.

Set an attribute for the function.

Parameters
attName:: The name of the attribute to set
att:: The attribute to set

Reimplemented from Mantid::API::IFunction.

Definition at line 257 of file CubicSpline.cpp.

References Mantid::API::IFunction::Attribute::asDouble(), Mantid::API::IFunction::Attribute::asInt(), Mantid::API::IFunction::declareAttribute(), Mantid::API::ParamFunction::declareParameter(), Mantid::API::IFunction::getAttribute(), m_recalculateSpline, n, reallocGSLObjects(), Mantid::API::IFunction::storeAttributeValue(), and std::to_string().

◆ setParameter() [1/3]

void Mantid::API::ParamFunction::setParameter ( const std::string &  name,
const double &  value,
bool  explicitlySet = true 
)
overridevirtual

Set parameter by name.

Sets a new value to a parameter by name.

Parameters
name:: The name of the parameter.
value:: The new value
explicitlySet:: A boolean flagging the parameter as explicitly set (by user)

Reimplemented from Mantid::API::ParamFunction.

Definition at line 45 of file ParamFunction.cpp.

◆ setParameter() [2/3]

void Mantid::CurveFitting::Functions::CubicSpline::setParameter ( size_t  i,
const double &  value,
bool  explicitlySet = true 
)
overridevirtual

Set a parameter for the function and flags the spline for re-calculation.

Parameters
i:: index of parameter
value:: value of parameter
explicitlySet:: whether it's value was explicitly set or not

Reimplemented from Mantid::API::ParamFunction.

Definition at line 244 of file CubicSpline.cpp.

References m_recalculateSpline, Mantid::API::ParamFunction::setParameter(), and value.

◆ setParameter() [3/3]

void Mantid::API::ParamFunction::setParameter ( size_t  i,
const double &  value,
bool  explicitlySet = true 
)
overridevirtual

Set i-th parameter.

Sets a new value to the i-th parameter.

Parameters
i:: The parameter index
value:: The new value
explicitlySet:: A boolean falgging the parameter as explicitly set (by user)

Reimplemented from Mantid::API::ParamFunction.

Definition at line 39 of file ParamFunction.cpp.

◆ setupInput()

void Mantid::CurveFitting::Functions::CubicSpline::setupInput ( boost::scoped_array< double > &  x,
boost::scoped_array< double > &  y,
int  n 
) const
private

Method to setup the gsl function.

Sets up the spline object by with the parameters and attributes.

Parameters
x:: The array of x values defining the spline
y:: The array of y values defining the spline
n:: The size of the arrays

Definition at line 78 of file CubicSpline.cpp.

References Mantid::API::IFunction::Attribute::asDouble(), Mantid::API::g_log, Mantid::API::IFunction::getAttribute(), Mantid::API::ParamFunction::getParameter(), initGSLObjects(), m_recalculateSpline, n, std::to_string(), Mantid::Kernel::Logger::warning(), Mantid::Geometry::x, and Mantid::Geometry::y.

Referenced by derivative1D(), and function1D().

◆ setXAttribute()

void Mantid::CurveFitting::Functions::CubicSpline::setXAttribute ( const size_t  index,
double  x 
)

Set the value of a data point location to x.

Set an x attribute for the spline.

Parameters
index:: index of x attribute to set
x:: The value of the x attribute

Definition at line 299 of file CubicSpline.cpp.

References Mantid::API::IFunction::Attribute::asInt(), Mantid::API::IFunction::getAttribute(), index, m_recalculateSpline, n, Mantid::API::IFunction::setAttributeValue(), std::to_string(), and Mantid::Geometry::x.

◆ splineEval()

double Mantid::CurveFitting::Functions::CubicSpline::splineEval ( const double  x) const
private

Evaluate a point on the spline, with basic error handling.

Evaluate a point on the spline.

Includes basic error handling

Parameters
x:: Point to evaluate
Returns
:: the value of the spline at the given point

Definition at line 181 of file CubicSpline.cpp.

References checkGSLError(), m_acc, m_spline, Mantid::Geometry::x, and Mantid::Geometry::y.

Referenced by calculateSpline().

Member Data Documentation

◆ m_acc

std::shared_ptr<gsl_interp_accel> Mantid::CurveFitting::Functions::CubicSpline::m_acc
private

GSL interpolation accelerator object.

Definition at line 62 of file CubicSpline.h.

Referenced by calculateDerivative(), reallocGSLObjects(), and splineEval().

◆ m_gslFree

struct Mantid::CurveFitting::Functions::CubicSpline::GSLFree Mantid::CurveFitting::Functions::CubicSpline::m_gslFree
private

Referenced by reallocGSLObjects().

◆ m_min_points

const int Mantid::CurveFitting::Functions::CubicSpline::m_min_points
private

Minimum number of data points in spline.

Definition at line 53 of file CubicSpline.h.

◆ m_recalculateSpline

bool Mantid::CurveFitting::Functions::CubicSpline::m_recalculateSpline
mutableprivate

Flag for checking if the spline needs recalculating.

Definition at line 68 of file CubicSpline.h.

Referenced by checkGSLError(), derivative1D(), function1D(), setAttribute(), setParameter(), setupInput(), and setXAttribute().

◆ m_spline

std::shared_ptr<gsl_spline> Mantid::CurveFitting::Functions::CubicSpline::m_spline
private

GSL data structure used to calculate spline.

Definition at line 65 of file CubicSpline.h.

Referenced by calculateDerivative(), calculateSpline(), checkXInRange(), initGSLObjects(), reallocGSLObjects(), and splineEval().


The documentation for this class was generated from the following files: