IGLib 1.4
The IGLib base library for development of numerical, technical and business applications.
|
Quadratic function of 3 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...
Public Member Functions | |
Func3dQuadratic (mat3 hessian, vec3 gradient0, double scalarTerm) | |
Creation of a quadratic 3D scalar function. WARNING:Matrix argument is interpreted as Hessian, i.e. twice the matrix of quadratic coefficients. | |
override double | Value (vec3 parameters) |
Calculates and returns value of the current 3D quadratic function. | |
override vec3 | Gradient (vec3 parameters) |
Calculates and returns gradient of the current 3D quadratic function. | |
override mat3 | Hessian (vec3 parameters) |
Calculates and returns Hessian of the current 3D quadratic function and returns it (in the form of a mat3 struct). | |
Static Public Member Functions | |
static int | GetNumConstants () |
Returns the number of scalar constants that specify the current function. | |
Properties | |
mat3 | HessianMatrix [get, set] |
Twice the matrix of quadratic coefficients (Hessian matrix of second derivatives). | |
vec3 | 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 | |
Func3dQuadratic () | |
Private Attributes | |
mat3 | _G |
vec3 | _b |
double | _c |
Quadratic function of 3 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;
IG::Num::Func3dQuadratic::Func3dQuadratic | ( | ) | [inline, private] |
IG::Num::Func3dQuadratic::Func3dQuadratic | ( | mat3 | hessian, |
vec3 | gradient0, | ||
double | scalarTerm | ||
) | [inline] |
Creation of a quadratic 3D scalar function. WARNING:Matrix argument is interpreted as Hessian, i.e. twice the matrix of quadratic coefficients.
static int IG::Num::Func3dQuadratic::GetNumConstants | ( | ) | [inline, static] |
Returns the number of scalar constants that specify the current function.
override double IG::Num::Func3dQuadratic::Value | ( | vec3 | parameters | ) | [inline] |
Calculates and returns value of the current 3D quadratic function.
Implements IG::Num::IFunc3d.
Calculates and returns gradient of the current 3D quadratic function.
<returnreturns>Gradient of the current 3D scalar function (in form of the vec3 struct)</returnreturns>
Implements IG::Num::IFunc3d.
Calculates and returns Hessian of the current 3D quadratic function and returns it (in the form of a mat3 struct).
Implements IG::Num::IFunc3d.
mat3 IG::Num::Func3dQuadratic::_G [private] |
vec3 IG::Num::Func3dQuadratic::_b [private] |
double IG::Num::Func3dQuadratic::_c [private] |
mat3 IG::Num::Func3dQuadratic::HessianMatrix [get, set] |
Twice the matrix of quadratic coefficients (Hessian matrix of second derivatives).
vec3 IG::Num::Func3dQuadratic::Gradient0 [get, set] |
Vector of linear coefficients (equal to gradient of the function at x=0).
double IG::Num::Func3dQuadratic::ScalarTerm [get, set] |
Scalar additive constant.