IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.

IG::Num::IVectorFunction Interface Reference

Vector function of a vector argument. More...

Inheritance diagram for IG::Num::IVectorFunction:
Collaboration diagram for IG::Num::IVectorFunction:

List of all members.

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.

Detailed Description

Vector function of a vector argument.

$A Igor xx May10 Dec10;


Member Function Documentation

void IG::Num::IVectorFunction::Evaluate ( IVectorFunctionResults  evaluationData)

Performs evaluation of requested vector function results and writes them to the provided data structure.

Parameters:
analysisDataData 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.

Parameters:
evaluationDataEvaluation 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.
whichSpecifies 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.

Parameters:
evaluationDataEvaluation 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.
whichSpecifies which function to take.
componentSpecifies 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).

Parameters:
evaluationDataEvaluation 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.
whichSpecifies which function to take.
rowNumSpecifies which row of the Hessian (matrix of second derivatives) should be returned.
columnNumSpecifies 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.

void IG::Num::IVectorFunction::Derivative ( IVector  x,
ref List< IVector derivative 
)

Returns the first derivative of this function at the specified parameter.

Implemented in IG::Num::VectorFunctionBaseGeneral.

void IG::Num::IVectorFunction::SecondDerivative ( IVector  x,
ref List< IMatrix secondDerivative 
)

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:
parametersParameters at which evaluation takes place.
calculateValuesFlag for calculation of function values, input/output.
valuesFunction values, output.
calculateGradientsFlag for calculation of functions gradients, input/output.
gradientsGradients, output.
calculateHessiansFlag for calculation of Hessians, input/output.
hessiansFunctions' hessians, output.

Implemented in IG::Num::VectorFunctionBase, IG::Num::VectorFunctionBaseComponentWise, and IG::Num::VectorFunctionBaseGeneral.


Property Documentation

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.


The documentation for this interface was generated from the following file:
 All Classes Namespaces Files Functions Variables Enumerations Properties Events