Class MEAL::BasisRule

template<unsigned M, unsigned N, class T>
class BasisRule : public T

Changes the basis of a model parameterization.

Given any Function, \( f({\bm a}) \), where \( {\bm a} \) is a vector of \( M \) free parameters, and a \( M \times N \) linear transformation, \( {\bf A} \), this class evaluates \( g({\bm b}) = f({\bf A} {\bm b}) \), where \( {\bm b} \) is a vector of \( N \) free parameters, and its partial derivatives,

\[ \frac{\partial g}{\partial b_j} = \sum_{i=1}^{M} A_{ij} \frac{\partial f}{\partial a_i}. \]

Public Functions

inline BasisRule()

Default constructor.

inline BasisRule(const BasisRule &that)

Copy constructor.

BasisRule &operator=(const BasisRule&)

Assignment operator.

void set_model(T *model)

Set the Function with the parameters to be transformed.

void set_transformation(const Matrix<M, N, double> &xform)

Set the basis transformation.

std::string get_name() const override

Return the name of the class.

inline BasisRule *clone() const override

Clone operator.