Parameterizes a Function by one or more Scalar ordinates. More...

#include <ChainRule.h>

Inherits T.

Public Types

typedef T::Result Result
 

Public Member Functions

 ChainRule ()
 Default constructor.
 
 ChainRule (const ChainRule &rule)
 Copy constructor.
 
ChainRuleoperator= (const ChainRule &rule)
 Assignment operator.
 
void set_model (T *model)
 Set the Function to be constrained by Scalar ordinates.
 
T * get_model ()
 
void set_constraint (unsigned iparam, Scalar *scalar)
 Set the Scalar instance used to constrain the specified parameter.
 
bool has_constraint (unsigned iparam)
 
Scalarget_constraint (unsigned iparam)
 
std::string get_name () const
 Return the name of the class.
 

Protected Member Functions

void calculate (Result &result, std::vector< Result > *gradient)
 Return the Result and its gradient.
 
ConstrainedParameterfind_constraint (unsigned iparam)
 Find the matching constraint.
 

Protected Attributes

std::vector< ConstrainedParameterconstraints
 Scalars used to constrain the parameters.
 
Project< T > model
 The Function to be constrained by Scalar ordinates.
 

Detailed Description

template<class T>
class MEAL::ChainRule< T >

Parameterizes a Function by one or more Scalar ordinates.

Given any Function, $ M({\bf a}) $, one or more parameters may be constrained by a Scalar, $ f({\bf b}) $. That is, $a_i=f({\bf b})$. The fit flag for $a_i$ is set to false, and the partial derivatives of $ M $ with respect to the Scalar parameters, $\bf b$, are given by the chain rule, ${\partial M\over\partial b_k} = {\partial M\over\partial a_i}{\partial f\over\partial b_k}$.


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

Generated using doxygen 1.8.17