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

IG::Num::Func2dQuadratic Class Reference

Quadratic function of 2 variables. Function is evaluated according to q(x) = (1/2)*x^T*G*x + b^T*x + c where x is vector of parameters, G is constant Hessian matrix, b is the vector of linear coefficients (gradient at x=0) and c is the scalar term (function value at x=0). More...

Inheritance diagram for IG::Num::Func2dQuadratic:
Collaboration diagram for IG::Num::Func2dQuadratic:

List of all members.

Public Member Functions

 Func2dQuadratic (mat2 hessian, vec2 gradient0, double scalarTerm)
 Creation of a quadratic 2D scalar function. WARNING:Matrix argument is interpreted as Hessian, i.e. twice the matrix of quadratic coefficients.
override double Value (vec2 parameters)
 Calculates and returns value of the current 2D quadratic function.
override vec2 Gradient (vec2 parameters)
 Calculates and returns gradient of the current 2D quadratic function.
override mat2 Hessian (vec2 parameters)
 Calculates and returns Hessian of the current 2D quadratic function and returns it (in the form of a mat2 struct).

Static Public Member Functions

static int GetNumConstants ()
 Returns the number of scalar constants that specify the current function.

Properties

mat2 HessianMatrix [get, set]
 Twice the matrix of quadratic coefficients (Hessian matrix of second derivatives).
vec2 Gradient0 [get, set]
 Vector of linear coefficients (equal to gradient of the function at x=0).
double ScalarTerm [get, set]
 Scalar additive constant.

Private Member Functions

 Func2dQuadratic ()

Private Attributes

mat2 _G
vec2 _b
double _c

Detailed Description

Quadratic function of 2 variables.

Function is evaluated according to q(x) = (1/2)*x^T*G*x + b^T*x + c where x is vector of parameters, G is constant Hessian matrix, b is the vector of linear coefficients (gradient at x=0) and c is the scalar term (function value at x=0).

$A Igor Aug09;


Constructor & Destructor Documentation

IG::Num::Func2dQuadratic::Func2dQuadratic ( ) [inline, private]
IG::Num::Func2dQuadratic::Func2dQuadratic ( mat2  hessian,
vec2  gradient0,
double  scalarTerm 
) [inline]

Creation of a quadratic 2D scalar function. WARNING:Matrix argument is interpreted as Hessian, i.e. twice the matrix of quadratic coefficients.

Parameters:
hessianMatrix of second derivatives (Hessian).
gradient0Vector of linear coefficients - gradient of quadratic function at x = 0.
scalarTermConstant term.

Member Function Documentation

static int IG::Num::Func2dQuadratic::GetNumConstants ( ) [inline, static]

Returns the number of scalar constants that specify the current function.

override double IG::Num::Func2dQuadratic::Value ( vec2  parameters) [inline]

Calculates and returns value of the current 2D quadratic function.

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

Implements IG::Num::IFunc2d.

override vec2 IG::Num::Func2dQuadratic::Gradient ( vec2  parameters) [inline]

Calculates and returns gradient of the current 2D quadratic 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::IFunc2d.

override mat2 IG::Num::Func2dQuadratic::Hessian ( vec2  parameters) [inline]

Calculates and returns Hessian of the current 2D quadratic function and returns it (in the form of a mat2 struct).

Implements IG::Num::IFunc2d.


Member Data Documentation

double IG::Num::Func2dQuadratic::_c [private]

Property Documentation

mat2 IG::Num::Func2dQuadratic::HessianMatrix [get, set]

Twice the matrix of quadratic coefficients (Hessian matrix of second derivatives).

vec2 IG::Num::Func2dQuadratic::Gradient0 [get, set]

Vector of linear coefficients (equal to gradient of the function at x=0).

double IG::Num::Func2dQuadratic::ScalarTerm [get, set]

Scalar additive constant.


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