IGLib  1.7.2
The IGLib base library for development of numerical, technical and business applications.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
IG.Num.Func2dFromScalarScript Class Reference

Scalar function of 2 variables that is generated from expressions for evaluation of function value, gradient components, etc. More...

+ Inheritance diagram for IG.Num.Func2dFromScalarScript:
+ Collaboration diagram for IG.Num.Func2dFromScalarScript:

Public Member Functions

 Func2dFromScalarScript (string varName1, string varName2, string valueExpression, string[] gradientExpressions, string[][] hessianExpressions)
 Constructs a scalar function of 2 variables from the specified scalar function of a vector argument. More...
 
virtual IScalarFunction CreateScalarFunction (string varName1, string varName2, string valueExpression, string[] gradientExpressions, string[][] hessianExpressions)
 Creates a scalar function form expressions that specify evaluation of function value, gradient, and Hessian. More...
 
- Public Member Functions inherited from IG.Num.Func2dFromScalarFunction
 Func2dFromScalarFunction (IScalarFunction originalFunction)
 Constructs a scalar function of 2 variables from the specified scalar function of a vector argument. More...
 
override double Value (double x, double y)
 Calculates and returns value of the current 2D scalar function. More...
 
override void Gradient (double x, double y, out double gradx, out double grady)
 Calculates gradient of the current 2D scalar function and returns its components through the specified output variables. More...
 
override void Hessian (double x, double y, out double dxx, out double dyy, out double dxy)
 Calculates Hessian of the current 2D scalar function and returns its component through the specified output variables. More...
 
- Public Member Functions inherited from IG.Num.Func2dBase
 Func2dBase ()
 
virtual double Value (vec2 parameters)
 Calculates and returns value of the current 2D scalar function. More...
 
virtual vec2 Gradient (vec2 parameters)
 Calculates and returns gradient of the current 2D scalar function. More...
 
virtual mat2 Hessian (vec2 parameters)
 Calculates and returns Hessian of the current 2D scalar function and returns it (in the form of a mat2 struct). More...
 
override double Value (IVector parameters)
 Returns the value of the current function at the specified parameters. More...
 
override void GradientPlain (IVector parameters, IVector gradient)
 Calculates first order derivatives (gradient) of this function at the specified parameters. WARNING: Plain function, does not check consistency of arguments. More...
 
override void HessianPlain (IVector parameters, IMatrix hessian)
 Calculates the second derivative (Hessian matrix) of this function at the specified parameters. WARNING: Plain function, does not check consistency of arguments. More...
 
- Public Member Functions inherited from IG.Num.ScalarFunctionUntransformedBase
virtual void Evaluate (IScalarFunctionResults data)
 Evaluates whatever needs to be evaluated and stores the results on the specified storage object. More...
 
virtual void Gradient (IVector parameters, ref IVector gradient)
 Calculates first order derivatives (gradient) of this function at the specified parameters. More...
 
virtual void Hessian (IVector parameters, ref IMatrix hessian)
 Calculates the second derivative (Hessian matrix) of this function at the specified parameters. More...
 
virtual void NumericalGradientForwardPlain (IVector x, IVector stepSizes, IVector gradient)
 Calculates numerical derivatives (gradient) of this function. Forward difference formula is normally used. More...
 
void NumericalGradientForward (IVector x, IVector stepSizes, ref IVector gradient)
 Calculates numerical derivatives (gradient) of this function. Forward difference formula is normally used. More...
 
void NumericalGradientForward (IVector x, double stepSize, ref IVector gradient)
 Calculates numerical derivatives (gradient) of this function. Forward difference formula is used. More...
 
virtual void NumericalGradientCentralPlain (IVector x, IVector stepSizes, IVector gradient)
 Calculates numerical derivatives (gradient) of this function. Forward difference formula is normally used. More...
 
