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.Func3d2dBase Class Referenceabstract

Base class for 3D vector functions of 2 variables (base for implementation of IFunc3d2d interface). More...

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

Classes

class  ComponentFunction1
 Class that represents a scalar function of 2 variables that is the first component of the specified 3D vector function of 2 variables. More...
 
class  ComponentFunction2
 Class that represents a scalar function of 2 variables that is the first component of the specified 3D vector function of 2 variables. More...
 
class  ComponentFunction3
 Class that represents a scalar function of 2 variables that is the third component of the specified 3D vector function of 2 variables. More...
 
class  ComponentFunctionBase
 Base function for component functions, provides internal variable for vector function. More...
 

Public Member Functions

abstract double Value1 (double x, double y)
 Calculates and returns value of the first component of the current function. More...
 
abstract double Value2 (double x, double y)
 Calculates and returns value of the second component of the current function. More...
 
abstract double Value3 (double x, double y)
 Calculates and returns value of the third component of the current function. More...
 
virtual double Value1 (vec2 parameters)
 Calculates and returns value of the first component of the current function. More...
 
virtual double Value2 (vec2 parameters)
 Calculates and returns value of the second component of the current function. More...
 
virtual double Value3 (vec2 parameters)
 Calculates and returns value of the third component of the current function. More...
 
abstract void Gradient1 (double x, double y, out double gradx, out double grady)
 Calculates gradient of the first component of the current function and returns its components through the specified output variables. More...
 
abstract void Gradient2 (double x, double y, out double gradx, out double grady)
 Calculates gradient of the second component of the current function and returns its components through the specified output variables. More...
 
abstract void Gradient3 (double x, double y, out double gradx, out double grady)
 Calculates gradient of the third component of the current function and returns its components through the specified output variables. More...
 
virtual vec2 Gradient1 (vec2 parameters)
 Calculates and returns gradient of the first component of the current function. More...
 
virtual vec2 Gradient2 (vec2 parameters)
 Calculates and returns gradient of the second component of the current function. More...
 
virtual vec2 Gradient3 (vec2 parameters)
 Calculates and returns gradient of the third component of the current function. More...
 
abstract void Hessian1 (double x, double y, out double dxx, out double dyy, out double dxy)
 Calculates Hessian of the first component of the current function and returns its component through the specified output variables. More...
 
abstract void Hessian2 (double x, double y, out double dxx, out double dyy, out double dxy)
 Calculates Hessian of the second component of the current function and returns its component through the specified output variables. More...
 
abstract void Hessian3 (double x, double y, out double dxx, out double dyy, out double dxy)
 Calculates Hessian of the third component of the current function and returns its component through the specified output variables. More...
 
virtual mat2 Hessian1 (vec2 parameters)
 Calculates and returns Hessian of the first component of the current function and returns it (in the form of a mat2 struct). More...
 
virtual mat2 Hessian2 (vec2 parameters)
 Calculates and returns Hessian of the second component of the current function and returns it (in the form of a mat2 struct). More...
 
virtual mat2 Hessian3 (vec2 parameters)
 Calculates and returns Hessian of the third component of the current function and returns it (in the form of a mat2 struct). More...
 

Static Public Member Functions

static void Example ()
 Example of use of a 2D function. More...
 

Protected Member Functions

 Func3d2dBase ()
 

Static Protected Member Functions

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

Properties

virtual bool ValueDefined [get, protected set]
 Whether calculation of function value is defined. Defaulet is true. More...
 
virtual bool GradientDefined [get, protected set]
 Whether calculation of functio ngradient is defined. Default is false. More...
 
virtual bool HessianDefined [get, protected set]
 Whether calculation of function Hessian is defined. Default is false. More...
 
int NumParam [get]
 Gets number of parameters. More...
 
int NumValues [get]
 Gets number of components of the current vector function. More...
 
virtual Func2dBase Component1 [get]
 Returns the scalar function that represents the first component of the current 3D vector function of 2 variables. More...
 
virtual Func2dBase Component2 [get]
 Returns the scalar function that represents the second component of the current 3D vector function of 2 variables. More...
 
virtual Func2dBase Component3 [get]
 Returns the scalar function that represents the third component of the current 3D vector function of 2 variables. More...
 
- Properties inherited from IG.Num.IFunc3d2d
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...
 
Func2dBase Component1 [get]
 Returns the scalar function that represents the first component of the current 3D vector function of 2 variables. More...
 
Func2dBase Component2 [get]
 Returns the scalar function that represents the second component of the current 3D vector function of 2 variables. More...
 
