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

- Main Page
- Namespaces
- Classes
- Files

- Class List
- Class Index
- Class Hierarchy
- Class Members

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Events Macros
Public Member Functions | Properties | Private Member Functions | Private Attributes | List of all members
IG.Num.ScalarFunctionRadial Class Reference

Radial scalar functions. More...

Inheritance diagram for IG.Num.ScalarFunctionRadial:
[legend]
Collaboration diagram for IG.Num.ScalarFunctionRadial:
[legend]

## Public Member Functions
| ScalarFunctionRadial (IRealFunction function, IAffineTransformation transf)
| Constructor. Creates a new radial function without specifying coordinate transformation. More...
| ScalarFunctionRadial (IRealFunction function)
| Constructor. Creates a new radial function without specifying coordinate transformation. More...
virtual void | SetFunction (IRealFunction function1d)
| Changes the 1D function that defines the current radial function. More...
override double | ReferenceValue (IVector x)
| Returns the value of this function at the specified parameter. More...
override void | ReferenceGradientPlain (IVector x, IVector gradient)
| Returns the first derivative of this function at the specified parameter. More...
override void | ReferenceHessianPlain (IVector x, IMatrix hessian)
| Returns the second derivative (Hessian) of this function at the specified arameter. More...
Public Member Functions inherited from IG.Num.ScalarFunctionBase
| ScalarFunctionBase (IAffineTransformation transf)
| Constructs a scalar function that is identical to some reference funciton acting on affine transformed parameters. More...
override double | Value (IVector x)
| Returns the value of this function at the specified parameter. More...
override void | GradientPlain (IVector x, IVector gradient)
| Returns the first derivative of this function at the specified parameter. More...
override void | HessianPlain (IVector x, IMatrix hessian)
| Returns the second derivative (Hessian) of this function at the specified arameter. 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...

## Properties
virtual IRealFunction | Function`[get, protected set]`
| Gets or sets a real-valued function of one variable that defines the current radial function. More...
double | Epsilon`[get, set]`
| Gets or sets a small number used as criteria of where to calculate things (especially derivatives) in a special way in order to overcome singularities in expressions. For example, some expressions contain divisions by vector norm. When vector norm is close to 0, this results in nearly singular terms, which must be replaced by suitable limits. More...
override string | Name`[get]`
| Returns a short name of the function. More...
override string | Description`[get]`
| Returns a short description of the function. More...
override bool | ValueDefined`[get, protected set]`
| Tells whether value of the function is defined by implementation. More...
override bool | GradientDefined`[get, protected set]`
| Tells whether the first derivative is defined for this function (by implementation, not mathematically) More...
override 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.ScalarFunctionBase
virtual IAffineTransformation | Transformation`[get, set]`
| Transformation of parameters. Actual function is evaluated as some reference function evaluated at inverse affine-transformed 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.IScalarFunction
IAffineTransformation | Transformation`[get, set]`
| Affine transformation of parameters. Actual function is evaluated as reference function evaluated at inverse affine transformed parameters. More...

## Private Member Functions
| ScalarFunctionRadial ()

## Private Attributes
IRealFunction | _function
double | _epsilon

## Additional Inherited Members
Protected Member Functions inherited from IG.Num.ScalarFunctionBase
| ScalarFunctionBase ()
| Default constructor for scalar functions of affine transformed parameters. Constructs untransformed reference function. More...
Protected Attributes inherited from IG.Num.ScalarFunctionBase
IVector | _refParam
IVector | _refGrad
IMatrix | _refHess
Protected Attributes inherited from IG.Num.ScalarFunctionUntransformedBase
string | _name
string | _description

## Detailed Description

Radial scalar functions.

$A Igor xx Nov10;

## Constructor & Destructor Documentation

IG.Num.ScalarFunctionRadial.ScalarFunctionRadial | ( |  | ) |
| inline private

IG.Num.ScalarFunctionRadial.ScalarFunctionRadial | ( | IRealFunction | function,
|  | IAffineTransformation | transf
| ) |  |
| inline

Constructor. Creates a new radial function without specifying coordinate transformation.

Parameters

  function | A real-valued function of one parameter that defined the radial function.
  transf | Affine transformation of coordinates. Actual function is calculated as some reference function evaluated at inverse affine transformed parameters. If null then transformation is not applied.

IG.Num.ScalarFunctionRadial.ScalarFunctionRadial | ( | IRealFunction | function | ) |
| inline

Constructor. Creates a new radial function without specifying coordinate transformation.

Parameters

  function | A real-valued function of one parameter that defined the radial function.

## Member Function Documentation

virtual void IG.Num.ScalarFunctionRadial.SetFunction | ( | IRealFunction | function1d | ) |
| inline virtual

Changes the 1D function that defines the current radial function.

Warning: the function should be set only exceptionally. Do not do this when immutability is required.

Parameters

  function1d | Function to be set.

override double IG.Num.ScalarFunctionRadial.ReferenceValue | ( | IVector | x | ) |
| inline virtual

Returns the value of this function at the specified parameter.

Implements IG.Num.ScalarFunctionBase.

override void IG.Num.ScalarFunctionRadial.ReferenceGradientPlain | ( | IVector | x,
|  | IVector | gradient
| ) |  |
| inline virtual

Returns the first derivative of this function at the specified parameter.

Parameters

  x | Vector of parameters where derivatives are evaluated.
  gradient | Vector where first derivatives (gradient) are stored.

Implements IG.Num.ScalarFunctionBase.

References IG.Num.VectorBase.CopyPlain(), IG.Num.IVector.GetNew(), and IG.Num.VectorBase.MultiplyPlain().

override void IG.Num.ScalarFunctionRadial.ReferenceHessianPlain | ( | IVector | x,
|  | IMatrix | hessian
| ) |  |
| inline virtual

Returns the second derivative (Hessian) of this function at the specified arameter.

Parameters

  x | Vector of parameters where derivatives are evaluated.
  hessian | Matrix where second derivatives (Hessian) are stored.

Implements IG.Num.ScalarFunctionBase.

## Member Data Documentation

IRealFunction IG.Num.ScalarFunctionRadial._function
| private

double IG.Num.ScalarFunctionRadial._epsilon
| private

## Property Documentation

virtual IRealFunction IG.Num.ScalarFunctionRadial.Function
| get protected set

Gets or sets a real-valued function of one variable that defines the current radial function.

double IG.Num.ScalarFunctionRadial.Epsilon
| get set

Gets or sets a small number used as criteria of where to calculate things (especially derivatives) in a special way in order to overcome singularities in expressions. For example, some expressions contain divisions by vector norm. When vector norm is close to 0, this results in nearly singular terms, which must be replaced by suitable limits.

override string IG.Num.ScalarFunctionRadial.Name
| get

Returns a short name of the function.

override string IG.Num.ScalarFunctionRadial.Description
| get

Returns a short description of the function.

override bool IG.Num.ScalarFunctionRadial.ValueDefined
| get protected set

Tells whether value of the function is defined by implementation.

override bool IG.Num.ScalarFunctionRadial.GradientDefined
| get protected set

Tells whether the first derivative is defined for this function (by implementation, not mathematically)

override bool IG.Num.ScalarFunctionRadial.HessianDefined
| get protected set

Tells whether the second derivative is defined for this function (by implementation, not mathematically)

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

- igbase/numeric/FunctionScalarRadial.cs