void NumericalGradientCentral (IVector x, IVector stepSizes, ref IVector gradient)
 Calculates numerical derivatives (gradient) of this function. Forward difference formula is normally used. More...
 
void NumericalGradientCentral (IVector x, double stepSize, ref IVector gradient)
 Calculates numerical derivatives (gradient) of this function. Forward difference formula is normally used. More...
 
virtual void NumericalHessianForwardPlain (IVector x, IVector stepSizes, IVector aux, IMatrix hessian)
 Calculates numerical second derivatives (Hessian) of this function. Forward difference formula is normally used. WARNING: Dimensions of vector arguments must match. This function does not check for consistency of argument dimensions. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianForward (IVector x, IVector stepSizes, ref IVector aux, ref IMatrix hessian)
 Calculates numerical second derivatives (Hessian) of this function. Forward difference formula is normally used. REMARK: if auxiliary vector or result matrix don't have correct dimensions or they are not allocated, then allocation is performed first. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianForward (IVector x, double stepSize, ref IVector aux, ref IMatrix hessian)
 Calculates numerical second derivatives (Hessian) of this function. Forward difference formula is normally used. REMARK: if auxiliary vector or result matrix don't have correct dimensions or they are not allocated, then allocation is performed first. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianCentralPlain (IVector x, IVector stepSizes, IVector aux1, IVector aux2, IMatrix hessian)
 Calculates numerical second derivatives (Hessian) of this function. Forward difference formula is normally used. WARNING: Dimensions of vector arguments must match. This function does not check for consistency of argument dimensions. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianCentral (IVector x, IVector stepSizes, ref IVector aux1, ref IVector aux2, ref IMatrix hessian)
 Calculates numerical second derivatives (Hessian) of this function. Forward difference formula is normally used. REMARK: if auxiliary vector or result matrix don't have correct dimensions or they are not allocated, then allocation is performed first. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianCentral (IVector x, double stepSize, ref IVector aux1, ref IVector aux2, ref IMatrix hessian)
 Calculates numerical second derivatives (Hessian) of this function. Forward difference formula is normally used. REMARK: if auxiliary vector or result matrix don't have correct dimensions or they are not allocated, then allocation is performed first. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianCentralPlain (IVector x, IVector stepSizes, IVector aux1, IVector aux2, IMatrix hessian, bool useAnalyticalGradient)
 Calculates numerical second derivatives (Hessian) of this function by the central difference formula. WARNING: Dimensions of vector arguments must match. This function does not check for consistency of argument dimensions. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianCentral (IVector x, IVector stepSizes, ref IVector aux1, ref IVector aux2, ref IMatrix hessian, bool useAnalyticalGradient)
 Calculates numerical second derivatives (Hessian) of this function by the central difference formula. REMARK: if auxiliary vector or result matrix don't have correct dimensions or they are not allocated, then allocation is performed first. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
virtual void NumericalHessianCentral (IVector x, double stepSize, ref IVector aux1, ref IVector aux2, ref IMatrix hessian, bool useAnalyticalGradient)
 Calculates numerical second derivatives (Hessian) of this function. Forward difference formula is normally used. REMARK: if auxiliary vector or result matrix don't have correct dimensions or they are not allocated, then allocation is performed first. REMARK: Vector x is changed during operation, but is set to initial value before function returns (unless an exception is thrown). More...
 
void TestSpeed (IVector parameters, int numEvaluations, bool randomPerturbations, double relativePerturbationSize, bool calcValue, bool calcGradient, bool calcHessian, bool writeLastResult)
 Tests speed of evaluation of the current scalar function and writes results to the console. More...
 
void TestGradient (IVector parameters, IVector stepSizes, int stepReductionFactor, int numStepReductions, bool checkNumerical, bool writeErrorComponents, bool writeGradientComponents)
 Tests the calculation of gradients of the current scalar function. More...
 
