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

IG::Lib::LoadableScalarFunctionBase Class Reference

A ScalarFunction class used as base class for dynamically loaded scalar functions. Functions loaded from scripts will inherit from this class, which enables script writers to assemble just the minimum necessary amount of code. More...

Inheritance diagram for IG::Lib::LoadableScalarFunctionBase:
Collaboration diagram for IG::Lib::LoadableScalarFunctionBase:

List of all members.

Public Member Functions

 LoadableScalarFunctionBase ()
 Constructs reference scalar function of vector variable defined by the user (witout any transfomrations).
 LoadableScalarFunctionBase (IAffineTransformation transf)
 Constructs a scalar function of vector argument defined by the user defined function and affine transformation of parameters.
override double ReferenceValue (IVector parameters)
 Returns the value of this function at the specified parameter in the reference coordinate system.
override void ReferenceGradientPlain (IVector parameters, IVector gradient)
 Calculates the first derivative (gradient) of this function at the specified parameter in the reference coordinate system.
override void ReferenceHessianPlain (IVector parameters, IMatrix hessian)
 Calculates the second derivative (Hessian) of this function at the specified parameters in the reference coordinate system.

Protected Member Functions

abstract void InitDynamic ()
 Initialization of variables that are used by dynamic loading mechanisim. This function must be overridden in derived classes.

Protected Attributes

string[] _independentVariableNames = null
string _returnedValueName = null
string[] _gradientDefinitionStrings = null
string[][] _hessianDefinitionStrings = null
int _numParam
bool _valueDefined = false

Properties

virtual int NumParameters [get]
 Gets number of parameters of the current user defined scalar function.
override string Name [get, set]
 Function name.
override string Description [get, set]
 Function description.
override bool ValueDefined [get, set]
 Whether calculation of value is implemented for the current scalar function.
override bool GradientDefined [get, set]
 Whether calculation of gradient is implemeted for the current scalar function.
override bool HessianDefined [get, set]
 Whether calculation of second derivative is implemented for the current function.

Private Attributes

string _functionArgumentParametersName = null
string _functionArgumentGradientName = null
string _functionArgumentHessianName = null
string _independentVariableName = null
string _valueDefinitionString = null
bool _gradientDefined = false
bool _hessianDefined = false

Detailed Description

A ScalarFunction class used as base class for dynamically loaded scalar functions. Functions loaded from scripts will inherit from this class, which enables script writers to assemble just the minimum necessary amount of code.

$A Igor Jun10;


Constructor & Destructor Documentation

IG::Lib::LoadableScalarFunctionBase::LoadableScalarFunctionBase ( ) [inline]

Constructs reference scalar function of vector variable defined by the user (witout any transfomrations).

IG::Lib::LoadableScalarFunctionBase::LoadableScalarFunctionBase ( IAffineTransformation  transf) [inline]

Constructs a scalar function of vector argument defined by the user defined function and affine transformation of parameters.

Parameters:
transfAffine transformation that is applied to parameters. If null then the fuction is identical to the reference (untransformed) user-defined function.

$A Igor Sep10;


Member Function Documentation

abstract void IG::Lib::LoadableScalarFunctionBase::InitDynamic ( ) [protected, pure virtual]

Initialization of variables that are used by dynamic loading mechanisim. This function must be overridden in derived classes.

Implemented in IG::Script::ScritpScalarFunctionExample::Container::Function.

override double IG::Lib::LoadableScalarFunctionBase::ReferenceValue ( IVector  parameters) [inline, virtual]

Returns the value of this function at the specified parameter in the reference coordinate system.

Parameters:
parametersVector of parameters (in the REFERENCE system) where function is evaluated.

Implements IG::Num::ScalarFunctionBase.

Reimplemented in IG::Script::ScritpScalarFunctionExample::Container::Function.

override void IG::Lib::LoadableScalarFunctionBase::ReferenceGradientPlain ( IVector  parameters,
IVector  gradient 
) [inline, virtual]

Calculates the first derivative (gradient) of this function at the specified parameter in the reference coordinate system.

Parameters:
parametersVector of parameters (in the REFERENCE system) where derivatives are evaluated.
gradientVector where first derivatives (gradient) are stored.

Implements IG::Num::ScalarFunctionBase.

Reimplemented in IG::Script::ScritpScalarFunctionExample::Container::Function.

override void IG::Lib::LoadableScalarFunctionBase::ReferenceHessianPlain ( IVector  parameters,
IMatrix  hessian 
) [inline, virtual]

Calculates the second derivative (Hessian) of this function at the specified parameters in the reference coordinate system.

Parameters:
parametersVector of parameters (in the REFERENCE system) where Hessian is evaluated.
hessianMatrix where second derivatives (Hessian) are stored.

Implements IG::Num::ScalarFunctionBase.

Reimplemented in IG::Script::ScritpScalarFunctionExample::Container::Function.


Member Data Documentation


Property Documentation

virtual int IG::Lib::LoadableScalarFunctionBase::NumParameters [get]

Gets number of parameters of the current user defined scalar function.

override string IG::Lib::LoadableScalarFunctionBase::Name [get, set]

Function name.

Reimplemented from IG::Num::ScalarFunctionUntransformedBase.

override string IG::Lib::LoadableScalarFunctionBase::Description [get, set]

Function description.

Reimplemented from IG::Num::ScalarFunctionUntransformedBase.

override bool IG::Lib::LoadableScalarFunctionBase::ValueDefined [get, set]

Whether calculation of value is implemented for the current scalar function.

Reimplemented from IG::Num::ScalarFunctionUntransformedBase.

override bool IG::Lib::LoadableScalarFunctionBase::GradientDefined [get, set]

Whether calculation of gradient is implemeted for the current scalar function.

Reimplemented from IG::Num::ScalarFunctionUntransformedBase.

override bool IG::Lib::LoadableScalarFunctionBase::HessianDefined [get, set]

Whether calculation of second derivative is implemented for the current function.

Reimplemented from IG::Num::ScalarFunctionUntransformedBase.


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