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

IG::Num::Func3d2dBase Class Reference

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:

List of all members.

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.
abstract double Value2 (double x, double y)
 Calculates and returns value of the second component of the current function.
abstract double Value3 (double x, double y)
 Calculates and returns value of the third component of the current function.
virtual double Value1 (vec2 parameters)
 Calculates and returns value of the first component of the current function.
virtual double Value2 (vec2 parameters)
 Calculates and returns value of the second component of the current function.
virtual double Value3 (vec2 parameters)
 Calculates and returns value of the third component of the current function.
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.
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.
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.
virtual vec2 Gradient1 (vec2 parameters)
 Calculates and returns gradient of the first component of the current function.
virtual vec2 Gradient2 (vec2 parameters)
 Calculates and returns gradient of the second component of the current function.
virtual vec2 Gradient3 (vec2 parameters)
 Calculates and returns gradient of the third component of the current function.
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.
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.
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.
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).
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).
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).

Static Public Member Functions

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

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

Properties

virtual bool ValueDefined [get, set]
 Whether calculation of function value is defined. Defaulet is true.
virtual bool GradientDefined [get, set]
 Whether calculation of functio ngradient is defined. Default is false.
virtual bool HessianDefined [get, set]
 Whether calculation of function Hessian is defined. Default is false.
int NumParam [get]
 Gets number of parameters.
int NumValues [get]
 Gets number of components of the current vector function.
virtual Func2dBase Component1 [get]
 Returns the scalar function that represents the first component of the current 3D vector function of 2 variables.
virtual Func2dBase Component2 [get]
 Returns the scalar function that represents the second component of the current 3D vector function of 2 variables.
virtual Func2dBase Component3 [get]
 Returns the scalar function that represents the third component of the current 3D vector function of 2 variables.

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 ( ) [inline, protected]

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) [inline, virtual]

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.

virtual double IG::Num::Func3d2dBase::Value2 ( vec2  parameters) [inline, virtual]

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.

virtual double IG::Num::Func3d2dBase::Value3 ( vec2  parameters) [inline, virtual]

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.

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) [inline, virtual]

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.

virtual vec2 IG::Num::Func3d2dBase::Gradient2 ( vec2  parameters) [inline, virtual]

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.

virtual vec2 IG::Num::Func3d2dBase::Gradient3 ( vec2  parameters) [inline, virtual]

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.

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::Func3d2dBaseNoHessian, and IG::Num::Func3d2dBaseNoGradient.

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::Func3d2dBaseNoHessian, and IG::Num::Func3d2dBaseNoGradient.

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::Func3d2dBaseNoHessian, and IG::Num::Func3d2dBaseNoGradient.

virtual mat2 IG::Num::Func3d2dBase::Hessian1 ( vec2  parameters) [inline, virtual]

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.

virtual mat2 IG::Num::Func3d2dBase::Hessian2 ( vec2  parameters) [inline, virtual]

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.

virtual mat2 IG::Num::Func3d2dBase::Hessian3 ( vec2  parameters) [inline, virtual]

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.

static void IG::Num::Func3d2dBase::TestFunction ( IFunc2d  f) [inline, static, protected]

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 
) [inline, static, protected]

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.
static void IG::Num::Func3d2dBase::Example ( ) [inline, static]

Example of use of a 2D function.


Member Data Documentation

bool IG::Num::Func3d2dBase::_valueDefined = true [private]

Property Documentation

virtual bool IG::Num::Func3d2dBase::ValueDefined [get, set]

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

Implements IG::Num::IFunc3d2d.

virtual bool IG::Num::Func3d2dBase::GradientDefined [get, set]

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

Implements IG::Num::IFunc3d2d.

virtual bool IG::Num::Func3d2dBase::HessianDefined [get, set]

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

Implements IG::Num::IFunc3d2d.

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.

Implements IG::Num::IFunc3d2d.

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.

Implements IG::Num::IFunc3d2d.

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.

Implements IG::Num::IFunc3d2d.


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