eLynx SDK v3.3.0
C++ image processing API reference
Public Member Functions

eLynx::Math::IFunctionNL Class Reference

Interface to function of n-variables and m-parameters, which is non-linear in the meaning of parameters, and thus can't be directly used for least squares fitting. More...

#include <IFunctionNL.h>

Inheritance diagram for eLynx::Math::IFunctionNL:
eLynx::Math::BellCurve eLynx::Math::BellSurface

List of all members.

Public Member Functions

virtual ~IFunctionNL ()
 Default virtual destructor implementation.
virtual uint32 GetVariablesCount () const =0
 Returns the number of function idependent variables (x, y, ...)
virtual uint32 GetParametersCount () const =0
 Returns the number of function parameters or coefficients.
virtual double Evaluate (const IVector &iVars, const IVector &iParams) const =0
 Evaluates the function value for given values of variables and parameters.
virtual double EvalDerivativeByParam (const IVector &iVars, const IVector &iParams, uint32 iByParam) const =0
 Evaluates the function derivative by given parameter.

Detailed Description

Interface to function of n-variables and m-parameters, which is non-linear in the meaning of parameters, and thus can't be directly used for least squares fitting.

There are no restrictions on linearity or non-linearity of variables. This interface is used to provide a function to the system of iterative non-linear function fitting. You need to be able to evaluate function derivatives by its parameters to implement this interface. Typical example of function for this interface is gaussian (bell) curve or it's 3D alternative.


Member Function Documentation

virtual double eLynx::Math::IFunctionNL::EvalDerivativeByParam ( const IVector iVars,
const IVector iParams,
uint32  iByParam 
) const [pure virtual]

Evaluates the function derivative by given parameter.

Both variable values and actual parameter values are given as vectors. The sizes of vectors must match the function specification. For example, for function y=e^(a*x)+b, the derivative by parameter a is y=x*e^(a*x), while derivative by parameter b is y = 1.

Parameters:
iVarsthe vector of independent variables values
iParamsthe vector of function parameters values
iByParamthe index of the parameter to compute derivative by
Returns:
the value of the function derivative by given parameter

Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.

virtual double eLynx::Math::IFunctionNL::Evaluate ( const IVector iVars,
const IVector iParams 
) const [pure virtual]

Evaluates the function value for given values of variables and parameters.

Both values and parameters are given as vectors. The sizes of vectors must match the function specification.

Parameters:
iVarsthe vector of independent variables values
iParamsthe vector of function parameters values
Returns:
the function value for given inputs

Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.

virtual uint32 eLynx::Math::IFunctionNL::GetParametersCount (  ) const [pure virtual]

Returns the number of function parameters or coefficients.

Optimal values of these parameters are computed in the process of non-linear function fitting.

Returns:
the number of function parameters

Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.

virtual uint32 eLynx::Math::IFunctionNL::GetVariablesCount (  ) const [pure virtual]

Returns the number of function idependent variables (x, y, ...)

Returns:
the number of function variables

Implemented in eLynx::Math::BellCurve, and eLynx::Math::BellSurface.


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

Generated on Thu Dec 9 2010 by doxygen 1.7.2