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

- Main Page
- Namespaces
- Classes
- Files
- Directories

- Class List
- Class Index
- Class Hierarchy
- Class Members

Public Member Functions | Properties

# IG::Num::IVectorFunction Interface Reference

Vector function of a vector argument. More...

Inheritance diagram for IG::Num::IVectorFunction:
[legend]
Collaboration diagram for IG::Num::IVectorFunction:
[legend]

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:

  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.

Parameters:

  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.

Parameters:

  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).

Parameters:

  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.

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:

  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.

## 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:

- FunctionVectorInt.cs

All Classes Namespaces Files Functions Variables Enumerations Properties Events