Mantid
|
Immutable composite function is a composite function which members cannot be added or removed after creation. More...
#include <ImmutableCompositeFunction.h>
Public Member Functions | |
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... | |
std::string | name () const override |
Returns the function's name. 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... | |
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 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 i, const std::string &description) override |
Set i-th parameter description. More... | |
Public Member Functions inherited from Mantid::API::CompositeFunction | |
double | activeParameter (size_t i) const override |
Value of i-th active parameter. More... | |
virtual size_t | addFunction (IFunction_sptr f) |
Add a function at the back of the internal function list. More... | |
void | applyTies () override |
Apply the ties. More... | |
std::size_t | attributeFunctionIndex (std::size_t i) const |
Get the index of the function to which parameter i belongs. More... | |
std::string | attributeName (size_t i) const override |
Returns the name of attribute i. More... | |
void | checkFunction () |
Check the function. More... | |
void | clear () |
Remove all member functions. More... | |
void | clearTies () override |
Remove all ties. More... | |
CompositeFunction () | |
Default constructor. More... | |
std::vector< std::shared_ptr< IFunction > > | createEquivalentFunctions () const override |
Split this function (if needed) into a list of independent functions. More... | |
std::string | descriptionOfActive (size_t i) const override |
Returns the name of active parameter i. More... | |
void | function (const FunctionDomain &domain, FunctionValues &values) const override |
Function you want to fit to. More... | |
void | functionDeriv (const FunctionDomain &domain, Jacobian &jacobian) override |
Derivatives of function with respect to active parameters. More... | |
std::size_t | functionIndex (const std::string &functionName) const |
Get the first function index with a matching function name. More... | |
std::size_t | functionIndex (std::size_t i) const |
Get the function index. More... | |
Attribute | getAttribute (const std::string &name) const override |
Return a value of attribute attName. More... | |
IConstraint * | getConstraint (size_t i) const override |
Get constraint of i-th parameter. More... | |
IFunction_sptr | getContainingFunction (const ParameterReference &ref) const |
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 | getError (size_t i, size_t j) const |
Get the fitting error for i-th function's j-th parameter. More... | |
IFunction_sptr | getFunction (std::size_t i) const override |
Returns the pointer to i-th function. More... | |
virtual Attribute | getLocalAttribute (size_t i, const std::string &attName) const |
Return a value of attribute attName. More... | |
virtual std::vector< std::string > | getLocalAttributeNames () const |
Returns a list of attribute names. More... | |
size_t | getNumberDomains () const override |
Get number of domains required by this function. 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... | |
double | getParameter (size_t i, size_t j) const |
Get parameter from i-th function, j-th local parameter index. More... | |
size_t | getParameterIndex (const ParameterReference &ref) const override |
Return parameter index from a parameter reference. More... | |
ParameterStatus | getParameterStatus (size_t i) const override |
Get status of parameter. More... | |
ParameterTie * | getTie (size_t i) const override |
Get the tie of i-th parameter. More... | |
bool | hasAttribute (const std::string &name) const override |
Check if a function has an attribute with this name. More... | |
bool | hasFunction (const std::string &functionName) const |
Returns true if the composite has at least one of this function. More... | |
virtual bool | hasLocalAttribute (const std::string &) const |
Check if attribute attName exists. 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... | |
std::string | name () const override |
Returns the function's name. More... | |
std::string | nameOfActive (size_t i) const override |
Returns the name of active parameter i. More... | |
size_t | nAttributes () const override |
Returns the number of attributes associated with the function. More... | |
std::size_t | nFunctions () const override |
Number of functions. More... | |
size_t | nGlobalAttributes () const noexcept |
virtual size_t | nLocalAttributes () const |
Returns the number of attributes associated with the function. 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... | |
size_t | parameterLocalIndex (size_t i, bool recursive=false) const |
Returns the index of parameter i as it declared in its function. More... | |
std::string | parameterLocalName (size_t i, bool recursive=false) const |
Returns the name of parameter i as it declared in its function. More... | |
std::string | parameterName (size_t i) const override |
Returns the name of parameter i. More... | |
std::string | parameterName (size_t i, size_t j) const |
Returns the name of i-th function's j-th parameter. More... | |
void | registerFunctionUsage (bool internal) override |
Registers the usage of the function with the UsageService. More... | |
void | removeConstraint (const std::string &parName) override |
Remove a constraint. More... | |
void | removeFunction (size_t i) |
Remove a function. More... | |
virtual void | removeTie (const std::string &parName) |
Removes the tie off a parameter. More... | |
virtual bool | removeTie (size_t i) |
Removes i-th parameter's tie. More... | |
bool | removeTie (size_t i) override |
Removes i-th parameter's tie. More... | |
void | replaceFunction (size_t functionIndex, const IFunction_sptr &f) |
Replace a function. More... | |
void | replaceFunctionPtr (const IFunction_sptr &f_old, const IFunction_sptr &f_new) |
Replace a function. More... | |
void | setActiveParameter (size_t i, double value) override |
Set new value of i-th active parameter. More... | |
void | setAttribute (const std::string &name, const API::IFunction::Attribute &value) override |
Set a value of a named attribute. 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... | |
virtual void | setLocalAttribute (size_t i, const std::string &attName, const Attribute &) |
Set a value to attribute attName. More... | |
void | setLocalAttributeValue (size_t i, const std::string &attName, const char *value) |
template<typename T > | |
void | setLocalAttributeValue (size_t i, const std::string &attName, const T &value) |
void | setMatrixWorkspace (std::shared_ptr< const API::MatrixWorkspace > workspace, size_t wi, double startX, double endX) override |
Set matrix workspace. 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... | |
void | setParameterStatus (size_t i, ParameterStatus status) override |
Change status of parameter. More... | |
void | setStepSizeMethod (const StepSizeMethod stepSizeMethod) override |
Sets the function to use when calculating the step size. More... | |
void | setUpForFit () override |
Prepare function for a fit. More... | |
void | setWorkspace (std::shared_ptr< const Workspace > ws) override |
Sets the workspace for each member function. More... | |
void | updateActive (const double *in) |
Update parameters after a fitting iteration. 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< IFunction > | clone () 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... | |
IFunction & | operator= (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... | |
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 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 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 std::vector< std::string > | getAttributeNames () const |
Returns a list of attribute names. 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< IFunction > | getFunction (size_t i) const |
Returns the pointer to i-th child function. More... | |
virtual size_t | getValuesSize (const FunctionDomain &domain) const |
Get number of values for a given domain. 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... | |
FunctionHandler * | getHandler () const |
Return the handler. More... | |
Protected Member Functions | |
void | addDefaultConstraints (const std::string &constraints) |
Add default constraints. More... | |
void | addDefaultTies (const std::string &ties) |
Add default ties. More... | |
void | addFunction (IFunction *fun) |
Overload addFunction to take a bare pointer. More... | |
virtual size_t | addFunction (IFunction_sptr f) |
Make it protected. More... | |
void | setAlias (const std::string &parName, const std::string &alias) |
Define an alias for a parameter. More... | |
std::string | writeToString (const std::string &parentLocalAttributesStr="") const override |
Writes itself into a string. More... | |
Protected Member Functions inherited from Mantid::API::CompositeFunction | |
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 a validator. More... | |
void | declareParameter (const std::string &name, double initValue=0, const std::string &description="") override |
Declare a new parameter. More... | |
void | init () override |
Function initialization. Declare function parameters in this method. More... | |
size_t | paramOffset (size_t i) const |
std::string | writeToString (const std::string &parentLocalAttributesStr="") const override |
Writes itself into a string. More... | |
Protected Member Functions inherited from Mantid::API::IFunction | |
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 () |
Private Attributes | |
std::map< std::string, size_t > | m_aliases |
Keep paramater aliases. 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... | |
Static Public Member Functions inherited from Mantid::API::CompositeFunction | |
static std::pair< std::string, size_t > | parseName (const std::string &varName) |
Extract function index and parameter name from a variable name. 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< FunctionHandler > | m_handler |
Pointer to a function handler. More... | |
std::shared_ptr< Kernel::ProgressBase > | m_progReporter |
Pointer to the progress handler. More... | |
Immutable composite function is a composite function which members cannot be added or removed after creation.
Only a derived class can add functions in its contructor (or methods). The function factory treat an ImmutableCompositeFunction as a simple function.
Definition at line 26 of file ImmutableCompositeFunction.h.
|
protected |
Add default constraints.
Add a list of constraints from a string.
Constraints added with this method are created with isDefault flag set to true and do not appear in the string returned by asString() method.
constraints | :: A comma-separated list of constraint expressions. |
Definition at line 133 of file ImmutableCompositeFunction.cpp.
References Mantid::API::IFunction::addConstraints().
|
protected |
Add default ties.
Ties added with this method are created with isDefault flag set to true and do not appear in the string returned by asString() method.
ties | :: Comma-separated list of name=value pairs where name is a parameter name and value is a math expression tying the parameter to other parameters or a constant. |
Definition at line 124 of file ImmutableCompositeFunction.cpp.
References Mantid::API::IFunction::addTies().
Referenced by Mantid::CurveFitting::Functions::DiffRotDiscreteCircle::init(), Mantid::CurveFitting::Functions::DiffSphere::init(), and Mantid::CurveFitting::Functions::IsoRotDiff::init().
|
protected |
Overload addFunction to take a bare pointer.
A convenience method to add a new function.
fun | @ A pointer to a newly created function. |
Definition at line 32 of file ImmutableCompositeFunction.cpp.
References addFunction().
Referenced by addFunction(), Mantid::CurveFitting::Functions::DiffRotDiscreteCircle::init(), Mantid::CurveFitting::Functions::DiffSphere::init(), and Mantid::CurveFitting::Functions::IsoRotDiff::init().
|
protectedvirtual |
Make it protected.
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 167 of file CompositeFunction.cpp.
|
overridevirtual |
Get parameter by name.
name | :: An alias or a name in CompositeFunction's style: f#.name |
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 68 of file ImmutableCompositeFunction.cpp.
References Mantid::API::CompositeFunction::getParameter(), m_aliases, and name().
|
inlineoverridevirtual |
Get i-th parameter.
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 45 of file ImmutableCompositeFunction.h.
|
inlineoverridevirtual |
Returns the function's name.
Reimplemented from Mantid::API::CompositeFunction.
Reimplemented in Mantid::CurveFitting::Functions::DiffRotDiscreteCircle, Mantid::CurveFitting::Functions::DiffSphere, and Mantid::CurveFitting::Functions::IsoRotDiff.
Definition at line 31 of file ImmutableCompositeFunction.h.
Referenced by getParameter(), parameterIndex(), setParameter(), and setParameterDescription().
|
overridevirtual |
Returns the index of parameter name.
name | :: An alias or a name in CompositeFunction's style: f#.name |
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 80 of file ImmutableCompositeFunction.cpp.
References m_aliases, name(), and Mantid::API::CompositeFunction::parameterIndex().
|
overridevirtual |
Returns the name of parameter i.
Returns the alias or name of parameter i.
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 91 of file ImmutableCompositeFunction.cpp.
References m_aliases, and Mantid::API::CompositeFunction::parameterName().
|
protected |
Define an alias for a parameter.
Use this method only after all member functions have been added.
parName | :: Fully qualified parameter name. |
alias | :: An alias for the parameter. |
Definition at line 108 of file ImmutableCompositeFunction.cpp.
References m_aliases, and Mantid::API::CompositeFunction::parameterIndex().
|
overridevirtual |
Set parameter by name.
name | :: An alias or a name in CompositeFunction's style: f#.name |
value | :: A new parameter value. |
explicitlySet | :: The explicitly set flag. |
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 40 of file ImmutableCompositeFunction.cpp.
References m_aliases, name(), Mantid::API::CompositeFunction::setParameter(), and value.
|
inlineoverridevirtual |
Set i-th parameter.
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 33 of file ImmutableCompositeFunction.h.
References value.
|
overridevirtual |
Set description of parameter by name.
name | :: An alias or a name in CompositeFunction's style: f#.name |
description | :: A parameter description. |
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 54 of file ImmutableCompositeFunction.cpp.
References m_aliases, name(), and Mantid::API::CompositeFunction::setParameterDescription().
|
inlineoverridevirtual |
Set i-th parameter description.
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 37 of file ImmutableCompositeFunction.h.
|
overrideprotectedvirtual |
Writes itself into a string.
Overridden method creates an initialization string which makes it look like a siple function.
Reimplemented from Mantid::API::CompositeFunction.
Definition at line 24 of file ImmutableCompositeFunction.cpp.
References Mantid::API::IFunction::writeToString().
|
private |
Keep paramater aliases.
Definition at line 69 of file ImmutableCompositeFunction.h.
Referenced by getParameter(), parameterIndex(), parameterName(), setAlias(), setParameter(), and setParameterDescription().