Func2dBase Component3 [get]
 Returns the scalar function that represents the third component of the current 3D vector function of 2 variables. More...
 

Private Attributes

bool _valueDefined = true
 
bool _gradientDefined = false
 
bool _hessianDefined = false
 
Func2dBase _comp1
 
Func2dBase _comp2
 
Func2dBase _comp3
 

Detailed Description

Base class for 3D vector functions of 2 variables (base for implementation of IFunc3d2d interface).

$A Igor Oct09;

Constructor & Destructor Documentation

IG.Num.Func3d2dBase.Func3d2dBase ( )
inlineprotected

Member Function Documentation

abstract double IG.Num.Func3d2dBase.Value1 ( double  x,
double  y 
)
pure virtual

Calculates and returns value of the first component of the current function.

Parameters
xFirst parameter.
ySecond parameter.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dExamples.ParametricSurface.

abstract double IG.Num.Func3d2dBase.Value2 ( double  x,
double  y 
)
pure virtual

Calculates and returns value of the second component of the current function.

Parameters
xFirst parameter.
ySecond parameter.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dExamples.ParametricSurface.

abstract double IG.Num.Func3d2dBase.Value3 ( double  x,
double  y 
)
pure virtual

Calculates and returns value of the third component of the current function.

Parameters
xFirst parameter.
ySecond parameter.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dExamples.ParametricSurface.

virtual double IG.Num.Func3d2dBase.Value1 ( vec2  parameters)
inlinevirtual

Calculates and returns value of the first component of the current function.

Parameters
parametersVector of function parameters (in form of the Value) struct.
Returns
Function value.

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

virtual double IG.Num.Func3d2dBase.Value2 ( vec2  parameters)
inlinevirtual

Calculates and returns value of the second component of the current function.

Parameters
parametersVector of function parameters (in form of the Value) struct.
Returns
Function value.

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

virtual double IG.Num.Func3d2dBase.Value3 ( vec2  parameters)
inlinevirtual

Calculates and returns value of the third component of the current function.

Parameters
parametersVector of function parameters (in form of the Value) struct.
Returns
Function value.

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

abstract void IG.Num.Func3d2dBase.Gradient1 ( double  x,
double  y,
out double  gradx,
out double  grady 
)
pure virtual

Calculates gradient of the first component of the current function and returns its components through the specified output variables.

Parameters
xFirst parameter.
ySecond parameter.
gradxFirst component of the returned gradient.
gradySecond component of the returned gradient.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dBaseNoGradient.

abstract void IG.Num.Func3d2dBase.Gradient2 ( double  x,
double  y,
out double  gradx,
out double  grady 
)
pure virtual

Calculates gradient of the second component of the current function and returns its components through the specified output variables.

Parameters
xFirst parameter.
ySecond parameter.
gradxFirst component of the returned gradient.
gradySecond component of the returned gradient.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dBaseNoGradient.

abstract void IG.Num.Func3d2dBase.Gradient3 ( double  x,
double  y,
out double  gradx,
out double  grady 
)
pure virtual

Calculates gradient of the third component of the current function and returns its components through the specified output variables.

Parameters
xFirst parameter.
ySecond parameter.
gradxFirst component of the returned gradient.
gradySecond component of the returned gradient.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dBaseNoGradient.

virtual vec2 IG.Num.Func3d2dBase.Gradient1 ( vec2  parameters)
inlinevirtual

Calculates and returns gradient of the first component of the current function.

Parameters
parametersVector of parameters (in form of the vec2 struct)

<returnreturns>Gradient of the current 2D scalar function (in form of the vec2 struct)</returnreturns>

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

virtual vec2 IG.Num.Func3d2dBase.Gradient2 ( vec2  parameters)
inlinevirtual

Calculates and returns gradient of the second component of the current function.

Parameters
parametersVector of parameters (in form of the vec2 struct)

<returnreturns>Gradient of the current 2D scalar function (in form of the vec2 struct)</returnreturns>

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

virtual vec2 IG.Num.Func3d2dBase.Gradient3 ( vec2  parameters)
inlinevirtual

Calculates and returns gradient of the third component of the current function.

Parameters
parametersVector of parameters (in form of the vec2 struct)

<returnreturns>Gradient of the current 2D scalar function (in form of the vec2 struct)</returnreturns>

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

abstract void IG.Num.Func3d2dBase.Hessian1 ( double  x,
double  y,
out double  dxx,
out double  dyy,
out double  dxy 
)
pure virtual

Calculates Hessian of the first component of the current function and returns its component through the specified output variables.