void TestGradient (IVector parameters, IVector stepSizes, int stepReductionFactor, int numStepReductions, bool checkNumerical, bool writeErrorComponents, bool writeGradientComponents, bool useCentralDifference)
 Tests the calculation of gradients of the current scalar function. More...
 
void TestHessian (IVector parameters, IVector stepSizes, int stepReductionFactor, int numStepReductions, bool checkNumerical, bool writeErrorComponents, bool writeHessianComponents)
 Tests the calculation of Hessians of the current scalar function. More...
 
void TestHessian (IVector parameters, IVector stepSizes, int stepReductionFactor, int numStepReductions, bool checkNumerical, bool writeErrorComponents, bool writeHessianComponents, bool useCentralDifference)
 Tests the calculation of Hessians of the current scalar function. More...
 
void Test (IVector from, IVector to, int numProbes, IVector stepSizes, double tolerance, bool testDerivatives, bool testSecondDerivatives, bool printDifferences, bool printResults)
 Performs numerical tests on the function, with output written to the console. Derivatives and second derivatives are tested and compared to numerical derivatives. More...
 
void Test (IVector from, IVector to, int numProbes, IVector stepSizes, double tolerance)
 Performs numerical tests on the function, with output written to the console. Derivatives and second derivatives are tested and compared to numerical derivatives. This method tests first and second order derivatives, prints differences between analytical and numerical values to the console, and prints reports where absolute differences exceed rolerance. More...
 
void Test (IVector from, IVector to, int numProbes, double stepSize, double tolerance, bool testDerivatives, bool testSecondDerivatives, bool printDifferences, bool printResults)
 Performs numerical tests on the function, with output written to the console. Derivatives and second derivatives are tested and compared to numerical derivatives. More...
 
void Test (IVector from, IVector to, int numProbes, double stepSize, double tolerance)
 Performs numerical tests on the function, with output written to the console. Derivatives and second derivatives are tested and compared to numerical derivatives. More...
 

Static Public Member Functions

static IScalarFunction CreateScalarFunction (string[] variableNames, string valueExpression, string[] gradientExpressions, string[][] hessianExpressions)
 Creates and returns a scalar function that is formed on basis of expressions that define how function value and eventually gradient and hessian are calculated (if defined). More...
 
- Static Public Member Functions inherited from IG.Num.Func2dBase
static void Example ()
 Example of use of a 2D function. More...
 

Protected Member Functions

 Func2dFromScalarScript ()
 
 Func2dFromScalarScript (IScalarFunction originalFunction)
 Constructs a scalar function of 2 variables from the specified scalar function of a vector argument. More...
 
- Protected Member Functions inherited from IG.Num.Func2dFromScalarFunction
 Func2dFromScalarFunction ()
 

Additional Inherited Members

- Static Protected Member Functions inherited from IG.Num.Func2dBase
static void TestFunction (IFunc2d f)
 Demonstrates use of a 2D function by printing to the console 5 values and gradients of the function on the line connecting the two points (0, 0, 0) and (1, 1, 1). More...
 
static void TestFunction (IFunc2d f, double xmin, double xmax, double ymin, double ymax, int numPoints)
 Demonstrates use of a 2D function by printing to the console some values and gradients of the function on the line connecting the two specified points. More...
 
- Protected Attributes inherited from IG.Num.ScalarFunctionUntransformedBase
string _name
 
string _description
 
- Properties inherited from IG.Num.Func2dFromScalarFunction
IScalarFunction OriginalFunction [get, protected set]
 Scalar function of vector argument that is used for evaluation of the current function value, gradient, and Hessian. More...
 
- Properties inherited from IG.Num.Func2dBase
override bool ValueDefined [get, protected set]
 Whether calculation of function value is defined. Defaulet is true. More...
 
override bool GradientDefined [get, protected set]
 Whether calculation of functio ngradient is defined. Default is false. More...
 
override bool HessianDefined [get, protected set]
 Whether calculation of function Hessian is defined. Default is false. More...
 
