casacore
Loading...
Searching...
No Matches
Public Member Functions | List of all members
casacore::CombiFunction< T > Class Template Reference

More...

#include <CombiFunction.h>

Public Member Functions

 CombiFunction ()
 The default constructor – no functions, no parameters, nothing, the function operator returns a 0.
 
 CombiFunction (const CombiFunction< T > &other)
 Make this object a (deep) copy of other.
 
 CombiFunction (const CombiFunction< T > &other, Bool)
 
template<class W >
 CombiFunction (const CombiFunction< W > &other)
 
template<class W >
 CombiFunction (const CombiFunction< W > &other, Bool)
 
CombiFunction< T > & operator= (const CombiFunction< T > &other)
 Make this object a (deep) copy of other.
 
virtual ~CombiFunction ()
 Destructor.
 
virtual T eval (typename Function< T >::FunctionArg x) const
 Evaluate the function at x.
 
virtual Function< T > * clone () const
 Return a copy of this object from the heap.
 
virtual Function< typename FunctionTraits< T >::DiffType > * cloneAD () const
 
virtual Function< typename FunctionTraits< T >::BaseType > * cloneNonAD () const
 
- Public Member Functions inherited from casacore::CombiParam< T >
 CombiParam ()
 The default constructor – no functions, no parameters, nothing, the function operator returns a 0.
 
 CombiParam (const CombiParam< T > &other)
 Make this object a (deep) copy of other.
 
 CombiParam (const CombiParam< T > &other, Bool)
 
template<class W >
 CombiParam (const CombiParam< W > &other)
 
template<class W >
 CombiParam (const CombiParam< W > &other, Bool)
 
CombiParam< T > & operator= (const CombiParam< T > &other)
 Make this object a (deep) copy of other.
 
virtual ~CombiParam ()
 Destructor.
 
virtual const Stringname () const
 Give name of function.
 
uInt addFunction (const Function< T > &newFunction)
 Add a function.
 
uInt nFunctions () const
 Return the total number of functions.
 
const Function< T > & function (uInt which) const
 Return a reference to a specific Function in the combination.
 
const Function< T > & function (uInt which)
 
virtual uInt ndim () const
 Returns the dimension of functions in the linear combination.
 
- Public Member Functions inherited from casacore::Function< T, U >
 Function ()
 Constructors.
 
 Function (const uInt n)
 
 Function (const Vector< T > &in)
 
 Function (const FunctionParam< T > &other)
 
template<class W , class X >
 Function (const Function< W, X > &other)
 
virtual ~Function ()
 Destructor.
 
uInt nparameters () const
 Returns the number of parameters.
 
virtual U eval (FunctionArg x) const =0
 Evaluate the function object.
 
T & operator[] (const uInt n)
 Manipulate the nth parameter (0-based) with no index check.
 
const T & operator[] (const uInt n) const
 
virtual U operator() () const
 Evaluate this function object at xor at x, y.
 
virtual U operator() (const ArgType &x) const
 
virtual U operator() (const Vector< ArgType > &x) const
 
virtual U operator() (FunctionArg x) const
 
virtual U operator() (const ArgType &x, const ArgType &y) const
 
virtual U operator() (const ArgType &x, const ArgType &y, const ArgType &z) const
 