Parameters
xFirst parameter.
ySecond parameter.
dxxComponent 1-1 of the calculated Hessian.
dyyComponent 2-2 of the calculated Hessian.
dxyComponent 1-2 of the calculated Hessian.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dBaseNoGradient, and IG.Num.Func3d2dBaseNoHessian.

abstract void IG.Num.Func3d2dBase.Hessian2 ( double  x,
double  y,
out double  dxx,
out double  dyy,
out double  dxy 
)
pure virtual

Calculates Hessian of the second component of the current function and returns its component through the specified output variables.

Parameters
xFirst parameter.
ySecond parameter.
dxxComponent 1-1 of the calculated Hessian.
dyyComponent 2-2 of the calculated Hessian.
dxyComponent 1-2 of the calculated Hessian.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dBaseNoGradient, and IG.Num.Func3d2dBaseNoHessian.

abstract void IG.Num.Func3d2dBase.Hessian3 ( double  x,
double  y,
out double  dxx,
out double  dyy,
out double  dxy 
)
pure virtual

Calculates Hessian of the third component of the current function and returns its component through the specified output variables.

Parameters
xFirst parameter.
ySecond parameter.
dxxComponent 1-1 of the calculated Hessian.
dyyComponent 2-2 of the calculated Hessian.
dxyComponent 1-2 of the calculated Hessian.

Implements IG.Num.IFunc3d2d.

Implemented in IG.Num.Func3d2dBaseNoGradient, and IG.Num.Func3d2dBaseNoHessian.

virtual mat2 IG.Num.Func3d2dBase.Hessian1 ( vec2  parameters)
inlinevirtual

Calculates and returns Hessian of the first component of the current function and returns it (in the form of a mat2 struct).

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

virtual mat2 IG.Num.Func3d2dBase.Hessian2 ( vec2  parameters)
inlinevirtual

Calculates and returns Hessian of the second component of the current function and returns it (in the form of a mat2 struct).

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

virtual mat2 IG.Num.Func3d2dBase.Hessian3 ( vec2  parameters)
inlinevirtual

Calculates and returns Hessian of the third component of the current function and returns it (in the form of a mat2 struct).

Implements IG.Num.IFunc3d2d.

References IG.Num.vec2.x, and IG.Num.vec2.y.

static void IG.Num.Func3d2dBase.TestFunction ( IFunc2d  f)
inlinestaticprotected

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

Parameters
fFunction whose values and gradients are evaluated and printed.
static void IG.Num.Func3d2dBase.TestFunction ( IFunc2d  f,
double  xmin,
double  xmax,
double  ymin,
double  ymax,
int  numPoints 
)
inlinestaticprotected

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.

Parameters
fFunction whose values and gradients are evaluated and printed.
xminMin. x.
xmaxMax. x.
yminMin. y.
ymaxMax. y.
numPointsNumber of points in which function values and gradients are printed.

References IG.Num.IFunc2d.Gradient(), IG.Num.IFunc2d.GradientDefined, IG.Num.IFunc2d.Value(), and IG.Num.IFunc2d.ValueDefined.

static void IG.Num.Func3d2dBase.Example ( )
inlinestatic

Example of use of a 2D function.

Member Data Documentation

bool IG.Num.Func3d2dBase._valueDefined = true
private
bool IG.Num.Func3d2dBase._gradientDefined = false
private
bool IG.Num.Func3d2dBase._hessianDefined = false
private
Func2dBase IG.Num.Func3d2dBase._comp1
private
Func2dBase IG.Num.Func3d2dBase._comp2
private
Func2dBase IG.Num.Func3d2dBase._comp3
private

Property Documentation

virtual bool IG.Num.Func3d2dBase.ValueDefined
getprotected set

Whether calculation of function value is defined. Defaulet is true.

virtual bool IG.Num.Func3d2dBase.GradientDefined
getprotected set

Whether calculation of functio ngradient is defined. Default is false.

virtual bool IG.Num.Func3d2dBase.HessianDefined
getprotected set

Whether calculation of function Hessian is defined. Default is false.

int IG.Num.Func3d2dBase.NumParam
get

Gets number of parameters.

int IG.Num.Func3d2dBase.NumValues
get

Gets number of components of the current vector function.

virtual Func2dBase IG.Num.Func3d2dBase.Component1
get

Returns the scalar function that represents the first component of the current 3D vector function of 2 variables.

virtual Func2dBase IG.Num.Func3d2dBase.Component2
get

Returns the scalar function that represents the second component of the current 3D vector function of 2 variables.

virtual Func2dBase IG.Num.Func3d2dBase.Component3
get

Returns the scalar function that represents the third component of the current 3D vector function of 2 variables.


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