Class MEAL::Function

class Function : public Reference::Able

Pure virtual base class of all functions.

A Function may consist of an arbitrary number of parameters. Using the Abscissa class, a Function may also be constrained by one or more independent variables. The specification of the Function base class promotes its use with the LevenbergMarquardt template class.

Subclassed by MEAL::Evaluable< std::complex< double > >, MEAL::Evaluable< Jones< double > >, MEAL::Evaluable< Matrix< 4, 4, std::complex< double > > >, MEAL::Evaluable< Matrix< 4, 4, double > >, MEAL::Evaluable< double >, MEAL::Evaluable< Vector< 2, std::complex< double > > >, MEAL::Evaluable< Vector< 3, double > >, MEAL::Evaluable< T >, MEAL::Null

Public Types

enum Attribute

Function attributes that require the attention of Composite models.

Values:

enumerator ParameterCount

Number of Function parameters, as returned by get_nparam.

enumerator Evaluation

Function evaluation, as returned by the evaluate method.

Public Functions

Function()

Default constructor.

Function(const Function &model)

Copy constructor.

Function &operator=(const Function &model)

Assignment operator.

virtual ~Function()

Virtual destructor.

virtual Function *clone() const

Clone.

virtual void copy(const Function *model)

Does the work for operator =.

virtual TextInterface::Parser *get_interface()

Return a text interface that can be used to access this instance.

virtual void parse(const std::string &text)

Parses the values of model parameters and fit flags from a string.

virtual void print(std::string &text) const

Prints the values of model parameters and fit flags to a string.

virtual std::string get_name() const = 0

Return the name of the class.

inline virtual std::string get_description() const

Return the description of the class.

inline unsigned get_nparam() const

Return the number of parameters.

inline std::string get_param_name(unsigned index) const

Return the name of the specified parameter.

inline std::string get_param_description(unsigned index) const

Return the description of the specified parameter.

inline double get_param(unsigned index) const

Return the value of the specified parameter.

inline void set_param(unsigned index, double value)

Set the value of the specified parameter.

inline double get_variance(unsigned index) const

Return the variance of the specified parameter.

inline void set_variance(unsigned index, double value)

Set the variance of the specified parameter.

inline bool get_infit(unsigned index) const

Return true if parameter at index is to be fitted.

inline void set_infit(unsigned index, bool flag)

Set flag for parameter at index to be fitted.

inline void set_argument(unsigned dimension, Argument *axis)

Set the independent variable of the specified dimension.

Estimate<double> get_Estimate(unsigned index) const

Return an Estimate of the specified parameter.

void set_Estimate(unsigned index, const Estimate<double> &param)

Set the Estimate of the specified parameter.

void set_verbose(bool)

Set the verbosity of this instance.

bool get_verbose() const

Get the verbosity of this instance.

void set_evaluation_changed(bool _changed = true)

Set true if the Function evaluation has changed.

inline bool get_evaluation_changed() const

Return true if the Function evaluation has changed.

inline const ParameterPolicy *get_parameter_policy() const

Provide access to the parameter_policy attribute.

inline ParameterPolicy *get_parameter_policy()

Provide access to the parameter_policy attribute.

inline bool has_parameter_policy() const

Some wrappers may not have a parameter policy.

virtual void print_parameters(std::string &text, const std::string &separator) const

Prints the values of model parameters and fit flags to a string.

Public Members

Callback<Attribute> changed

Callback executed when a Function Attribute has been changed.

Public Static Functions

template<class Model>
static Model *load(const std::string &filename)

Construct a new Model instance from a file.

static Function *load_Function(const std::string &filename)

Construct a new Function instance from a file.

static Function *factory(const std::string &text)

Construct a new Function instance from a string.

Public Static Attributes

static bool verbose

Verbosity flag.

static bool very_verbose

Low-level verbosity flag.

static bool check_zero

When set, some Functions will throw an Error if they evaluate to zero.

static bool check_variance

When set, some Functions will throw an Error if input variance <= 0.

static bool cache_results

When set, use the Cached evaluation policy and callbacks.

template<class T>
class Interface : public TextInterface::To<T>

Textual interface to Function attributes.

Provides a text interface to get and set Function attributes.

Public Functions

Interface(T* = 0)

Default constructor that takes an optional instance.

inline std::string get_interface_name() const

Get the interface name.

inline std::string get_interface_description() const

Get a short description of this interface.