IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.
|
Vector function of a vector argument. More...
Public Member Functions | |
void | Evaluate (IVectorFunctionResults evaluationData) |
Performs evaluation of requested vector function results and writes them to the provided data structure. | |
double | Value (IVectorFunctionResults evaluationData, int which) |
Calculates and returns the particular component of the vector function value. | |
double | Derivative (IVectorFunctionResults evaluationData, int which, int component) |
Calculates and returns the particular component of the vector function derivative. | |
double | SecondDerivative (IVectorFunctionResults evaluationData, int which, int rowNum, int columnNum) |
Calculates and returns the particular component of the vector function's second derivative (Hessian). | |
void | Value (IVector x, ref List< double > value) |
Returns the value of this function at the specified parameter. | |
void | Derivative (IVector x, ref List< IVector > derivative) |
Returns the first derivative of this function at the specified parameter. | |
void | SecondDerivative (IVector x, ref List< IMatrix > secondDerivative) |
Returns the second derivative (Hessian) of this function at the specified arameter. | |
void | Evaluate (IVector parameters, ref bool calculateValues, ref List< double > values, ref bool calculateGradients, ref List< IVector > gradients, ref bool calculateHessians, ref List< IMatrix > hessians) |
Calculation of values, gradients, and hessians of the vector function according to request flags. | |
Properties | |
string | Name [get] |
Returns a short name of the function. | |
string | Description [get] |
Returns a short description of the function. | |
int | NumParameters [get] |
Gets number of parameters of the current vector function (-1 for not defined, in case that function works with different numbers of parameters). | |
int | NumValues [get] |
Gets number of values of the current vector function (-1 for not defined, e.g. in case that function works with different numbers of parameters and number of functions depends on number of parameters). | |
bool | ValueDefined [get] |
Tells whether value of the function is defined by implementation. | |
bool | DerivativeDefined [get] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically) | |
bool | SecondDerivativeDefined [get] |
Tells whether the second derivative is defined for this function (by implementation, not mathematically) | |
bool | ComponentWiseEvaluation [get] |
Tells whether the function supports evaluation of individual components. If not then evaluation is performed through the Evaluate function. |
Vector function of a vector argument.
$A Igor xx May10 Dec10;
void IG::Num::IVectorFunction::Evaluate | ( | IVectorFunctionResults | evaluationData | ) |
Performs evaluation of requested vector function results and writes them to the provided data structure.
analysisData | Data structure where request parameters are obtained and where results are written. |
Implemented in IG::Num::VectorFunctionBase, IG::Num::VectorFunctionBaseComponentWise, IG::Num::VectorFunctionBaseGeneral, and IG::Num::VectorFunctionExamples::RosenBrockAndCircle.
double IG::Num::IVectorFunction::Value | ( | IVectorFunctionResults | evaluationData, |
int | which | ||
) |
Calculates and returns the particular component of the vector function value.
evaluationData | Evaluation data that contains function parameters and can store function resuts. If the function does not support component-wise evaluation then results will be stored to this structure and returned from it. This makes reuse possible - when different components are evaluated subsequently with the same parameters, results are calculated only for the first time. |
which | Specifies which function to evaluate. |
Implemented in IG::Num::VectorFunctionBase, IG::Num::VectorFunctionBaseComponentWise, and IG::Num::VectorFunctionBaseGeneral.
double IG::Num::IVectorFunction::Derivative | ( | IVectorFunctionResults | evaluationData, |
int | which, | ||
int | component | ||
) |
Calculates and returns the particular component of the vector function derivative.
evaluationData | Evaluation data that contains function parameters and can store function resuts. If the function does not support component-wise evaluation then results will be stored to this structure and returned from it. This makes reuse possible - when different components are evaluated subsequently with the same parameters, results are calculated only for the first time. |
which | Specifies which function to take. |
component | Specifies which compoonent of the gradient should be returned. |
Implemented in IG::Num::VectorFunctionBase, IG::Num::VectorFunctionBaseComponentWise, and IG::Num::VectorFunctionBaseGeneral.
double IG::Num::IVectorFunction::SecondDerivative | ( | IVectorFunctionResults | evaluationData, |
int | which, | ||
int | rowNum, | ||
int | columnNum | ||
) |
Calculates and returns the particular component of the vector function's second derivative (Hessian).
evaluationData | Evaluation data that contains function parameters and can store function resuts. If the function does not support component-wise evaluation then results will be stored to this structure and returned from it. This makes reuse possible - when different components are evaluated subsequently with the same parameters, results are calculated only for the first time. |
which | Specifies which function to take. |
rowNum | Specifies which row of the Hessian (matrix of second derivatives) should be returned. |
columnNum | Specifies which column of the Hessian (matrix of second derivatives) should be returned. |
Implemented in IG::Num::VectorFunctionBase, IG::Num::VectorFunctionBaseComponentWise, and IG::Num::VectorFunctionBaseGeneral.
void IG::Num::IVectorFunction::Value | ( | IVector | x, |
ref List< double > | value | ||
) |
Returns the value of this function at the specified parameter.
Implemented in IG::Num::VectorFunctionBaseGeneral.
Returns the first derivative of this function at the specified parameter.
Implemented in IG::Num::VectorFunctionBaseGeneral.
Returns the second derivative (Hessian) of this function at the specified arameter.
Implemented in IG::Num::VectorFunctionBaseGeneral.
void IG::Num::IVectorFunction::Evaluate | ( | IVector | parameters, |
ref bool | calculateValues, | ||
ref List< double > | values, | ||
ref bool | calculateGradients, | ||
ref List< IVector > | gradients, | ||
ref bool | calculateHessians, | ||
ref List< IMatrix > | hessians | ||
) |
Calculation of values, gradients, and hessians of the vector function according to request flags.
parameters | Parameters at which evaluation takes place. |
calculateValues | Flag for calculation of function values, input/output. |
values | Function values, output. |
calculateGradients | Flag for calculation of functions gradients, input/output. |
gradients | Gradients, output. |
calculateHessians | Flag for calculation of Hessians, input/output. |
hessians | Functions' hessians, output. |
Implemented in IG::Num::VectorFunctionBase, IG::Num::VectorFunctionBaseComponentWise, and IG::Num::VectorFunctionBaseGeneral.
string IG::Num::IVectorFunction::Name [get] |
Returns a short name of the function.
Implemented in IG::Num::VectorFunctionBaseGeneral.
string IG::Num::IVectorFunction::Description [get] |
Returns a short description of the function.
Implemented in IG::Num::VectorFunctionBaseGeneral.
int IG::Num::IVectorFunction::NumParameters [get] |
Gets number of parameters of the current vector function (-1 for not defined, in case that function works with different numbers of parameters).
Implemented in IG::Num::VectorFunctionBaseGeneral.
int IG::Num::IVectorFunction::NumValues [get] |
Gets number of values of the current vector function (-1 for not defined, e.g. in case that function works with different numbers of parameters and number of functions depends on number of parameters).
Implemented in IG::Num::VectorFunctionBaseGeneral.
bool IG::Num::IVectorFunction::ValueDefined [get] |
Tells whether value of the function is defined by implementation.
Implemented in IG::Num::VectorFunctionBaseGeneral.
bool IG::Num::IVectorFunction::DerivativeDefined [get] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically)
Implemented in IG::Num::VectorFunctionBaseGeneral.
bool IG::Num::IVectorFunction::SecondDerivativeDefined [get] |
Tells whether the second derivative is defined for this function (by implementation, not mathematically)
Implemented in IG::Num::VectorFunctionBaseGeneral.
bool IG::Num::IVectorFunction::ComponentWiseEvaluation [get] |
Tells whether the function supports evaluation of individual components. If not then evaluation is performed through the Evaluate function.
Implemented in IG::Num::VectorFunctionBase, IG::Num::VectorFunctionBaseComponentWise, and IG::Num::VectorFunctionBaseGeneral.