IGLib
1.7.2
The IGLib base library for development of numerical, technical and business applications.
|
Base class for real functions of real variable. More...
Public Member Functions | |
abstract double | Value (double x) |
Returns the value of this function at the specified parameter. More... | |
abstract double | Derivative (double x) |
Returns the first derivative of this function at the specified parameter. More... | |
abstract double | Derivative (double x, int order) |
Returns the derivative of the given order of this function at the specified parameter. More... | |
abstract bool | HigherDerivativeDefined (int order) |
Tells whether the derivative of the given order is defined for this function (by implementation, not mathematically) More... | |
abstract double | SecondDerivative (double x) |
Returns the second derivative of the given order of this function at the specified arameter. More... | |
abstract double | Integral (double x) |
Returns integral from 0 to x of the function. Throws an exception if the integral is not defined. More... | |
abstract double | Inverse (double y) |
Returns Inverse of the current function applied to function argument. Throws an exception if the inverse function is not defined. More... | |
void | Tabulate (double from, double to, int numPoints) |
Tabulates the current function and its first and second derivatives (when available) on the specified interval, in the specified number of points. More... | |
void | Tabulate (double from, double to, int numPoints, bool printDerivatives) |
Tabulates the current function and its first and eventually second derivatives (when available) on the specified interval, in the specified number of points. More... | |
void | Tabulate (double from, double to, int numPoints, bool printDerivatives, bool printSecondDerivatives) |
Tabulates the current function and eventually its first and second derivatives (when available) on the specified interval, in the specified number of points. More... | |
virtual double | NumericalIntegral (double from, double to, int numintervals) |
Calculates numerical integral of this function. Simpson's formula is used. More... | |
virtual double | NumericalDerivative (double x, double stepsize) |
Calculates numerical derivative of this function. Central difference formula is used. More... | |
virtual double | NumericalSecondDerivative (double x, double stepsize) |
Calculates numerical second order derivative of this function. Central difference formula is used. More... | |
virtual void | Test () |
Performs numerical tests with parameters adjusted for specific function. This function can be be overridden in derived classes, however its current implementation may be relatively well suited for most weighting and basic functions. More... | |
virtual void | Test (double from, double to, int numProbes, double stepSize, double tolerance) |
Performs some numerical tests on the current function, such as correctness of first and second derivatives, integral and inverse of the function. Results are written to the standard output. Whenever a numerical result does not match the corresponding analytical value calculated by the function, a visible notification is written. More... | |
override string | ToString () |
Static Public Member Functions | |
static void | ExampleTests () |
Protected Attributes | |
string | _name |
string | _description |
Properties | |
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... | |
virtual RealFunctionBase | DerivativeFunction [get] |
Returns a function object that represents a derivative of this function. Returns null if this is not implemented. More... | |
virtual RealFunctionBase | IntegralFunction [get] |
Returns a function object that represents a definite integral of this function from 0 to 1. Returns null if not implemented. More... | |
virtual RealFunctionBase | InverseFunction [get] |
Returns a function object that represents an inverse function of this function. Returns null if not implemented. More... | |
abstract bool | ValueDefined [get, set] |
Tells whether value of the function is defined by implementation. More... | |
abstract bool | DerivativeDefined [get, set] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically) More... | |
abstract bool | SecondDerivativeDefined [get, set] |
Tells whether the second derivative is defined for this function (by implementation, not mathematically) More... | |
abstract bool | IntegralDefined [get, set] |
Tells whether analytical itegral of the function is defined or not. More... | |
abstract bool | InverseDefined [get, set] |
Tells whether analytical inverse function is defined or not. More... | |
Properties inherited from IG.Num.IRealFunction | |
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 | DerivativeDefined [get] |
Tells whether the first derivative is defined for this function (by implementation, not mathematically) More... | |
bool | SecondDerivativeDefined [get] |
Tells whether the second derivative is defined for this function (by implementation, not mathematically) More... | |
bool | IntegralDefined [get] |
Tells whether analytical itegral of the function is defined or not. More... | |
bool | InverseDefined [get] |
Tells whether analytical inverse function is defined or not. More... | |
Base class for real functions of real variable.
A number of predefined functions can be bound in the class Func.
$A Igor xx;
|
pure virtual |
Returns the value of this function at the specified parameter.
Implements IG.Num.IRealFunction.
Implemented in IG.Gr.PlotterZedGraph.ExampleSineFunctionForLissajous, IG.Gr3d.VtkPlotBase.ExampleFunctionTorusKnot, IG.Gr3d.VtkPlotBase.ExampleSineFunctionForLissajous, and IG.Num.RealFunction.
|
pure virtual |
Returns the first derivative of this function at the specified parameter.
Implements IG.Num.IRealFunction.
Implemented in IG.Num.RealFunction.
|
pure virtual |
Returns the derivative of the given order of this function at the specified parameter.
Implements IG.Num.IRealFunction.
Implemented in IG.Num.RealFunction, IG.Num.Func.Constant, and IG.Num.Func.Identity.
|
pure virtual |
Tells whether the derivative of the given order is defined for this function (by implementation, not mathematically)
Implements IG.Num.IRealFunction.
Implemented in IG.Num.Func.Cubic, IG.Num.FunctionPolynomial, IG.Num.Func.WeightPol7, IG.Num.RealFunction, IG.Num.Func.WeightPol5, IG.Num.Func.WeightPol4, IG.Num.Func.Quadratic, IG.Num.Func.Constant, IG.Num.Func.WeightPol3, IG.Num.Func.Identity, IG.Num.Func.WeightReciprocalPower, IG.Num.Func.PenaltyPower, IG.Num.Func.ReciprocalPower, IG.Num.Func.Linear, IG.Lib.LoadableRealFunctionBase, IG.Num.Func.WeightGauss, and IG.Num.Func.Exp.
|
pure virtual |
Returns the second derivative of the given order of this function at the specified arameter.
Implements IG.Num.IRealFunction.
Implemented in IG.Num.RealFunction.
|
pure virtual |
Returns integral from 0 to x of the function. Throws an exception if the integral is not defined.
x | Upper bound of the integral. |
Implements IG.Num.IRealFunction.
Implemented in IG.Num.RealFunction.
|
pure virtual |
Returns Inverse of the current function applied to function argument. Throws an exception if the inverse function is not defined.
Implements IG.Num.IRealFunction.
Implemented in IG.Num.RealFunction.
|
inline |
Tabulates the current function and its first and second derivatives (when available) on the specified interval, in the specified number of points.
from | Left interval bound. |
to | Right interval bound. |
numPoints | Number of points in which the function is calculated. |
Implements IG.Num.IRealFunction.
|
inline |
Tabulates the current function and its first and eventually second derivatives (when available) on the specified interval, in the specified number of points.
from | Left interval bound. |
to | Right interval bound. |
numPoints | Number of points in which the function is calculated. |
printDerivatives | Whether to print the derivatives. |
Implements IG.Num.IRealFunction.
|
inline |
Tabulates the current function and eventually its first and second derivatives (when available) on the specified interval, in the specified number of points.
from | Left interval bound. |
to | Right interval bound. |
numPoints | Number of points in which the function is calculated. |
printDerivatives | Whether to print the derivatives. |
printSecondDerivatives | Whether to print the second derivatives. |
Implements IG.Num.IRealFunction.
|
inlinevirtual |
Calculates numerical integral of this function. Simpson's formula is used.
from | Lower integral limit. |
to | Upper integral limit. |
numintervals | Number of subintervals (1 less thatn the number of evaluation points) |
Implements IG.Num.IRealFunction.
References IG.Num.Numeric.IntegralSimpson().
|
inlinevirtual |
Calculates numerical derivative of this function. Central difference formula is used.
x | Point at which derivative is calculated. |
stepsize | Step size. |
Implements IG.Num.IRealFunction.
References IG.Num.Numeric.DerivativeCD().
|
inlinevirtual |
Calculates numerical second order derivative of this function. Central difference formula is used.
x | Point at which second order derivative is calculated. |
stepsize | Step size. |
Implements IG.Num.IRealFunction.
References IG.Num.Numeric.SecondDerivativeCD().
|
inlinevirtual |
Performs numerical tests with parameters adjusted for specific function. This function can be be overridden in derived classes, however its current implementation may be relatively well suited for most weighting and basic functions.
Referenced by IG.Num.RealFunctionBase.ExampleTests().
|
inlinevirtual |
Performs some numerical tests on the current function, such as correctness of first and second derivatives, integral and inverse of the function. Results are written to the standard output. Whenever a numerical result does not match the corresponding analytical value calculated by the function, a visible notification is written.
from | Lower bound of the interval where tests are performed. |
to | Upper bound of the interval where tests are performed. |
numProbes | Number of points for which evaluations and comparisons are performed. |
stepSize | Step size used for numerical integration and differentiation. |
tolerance | Absolute tolarence for match between analytical and numeriacl values (visible notification is launched whenever difference is larger than tolerance). |
|
inlinestatic |
References IG.Num.Func.GetWeightGauss(), and IG.Num.RealFunctionBase.Test().
|
inline |
|
protected |
|
protected |
|
getset |
Returns a short name of thecurrent function.
|
getset |
Returns a short description of the current function.
|
get |
Returns a function object that represents a derivative of this function. Returns null if this is not implemented.
|
get |
Returns a function object that represents a definite integral of this function from 0 to 1. Returns null if not implemented.
|
get |
Returns a function object that represents an inverse function of this function. Returns null if not implemented.
|
getset |
Tells whether value of the function is defined by implementation.
|
getset |
Tells whether the first derivative is defined for this function (by implementation, not mathematically)
|
getset |
Tells whether the second derivative is defined for this function (by implementation, not mathematically)
|
getset |
Tells whether analytical itegral of the function is defined or not.
|
getset |
Tells whether analytical inverse function is defined or not.