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

More...

#include <FunctionWrapper.h>

Public Member Functions

 FunctionWrapper ()
 Default constructor, to enable arrays. More...
 
 FunctionWrapper (T(*f)())
 A function with no parameters and no arguments. More...
 
 FunctionWrapper (T(*f)(const T &), const Bool isPar)
 A function with parameter and no arguments (Note value of isPar irrelevant) More...
 
 FunctionWrapper (T(*f)(const Vector< T > &), const Bool isPar)
 A function with parameters and no arguments. More...
 
 FunctionWrapper (T(*f)(const T &))
 Construct a 1-dimensional function with no parameters. More...
 
 FunctionWrapper (T(*f)(const T &, const T &), const T &par)
 Construct a 1-dimensional function with parameter. More...
 
 FunctionWrapper (T(*f)(const T &, const Vector< T > &), const Vector< T > &par)
 Construct a 1-dimensional function with parameters. More...
 
 FunctionWrapper (T(*f)(const Vector< T > &), const Int dim=1)
 Construct an n-dimensional function with no parameters. More...
 
 FunctionWrapper (T(*f)(const Vector< T > &, const T &), const T &par, const uInt dim=1)
 Construct an n-dimensional function with parameter. More...
 
 FunctionWrapper (T(*f)(const Vector< T > &, const Vector< T > &), const Vector< T > &par, const uInt dim=1)
 Construct an n-dimensional function with parameters. More...
 
 FunctionWrapper (const FunctionWrapper< T > &other)
 Copy constructor (reference semantics) More...
 
FunctionWrapper< T > & operator= (const FunctionWrapper< T > &other)
 Copy assignment (reference semantics) More...
 
virtual ~FunctionWrapper ()
 Destructor. More...
 
virtual T eval (typename Function< T >::FunctionArg x) const
 Evaluate the function at x. More...
 
virtual uInt ndim () const
 Get the dimensionality. More...
 
virtual Function< T > * clone () const
 Return a copy of this object from the heap. More...
 
- Public Member Functions inherited from casacore::WrapperParam< T >
 WrapperParam ()
 Construct with the given parameters. More...
 
 WrapperParam (const T &par)
 
 WrapperParam (const Vector< T > &par)
 
 WrapperParam (const WrapperParam< T > &other)
 Copy constructor (deep copy) More...
 
WrapperParam< T > & operator= (const WrapperParam< T > &other)
 Copy assignment (deep copy) More...
 
virtual ~WrapperParam ()
 Destructor. More...
 
virtual const Stringname () const
 Give name of function. 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...
 
virtual uInt ndim () const =0
 Returns the number of dimensions of function. 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
 
virtual const Stringname () const
 Specify the name associated with the function (default will be unknown) More...
 
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

CountedPtr< WrapperBase< T > > doit_p
 The function aid object. 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::FunctionWrapper< T >

Construct nD function objects from C++ functions

Intended use:

Public interface

Review Status

Date Reviewed:
1996/02/22

Prerequisite

Synopsis

This class is provided so that user can quickly construct a function object from a C++ function pointer without having to write a function class. The constructor constructs a function object from a function pointer, and an optional parameter list. Parameters are necessary if the function has to be used in a functional fitting process (see GenericL2Fit).

The general function signature is f(x;p), where x represents the arguments, and p the parameters. The allowed signatures of the function include all combinations of arguments and parameters, and are:

Example

Float func(const Vector<Float>& x) {return x(0)*x(1);} // x*y
// Convert C++ functions to Functionals
float Float
Definition: aipstype.h:54

Definition at line 85 of file FunctionWrapper.h.

Constructor & Destructor Documentation

◆ FunctionWrapper() [1/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( )

Default constructor, to enable arrays.

◆ FunctionWrapper() [2/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)()  f)

A function with no parameters and no arguments.

◆ FunctionWrapper() [3/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const T &)  f,
const Bool  isPar 
)

A function with parameter and no arguments (Note value of isPar irrelevant)

◆ FunctionWrapper() [4/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const Vector< T > &)  f,
const Bool  isPar 
)

A function with parameters and no arguments.

(Note value of isPar irrelevant)

◆ FunctionWrapper() [5/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const T &)  f)

Construct a 1-dimensional function with no parameters.

◆ FunctionWrapper() [6/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const T &, const T &)  f,
const T &  par 
)

Construct a 1-dimensional function with parameter.

◆ FunctionWrapper() [7/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const T &, const Vector< T > &)  f,
const Vector< T > &  par 
)

Construct a 1-dimensional function with parameters.

◆ FunctionWrapper() [8/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const Vector< T > &)  f,
const Int  dim = 1 
)

Construct an n-dimensional function with no parameters.

◆ FunctionWrapper() [9/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const Vector< T > &, const T &)  f,
const T &  par,
const uInt  dim = 1 
)

Construct an n-dimensional function with parameter.

◆ FunctionWrapper() [10/11]

template<class T >
casacore::FunctionWrapper< T >::FunctionWrapper ( T(*)(const Vector< T > &, const Vector< T > &)  f,
const Vector< T > &  par,
const uInt  dim = 1 
)

Construct an n-dimensional function with parameters.

◆ FunctionWrapper() [11/11]

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

Copy constructor (reference semantics)

◆ ~FunctionWrapper()

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

Destructor.

Definition at line 122 of file FunctionWrapper.h.

Member Function Documentation

◆ clone()

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

Return a copy of this object from the heap.

The caller is responsible for deleting this pointer.

Implements casacore::Function< T, U >.

Definition at line 136 of file FunctionWrapper.h.

◆ eval()

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

Evaluate the function at x.

◆ ndim()

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

Get the dimensionality.

Implements casacore::Function< T, U >.

◆ operator=()

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

Copy assignment (reference semantics)

Member Data Documentation

◆ doit_p

template<class T >
CountedPtr<WrapperBase<T> > casacore::FunctionWrapper< T >::doit_p
protected

The function aid object.

Definition at line 143 of file FunctionWrapper.h.


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