Loading...
Searching...
No Matches
casacore::CompiledParam< T > Class Template Reference
Functionals_module_internal_classes

More...

`#include <CompiledParam.h>`

## Public Member Functions

| CompiledParam ()
| The default constructor – no functions, no parameters, nothing, the function operator returns a 0.
| CompiledParam (const CompiledParam< T > &other)
| Make this object a (deep) copy of other.
template<class W>
| CompiledParam (const CompiledParam< W > &other)
CompiledParam< T > & | operator= (const CompiledParam< T > &other)
| Make this object a (deep) copy of other.
virtual | ~CompiledParam ()
| Destructor.
virtual const String & | name () const
| Give name of function.
Bool | setFunction (const String &newFunction)
| Set a function.
const String & | errorMessage () const
| Return the error message of the compilation.
const FuncExpression & | function () const
| Return the expression.
virtual uInt | ndim () const
| Returns the dimension of function.
const String & | getText () const
| Returns the text of the function string.
const FuncExpression * | getFunctionPtr () const
| Returns the function pointer (for debugging).
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
Bool & | mask (const uInt n)
| Manipulate the mask associated with the nth parameter (e.g.
const Bool & | mask (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.
virtual Function< T, U > * | clone () const =0
| 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::Functional< FunctionTraits< T >::ArgType, T >
virtual | ~Functional ()
| Destructor.
virtual T | operator() (const FunctionTraits< T >::ArgType &x) const=0
| Map a Domain x into a Range y value.
Public Member Functions inherited from casacore::Functional< Vector< FunctionTraits< T >::ArgType >, T >
virtual | ~Functional ()
| Destructor.
virtual T | operator() (const Vector< FunctionTraits< T >::ArgType > &x) const=0
| Map a Domain x into a Range y value.

## Protected Attributes

uInt | ndim_p
| Number of dimensions of underlying function.
String | msg_p
| Possible error message.
String | text_p
| Input text string.
FuncExpression * | functionPtr_p
| Pointer to function.
Protected Attributes inherited from casacore::Function< T, U >
FunctionParam< T > | param_p
| The parameters and masks.
Vector< ArgType > | arg_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.

## Additional Inherited Members

Public Types inherited from casacore::Function< T, U >
typedef FunctionTraits< T >::ArgType | ArgType
typedef const ArgType * | FunctionArg

## Detailed Description

template<class T>
class casacore::CompiledParam< T >

Parameters for a compiled string function object.

### Intended use:

Internal

### Review Status

Test programs:
  tFuncExpression

### Prerequisite

- FuncExpression class

### Synopsis

Given a string describing an expression (see FuncExpression class for details of the expression), the CompiledFunctionclass wraps this expression as a Function (see Function class) which can be used in all places where functions can be used (e.g. see Fitting).

This class takes care of the CompiledFunction parameter interface (see FunctionParam class for details).

### Example

In the following example a Gaussian profile with three parameters (height, center and halfwidth) is specified and its value and derivatives with respect to the parameters are calculated at x=2.

// the Gaussian
CompiledFunction<Double> prof("p0*exp(-((x-p1)/p2)^2)");
prof[0] = 2; // the height
prof[1] = 1.5; // the center
prof[2] = 1; // the width
Vector<Double> x(3);
X[0] = 1.9; x[1] = 2.0; x[2] = 2.1;
cout << "Gaussian at x=" << x << ": " << prof(x) << endl;
// and an automatic derivative one:
CompiledFunction<AutoDiff<Double> > profad("p0*exp(-((x-p1)/p2)^2)");
cout << "Gaussian at x=" << x << ": " << profad(x) << endl;
casacore::CompiledFunction
Definition CompiledFunction.h:128
casacore::Vector
Definition Vector.h:82

will produce the output:

### Template Type Argument Requirements (T)

- T should have standard numerical operators and functions.
- To obtain derivatives, the derivatives should be defined.

### Motivation

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

### To Do

- Nothing I know of

Definition at line 103 of file CompiledParam.h.

## Constructor & Destructor Documentation

## CompiledParam() [1/3]

template<class T>

casacore::CompiledParam< T >::CompiledParam | ( |  | ) |

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

Referenced by casacore::CompiledFunction< T >::CompiledFunction(), casacore::CompiledFunction< T >::CompiledFunction(), casacore::CompiledFunction< T >::CompiledFunction(), CompiledParam(), CompiledParam(), and operator=().

## CompiledParam() [2/3]

template<class T>

casacore::CompiledParam< T >::CompiledParam | ( | const CompiledParam< T > & | other | ) |

Make this object a (deep) copy of other.

References CompiledParam().

## CompiledParam() [3/3]

template<class T>
template<class W>

casacore::CompiledParam< T >::CompiledParam | ( | const CompiledParam< W > & | other | ) |

inline

Definition at line 113 of file CompiledParam.h.

References CompiledParam(), errorMessage(), casacore::Function< T, U >::Function(), functionPtr_p, getFunctionPtr(), getText(), msg_p, ndim(), ndim_p, and text_p.

## ~CompiledParam()

template<class T>

virtual casacore::CompiledParam< T >::~CompiledParam | ( |  | ) |

virtual

Destructor.

## Member Function Documentation

## errorMessage()

template<class T>

const String & casacore::CompiledParam< T >::errorMessage | ( |  | ) | const

inline

Return the error message of the compilation.

Definition at line 135 of file CompiledParam.h.

References msg_p.

Referenced by CompiledParam().

## function()

template<class T>

const FuncExpression & casacore::CompiledParam< T >::function | ( |  | ) | const

Return the expression.

## getFunctionPtr()

template<class T>

const FuncExpression * casacore::CompiledParam< T >::getFunctionPtr | ( |  | ) | const

inline

Returns the function pointer (for debugging).

Definition at line 147 of file CompiledParam.h.

References functionPtr_p.

Referenced by CompiledParam().

## getText()

template<class T>

const String & casacore::CompiledParam< T >::getText | ( |  | ) | const

inline

Returns the text of the function string.

Definition at line 144 of file CompiledParam.h.

References text_p.

Referenced by CompiledParam().

## name()

template<class T>

virtual const String & casacore::CompiledParam< T >::name | ( |  | ) | const

inline virtual

Give name of function.

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

Definition at line 127 of file CompiledParam.h.

## ndim()

template<class T>

virtual uInt casacore::CompiledParam< T >::ndim | ( |  | ) | const

inline virtual

Returns the dimension of function.

Implements casacore::Function< T, U >.

Definition at line 141 of file CompiledParam.h.

References ndim_p.

Referenced by CompiledParam().

## operator=()

template<class T>

CompiledParam< T > & casacore::CompiledParam< T >::operator= | ( | const CompiledParam< T > & | other | ) |

Make this object a (deep) copy of other.

References CompiledParam().

Referenced by casacore::CompiledFunction< T >::operator=().

## setFunction()

template<class T>

Bool casacore::CompiledParam< T >::setFunction | ( | const String & | newFunction | ) |

Set a function.

The return will be False (and an error message will be set) if a compilation error occurs

## Member Data Documentation

## functionPtr_p

template<class T>

FuncExpression* casacore::CompiledParam< T >::functionPtr_p

protected

Pointer to function.

Definition at line 160 of file CompiledParam.h.

Referenced by CompiledParam(), and getFunctionPtr().

## msg_p

template<class T>

String casacore::CompiledParam< T >::msg_p

protected

Possible error message.

Definition at line 155 of file CompiledParam.h.

Referenced by CompiledParam(), and errorMessage().

## ndim_p

template<class T>

uInt casacore::CompiledParam< T >::ndim_p

protected

Number of dimensions of underlying function.

Definition at line 153 of file CompiledParam.h.

Referenced by CompiledParam(), and ndim().

## text_p

template<class T>

String casacore::CompiledParam< T >::text_p

protected

Input text string.

Definition at line 157 of file CompiledParam.h.

Referenced by CompiledParam(), and getText().

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

- scimath/Functionals/CompiledParam.h