Boolmask (const uInt n)
 Manipulate the mask associated with the nth parameter (e.g.
 
const Boolmask (const uInt n) const
 
const FunctionParam< T > & parameters () const
 Return the parameter interface.
 
FunctionParam< T > & parameters ()
 
const Vector< ArgType > & argp () const
 Get arg_p and parset_p.
 
Bool parsetp () const
 
void lockParam ()
 Compiler cannot always find the correct 'const' version of parameter access.
 
void unlockParam ()
 
virtual void setMode (const RecordInterface &mode)
 get/set the function mode.
 
virtual void getMode (RecordInterface &mode) const
 
virtual Bool hasMode () const
 return True if the implementing function supports a mode.
 
ostream & print (ostream &os) const
 Print the function (i.e.
 
- Public Member Functions inherited from casacore::Functional< Domain, Range >
virtual ~Functional ()
 Destructor.
 
virtual Range operator() (const Domain &x) const =0
 Map a Domain x into a Range y value.
 

Additional Inherited Members

- Public Types inherited from casacore::Function< T, U >
typedef FunctionTraits< T >::ArgType ArgType
 
typedef const ArgTypeFunctionArg
 
- Protected Attributes inherited from casacore::CombiParam< T >
uInt ndim_p
 Number of dimensions of underlying functions.
 
PtrBlock< Function< T > * > functionPtr_p
 Pointer to each added function.
 
- Protected Attributes inherited from casacore::Function< T, U >
FunctionParam< T > param_p
 The parameters and masks.
 
Vector< ArgTypearg_p
 Aid for non-contiguous argument storage.
 
Bool parset_p
 Indicate parameter written.
 
Bool locked_p
 Indicate that parameters are expected to be locked from changing.
 

Detailed Description

template<class T>
class casacore::CombiFunction< T >

Form a linear combination of function objects.

Intended use:

Public interface

Review Status

Reviewed By:
UNKNOWN
Date Reviewed:
before2004/08/25
Test programs:
tCombiFunction

Prerequisite

Synopsis

Given N function objects, the class describes a linear combination of the form:

f(x) = a(0)*f(0)(x) + a(1)*f(1)(x) +... + a(N-1)*f(N-1)(x)
size_t N
Axis number.

where a = {a(n)} are parameters. If the combi function is used in a functional fitting process (see LinearFit) these parameters canm be solved for. In all aspects they behave as FunctionParam values.

Member functions are added with the addFunction() method.


Tip: Check CompoundFunction class for a combination of functions behaving as one object;

Example

In the following example a second order polynomial is built from 3 separate polynomials.

Polynomial<Double> constant(0);
Polynomial<Double> linear(1);
constant.setCoefficient(0, 1.0); // 1
linear.setCoefficient(1, 1.0); // x
square[2] = 1.0; // x^2
// form function, e0 + e1*x + e2*x^2
combination.addFunction(constant);
combination.addFunction(linear);
combination.addFunction(square);
uInt addFunction(const Function< T > &newFunction)
Add a function.
TableExprNode square(const TableExprNode &node)
Definition ExprNode.h:1350

Template Type Argument Requirements (T)

Thrown Exceptions

Motivation

This class was created to allow specialization of the evaluation in a simple way.

To Do

Definition at line 111 of file CombiFunction.h.

Constructor & Destructor Documentation

◆ CombiFunction() [1/5]

template<class T >
casacore::CombiFunction< T >::CombiFunction ( )
inline

The default constructor – no functions, no parameters, nothing, the function operator returns a 0.

Definition at line 116 of file CombiFunction.h.

◆ CombiFunction() [2/5]

template<class T >
casacore::CombiFunction< T >::CombiFunction ( const CombiFunction< T > &  other)
inline

Make this object a (deep) copy of other.

Definition at line 119 of file CombiFunction.h.

◆ CombiFunction() [3/5]

template<class T >
casacore::CombiFunction< T >::CombiFunction ( const CombiFunction< T > &  other,
Bool   
)
inline

Definition at line 121 of file CombiFunction.h.

◆ CombiFunction() [4/5]

template<class T >
template<class W >
casacore::CombiFunction< T >::CombiFunction ( const CombiFunction< W > &  other)
inline

Definition at line 124 of file CombiFunction.h.

◆ CombiFunction() [5/5]

template<class T >
template<class W >
casacore::CombiFunction< T >::CombiFunction ( const CombiFunction< W > &  other,
Bool   
)
inline

Definition at line 126 of file CombiFunction.h.

◆ ~CombiFunction()

template<class T >
virtual casacore::CombiFunction< T >::~CombiFunction ( )
inlinevirtual

Destructor.

Definition at line 134 of file CombiFunction.h.

Member Function Documentation

◆ clone()

template<class T >
virtual Function< T > * casacore::CombiFunction< T >::clone ( ) const
inlinevirtual

Return a copy of this object from the heap.

The caller is responsible for deleting the pointer.

Implements casacore::Function< T, U >.

Definition at line 144 of file CombiFunction.h.

◆ cloneAD()

template<class T >
virtual Function< typename FunctionTraits< T >::DiffType > * casacore::CombiFunction< T >::cloneAD ( ) const
inlinevirtual

Reimplemented from casacore::Function< T, U >.

Definition at line 145 of file CombiFunction.h.

◆ cloneNonAD()

template<class T >
virtual Function< typename FunctionTraits< T >::BaseType > * casacore::CombiFunction< T >::cloneNonAD ( ) const
inlinevirtual

Reimplemented from casacore::Function< T, U >.

Definition at line 147 of file CombiFunction.h.

References casacore::True.

◆ eval()

template<class T >
virtual T casacore::CombiFunction< T >::eval ( typename Function< T >::FunctionArg  x) const
virtual

Evaluate the function at x.

◆ operator=()

template<class T >
CombiFunction< T > & casacore::CombiFunction< T >::operator= ( const CombiFunction< T > &  other)
inline

Make this object a (deep) copy of other.

Definition at line 130 of file CombiFunction.h.

References casacore::CombiParam< T >::operator=().


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