casacore
Public Member Functions | Protected Attributes | List of all members
casacore::CompiledParam< T > Class Template Reference

More...

#include <CompiledParam.h>

Public Member Functions

 CompiledParam ()
 The default constructor – no functions, no parameters, nothing, the function operator returns a 0. More...
 
 CompiledParam (const CompiledParam< T > &other)
 Make this object a (deep) copy of other. More...
 
template<class W >
 CompiledParam (const CompiledParam< W > &other)
 
CompiledParam< T > & operator= (const CompiledParam< T > &other)
 Make this object a (deep) copy of other. More...
 
virtual ~CompiledParam ()
 Destructor. More...
 
virtual const Stringname () const
 Give name of function. More...
 
Bool setFunction (const String &newFunction)
 Set a function. More...
 
const StringerrorMessage () const
 Return the error message of the compilation. More...
 
const FuncExpressionfunction () const
 Return the expression. More...
 
virtual uInt ndim () const
 Returns the dimension of function. More...
 
const StringgetText () const
 Returns the text of the function string. More...
 
const FuncExpressiongetFunctionPtr () const
 Returns the function pointer (for debugging) More...
 
- Public Member Functions inherited from casacore::Function< T, U >
 Function ()
 Constructors. More...
 
 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. More...
 
uInt nparameters () const
 Returns the number of parameters. More...
 
virtual U eval (FunctionArg x) const =0
 Evaluate the function object. More...
 
T & operator[] (const uInt n)
 Manipulate the nth parameter (0-based) with no index check. More...
 
const T & operator[] (const uInt n) const
 
virtual U operator() () const
 Evaluate this function object at xor at x, y. More...
 
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. More...
 
const Boolmask (const uInt n) const
 
const FunctionParam< T > & parameters () const
 Return the parameter interface. More...
 
FunctionParam< T > & parameters ()
 
const Vector< ArgType > & argp () const
 Get arg_p and parset_p. More...
 
Bool parsetp () const
 
void lockParam ()
 Compiler cannot always find the correct 'const' version of parameter access. More...
 
void unlockParam ()
 
virtual void setMode (const RecordInterface &mode)
 get/set the function mode. More...
 
virtual void getMode (RecordInterface &mode) const
 
virtual Bool hasMode () const
 return True if the implementing function supports a mode. More...
 
ostream & print (ostream &os) const
 Print the function (i.e. More...
 
virtual Function< T, U > * clone () const =0
 Return a copy of this object from the heap. More...
 
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. More...
 
virtual T operator() (const FunctionTraits< T >::ArgType &x) const=0
 Map a Domain x into a Range y value. More...
 
- Public Member Functions inherited from casacore::Functional< Vector< FunctionTraits< T >::ArgType >, T >
virtual ~Functional ()
 Destructor. More...
 
virtual T operator() (const Vector< FunctionTraits< T >::ArgType > &x) const=0
 Map a Domain x into a Range y value. More...
 

Protected Attributes

uInt ndim_p
 Number of dimensions of underlying function. More...
 
String msg_p
 Possible error message. More...
 
String text_p
 Input text string. More...
 
FuncExpressionfunctionPtr_p
 Pointer to function. More...
 
- Protected Attributes inherited from casacore::Function< T, U >
FunctionParam< T > param_p
 The parameters and masks. More...
 
Vector< ArgTypearg_p
 Aid for non-contiguous argument storage. More...
 
Bool parset_p
 Indicate parameter written. More...
 
Bool locked_p
 Indicate that parameters are expected to be locked from changing. More...
 

Additional Inherited Members

- Public Types inherited from casacore::Function< T, U >
typedef FunctionTraits< T >::ArgType ArgType
 
typedef const ArgTypeFunctionArg
 

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

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;

will produce the output:

Template Type Argument Requirements (T)

Motivation

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

To Do

Definition at line 106 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.

◆ CompiledParam() [2/3]

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

Make this object a (deep) copy of other.

◆ CompiledParam() [3/3]

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

Definition at line 116 of file CompiledParam.h.

◆ ~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 138 of file CompiledParam.h.

References casacore::CompiledParam< T >::msg_p.

◆ 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 150 of file CompiledParam.h.

References casacore::CompiledParam< T >::functionPtr_p.

◆ getText()

template<class T >
const String& casacore::CompiledParam< T >::getText ( ) const
inline

Returns the text of the function string.

Definition at line 147 of file CompiledParam.h.

References casacore::CompiledParam< T >::text_p.

◆ name()

template<class T >
virtual const String& casacore::CompiledParam< T >::name ( ) const
inlinevirtual

Give name of function.

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

Definition at line 130 of file CompiledParam.h.

◆ ndim()

template<class T >
virtual uInt casacore::CompiledParam< T >::ndim ( ) const
inlinevirtual

Returns the dimension of function.

Implements casacore::Function< T, U >.

Definition at line 144 of file CompiledParam.h.

References casacore::CompiledParam< T >::ndim_p.

◆ operator=()

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

Make this object a (deep) copy of other.

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 163 of file CompiledParam.h.

Referenced by casacore::CompiledParam< T >::getFunctionPtr().

◆ msg_p

template<class T >
String casacore::CompiledParam< T >::msg_p
protected

Possible error message.

Definition at line 158 of file CompiledParam.h.

Referenced by casacore::CompiledParam< T >::errorMessage().

◆ ndim_p

template<class T >
uInt casacore::CompiledParam< T >::ndim_p
protected

Number of dimensions of underlying function.

Definition at line 156 of file CompiledParam.h.

Referenced by casacore::CompiledParam< T >::ndim().

◆ text_p

template<class T >
String casacore::CompiledParam< T >::text_p
protected

Input text string.

Definition at line 160 of file CompiledParam.h.

Referenced by casacore::CompiledParam< T >::getText().


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