User Documentation
RAVL, Recognition And Vision Library
Ravl - Pattern Recognition - Numerical Modeling - FuncOrthPolynomialC

FuncOrthPolynomialC::FuncOrthPolynomialC(istream &)
FuncOrthPolynomialC::FuncOrthPolynomialC(BinIStreamC &)
FuncLinearCoeffC::SetTransform(const MatrixC &)
FuncLinearCoeffC::MakeInput(const VectorC &) const
FuncLinearCoeffC::MakeJacobianInput(const VectorC &,IntT) const
FuncLinearCoeffC::NumberCoeffs(UIntT) const
FunctionC::Apply(const VectorC &) const
FunctionC::Apply(const SampleC &)
FunctionC::operator ()(const VectorC &) const
FunctionC::Jacobian(const VectorC &) const
FunctionC::Evaluate(const VectorC &)
FunctionC::InputSize(void) const
FunctionC::OutputSize(void) const
RCHandleVC::Save(ostream &) const
RCHandleVC::Save(BinOStreamC &) const
RCHandleVC::operator >>(istream &,RCHandleVC &)
RCHandleVC::operator >>(BinIStreamC &,RCHandleVC &)
RCHandleC::operator =(const RCHandleC &)
RCHandleC::DeepCopy(UIntT) const
RCHandleC::operator ==(const RCHandleC &) const
RCHandleC::operator !=(const RCHandleC &) const
RCHandleC::Hash(void) const
RCHandleC::IsValid(void) const
RCHandleC::IsHandleType(const DT &) const
RCHandleC::CheckHandleType(const DT &) const
RCHandleC::References(void) const
RCHandleC::operator <<(ostream &,const RCHandleC &)
RCHandleC::operator >>(istream &,RCHandleC &)

Orthogonal Polynomial function.
include "Ravl/PatternRec/FuncOrthPolynomial.hh"
User Level:Normal
In Scope:RavlN

It provides a class implementation functions of the form Y=f(X) where each element of Y is an k'th polynomial of the elements of X.

For example, when a second order polynomial is selected and X and Y have 2 and 3 elements respectively and A is the matrix of model weights then:

 Y[0] = A[0][0] + A[0][1]X[0] + A[0][2]X[0]^2 + A[0][3]X[1] + A[0][4]X[1]^2
 Y[1] = A[1][0] + A[1][1]X[0] + A[1][2]X[0]^2 + A[1][3]X[1] + A[1][4]X[1]^2
 Y[2] = A[2][0] + A[2][1]X[0] + A[2][2]X[0]^2 + A[2][3]X[1] + A[2][4]X[1]^2
Note that in this model there are no cross parameter terms regardless of the model order selected, ie each term is only a power of an individual element of X.

Parent Classes: Methods:
Default constructor.
Creates an invalid handle.

FuncOrthPolynomialC(istream & strm)
Load from stream.

FuncOrthPolynomialC(BinIStreamC & strm)
Load from binary stream.

FuncOrthPolynomialC(int inSize,int outSize,UIntT order)
Construct an orthogonal polynomial of given 'order'.

#include "Ravl/PatternRec/FuncLinearCoeff.hh"
bool SetTransform(const MatrixC & a)
Attempt to set transform matrix.

VectorC MakeInput(const VectorC & X) const
Expand vector to linear coefficients.

VectorC MakeJacobianInput(const VectorC & X,IntT i) const
Expand vector to linear coefficients.

UIntT NumberCoeffs(UIntT inputSize) const
Calculate the number of coefficents for a given input size.

#include "Ravl/PatternRec/Function.hh"
VectorC Apply(const VectorC & data) const
Apply function to 'data'

SampleC<VectorC> Apply(const SampleC<VectorC> & data)
Apply transform to whole dataset.

VectorC operator ()(const VectorC & X) const
Evaluate Y=f(X)

MatrixC Jacobian(const VectorC & X) const
Calculate Jacobian matrix at X
Performs numerical estimation of the Jacobian using differences. This function has and should be overloaded for all cases where the Jacobian can be calculated analytically.

VectorMatrixC Evaluate(const VectorC & X)
Evalate the function and its jacobian at the same time.
This method defaults to calling 'Apply' and 'Jacobian' sperately.

UIntT InputSize() const
Size of input vector

UIntT OutputSize() const
Size of output vector

UIntT InputSize(UIntT inSize)
Set the input size.
This is for use of designer classes, changing the input size of an existing function has undefined effects.

UIntT OutputSize(UIntT outSize)
Set the output size.
This is for use of designer classes, changing the output size of an existing function has undefined effects.

#include "Ravl/RCHandleV.hh"
bool Save(ostream & out) const
Save to stream 'out'.

bool Save(BinOStreamC & out) const
Save to binary stream 'out'.

RCAbstractC Abstract()
Create an abstract handle.

istream & operator >>(istream & strm,RCHandleVC<FunctionBodyC> & obj)

BinIStreamC & operator >>(BinIStreamC & strm,RCHandleVC<FunctionBodyC> & obj)

#include "Ravl/RefCounter.hh"
const RCHandleC<FunctionBodyC> & operator =(const RCHandleC<FunctionBodyC> & oth)
Assign handle.

RCHandleC<FunctionBodyC> DeepCopy(UIntT levels = ((UIntT))) const
Do a deep copy of the object.

bool operator ==(const RCHandleC<FunctionBodyC> & oth) const
Are handles to the same object ?

bool operator !=(const RCHandleC<FunctionBodyC> & oth) const
Are handles to different objects ?

UIntT Hash() const
Default hash function.
This hashes on the address of the body.

bool IsValid() const
Test if this is a valid handle.

void Invalidate()
Invalidate this handle.
Unattaches the body from the handle.

bool IsHandleType(const DT &) const
Is handle of given type ?

void CheckHandleType(const DT & dummy) const
Check handle type. Throw an expception if not.

UIntT References() const
Find the number of references to the body of this object.

ostream & operator <<(ostream & strm,const RCHandleC<FunctionBodyC> & obj)

istream & operator >>(istream & strm,RCHandleC<FunctionBodyC> & obj)

Maintainer:Robert Crida and Charles Galambos, Created: 21/4/1998, Documentation by CxxDoc: Tue Aug 13 09:59:02 2002