FunctionWrapper.h
Classes
- FunctionWrapper -- Construct nD function objects from C++ functions (full description)
Interface
- Public Members
- FunctionWrapper()
- FunctionWrapper(T(*f)())
- FunctionWrapper(T(*f)( const T&), const Bool isPar)
- FunctionWrapper(T(*f)(const f<T>&), const Bool isPar)
- FunctionWrapper(T(*f)(const T&))
- FunctionWrapper(T(*f)(const T&, const T&), const T &par)
- FunctionWrapper(T(*f)(const T&, const f<T>&), const f<T> &par)
- FunctionWrapper(T(*f)(const f<T>&), const Int dim=1)
- FunctionWrapper(T(*f)(const f<T>&, const T&), const T &par, const uInt dim=1)
- FunctionWrapper(T(*f)(const f<T>&, const f<T>&), const f<T> &par, const uInt dim=1)
- FunctionWrapper(const FunctionWrapper<T> &other)
- FunctionWrapper<T> &operator=(const FunctionWrapper<T> &other)
- virtual ~FunctionWrapper()
- virtual T eval(typename Function<T>::FunctionArg x) const
- virtual uInt ndim() const
- virtual Function<T> *clone() const
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:
- f() no arguments e.g. random number or constant
- f(x) 1-dimensional, e.g. sin(x)
- f(Vectorx) n-dimensional, e.g. sin(x+2y)
Example
Float func(const Vector<Float>& x) {return x(0)*x(1);} // x*y
// Convert C++ functions to Functionals
FunctionWrapper<Float> Func(func,2);
Member Description
Default constructor, to enable arrays
A function with no parameters and no arguments.
FunctionWrapper(T(*f)( const T&), const Bool isPar)
A function with parameter and no arguments
(Note value of isPar irrelevant)
FunctionWrapper(T(*f)(const f<T>&), const Bool isPar)
A function with parameters and no arguments.
(Note value of isPar irrelevant)
Construct a 1-dimensional function with no parameters.
FunctionWrapper(T(*f)(const T&, const T&), const T &par)
Construct a 1-dimensional function with parameter.
FunctionWrapper(T(*f)(const T&, const f<T>&), const f<T> &par)
Construct a 1-dimensional function with parameters.
FunctionWrapper(T(*f)(const f<T>&), const Int dim=1)
Construct an n-dimensional function with no parameters.
FunctionWrapper(T(*f)(const f<T>&, const T&), const T &par, const uInt dim=1)
Construct an n-dimensional function with parameter.
FunctionWrapper(T(*f)(const f<T>&, const f<T>&), const f<T> &par, const uInt dim=1)
Construct an n-dimensional function with parameters.
FunctionWrapper(const FunctionWrapper<T> &other)
Copy constructor (deep copy)
FunctionWrapper<T> &operator=(const FunctionWrapper<T> &other)
Copy assignment (deep copy)
Destructor
virtual T eval(typename Function<T>::FunctionArg x) const
Evaluate the function at x.
virtual uInt ndim() const
Get the dimensionality
Return a copy of this object from the heap. The caller is responsible
for deleting this pointer.