int NumParam [get]
 Gets number of parameters. More...
 
- Properties inherited from IG.Num.ScalarFunctionUntransformedBase
virtual string Name [get, set]
 Returns a short name of thecurrent function. More...
 
virtual string Description [get, set]
 Returns a short description of the current function. More...
 
abstract bool ValueDefined [get, protected set]
 Tells whether value of the function is defined by implementation. More...
 
abstract bool GradientDefined [get, protected set]
 Tells whether the first derivative is defined for this function (by implementation, not mathematically) More...
 
abstract bool HessianDefined [get, protected set]
 Tells whether the second derivative is defined for this function (by implementation, not mathematically) More...
 
- Properties inherited from IG.Num.IScalarFunctionUntransformed
string Name [get]
 Returns a short name of the function. More...
 
string Description [get]
 Returns a short description of the function. More...
 
bool ValueDefined [get]
 Tells whether value of the function is defined by implementation. More...
 
bool GradientDefined [get]
 Tells whether the first derivative is defined for this function (by implementation, not mathematically) More...
 
bool HessianDefined [get]
 Tells whether the second derivative is defined for this function (by implementation, not mathematically) More...
 
- Properties inherited from IG.Num.IFunc2d
bool ValueDefined [get]
 Whether calculation of function value is defined. More...
 
bool GradientDefined [get]
 Whether calculation of function ngradient is defined. More...
 
bool HessianDefined [get]
 Whether calculation of function Hessian is defined. More...
 

Detailed Description

Scalar function of 2 variables that is generated from expressions for evaluation of function value, gradient components, etc.

$A Igor Oct11;

Constructor & Destructor Documentation

IG.Num.Func2dFromScalarScript.Func2dFromScalarScript ( )
inlineprotected
IG.Num.Func2dFromScalarScript.Func2dFromScalarScript ( IScalarFunction  originalFunction)
inlineprotected

Constructs a scalar function of 2 variables from the specified scalar function of a vector argument.

Parameters
scalarFunctionOriginal scalar function of vector argument used for evaluation.
IG.Num.Func2dFromScalarScript.Func2dFromScalarScript ( string  varName1,
string  varName2,
string  valueExpression,
string[]  gradientExpressions,
string  hessianExpressions[][] 
)
inline

Constructs a scalar function of 2 variables from the specified scalar function of a vector argument.

Parameters
scalarFunctionOriginal scalar function of vector argument used for evaluation.

Member Function Documentation

virtual IScalarFunction IG.Num.Func2dFromScalarScript.CreateScalarFunction ( string  varName1,
string  varName2,
string  valueExpression,
string[]  gradientExpressions,
string  hessianExpressions[][] 
)
inlinevirtual

Creates a scalar function form expressions that specify evaluation of function value, gradient, and Hessian.

Parameters
varName1
varName2
valueExpression
gradientExpressions
HessianExpressions
Returns

References IG.Num.Func2dFromScalarScript.CreateScalarFunction().

Referenced by IG.Num.Func2dFromScalarScript.CreateScalarFunction(), and IG.Num.Func3dFromScript.CreateScalarFunction().

static IScalarFunction IG.Num.Func2dFromScalarScript.CreateScalarFunction ( string[]  variableNames,
string  valueExpression,
string[]  gradientExpressions,
string  hessianExpressions[][] 
)
inlinestatic

Creates and returns a scalar function that is formed on basis of expressions that define how function value and eventually gradient and hessian are calculated (if defined).

Parameters
variableNames
valueExpression
gradientExpressions
hessianExpressions
Returns

References IG.Lib.ScalarFunctionLoader.CreateScalarFunction(), IG.Lib.ScalarFunctionLoader.IndependentVariableNames, IG.Lib.ScalarFunctionLoader.NumParameters, and IG.Lib.ScalarFunctionLoader.ValueDefinitionString.


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