A holder for Functions to enable record conversions. More...
#include <FunctionHolder.h>
Classes | |
struct | FuncStat |
Structure to hold functional status. More... | |
Public Types | |
enum | Types { GAUSSIAN1D, GAUSSIAN2D, GAUSSIAN3D, GAUSSIANND, HYPERPLANE, POLYNOMIAL, EVENPOLYNOMIAL, ODDPOLYNOMIAL, SINUSOID1D, CHEBYSHEV, BUTTERWORTH, COMBINE, COMPOUND, COMPILED, N_Types } |
Types of functions. More... | |
Public Member Functions | |
FunctionHolder () | |
Creates an empty holder. | |
FunctionHolder (const Function< T > &in) | |
Create from a Function (copy made). | |
FunctionHolder (const FunctionHolder< T > &other) | |
Copy a holder (copy semantics). | |
~FunctionHolder () | |
FunctionHolder & | operator= (const FunctionHolder< T > &other) |
Assignment (copy semantics). | |
Bool | isEmpty () const |
Check the the FunctionHolder holds the specified type. | |
const Vector< String > & | names () const |
Get the known names. | |
const Function< T > & | asFunction () const |
Get a specific Function from the holder (with lifetime as long as holder exists). | |
Bool | addFunction (const Function< T > &fnc) |
Add a function. | |
Types | type () const |
Get the type of currently filled holder. | |
virtual Bool | fromRecord (String &error, const RecordInterface &in) |
Create a Function from a record. | |
virtual Bool | fromString (String &error, const String &in) |
Initialise the class from a String representation. | |
template<class U > | |
Bool | getRecord (String &error, Function< U > *&fn, const RecordInterface &in) |
virtual Bool | toRecord (String &error, RecordInterface &out) const |
Create a record from a Function. | |
virtual const String & | ident () const |
Get identification of record. | |
Private Member Functions | |
void | init () const |
Initialise and check the name list. | |
Bool | putType (String &error, RecordInterface &out) const |
Aid for to/from Record, String. | |
template<class U > | |
Bool | getType (String &error, Function< U > *&fn, const RecordInterface &in) |
template<class U > | |
Bool | getType (String &error, Function< U > *&fn) |
void | setParameters (Function< T > *&fn, const Vector< T > ¶ms) |
void | setParameters (Function< AutoDiff< T > > *&fn, const Vector< T > ¶ms) |
Private Attributes | |
PtrHolder< Function< T > > | hold_p |
Pointer to a Function. | |
Types | nf_p |
Aids (only filled after a succesful to/fromRecord. | |
Int | order_p |
String | text_p |
PtrHolder< RecordInterface > | mode_p |
Vector< String > | nam_p |
List of known names. | |
Bool | isFilled |
Filled list? |
A holder for Functions to enable record conversions.
Public interface
A Holder of general Measures
This class can be used to handle heterogeneous collections of Functions, e.g. as a Vector<FunctionHolder>
. With the aid of the toRecord() and fromRecord() functions it can be used to convert a Function object into or from a record. A FunctionHolder is created from a Function, or can be empty.
TableRecord rec; MDirection dir(MVDirection(Quantity(12.5, 'deg'), Quantity(-2, 'deg')), MDirection::J2000); String error; // error message if (!FunctionHolder(dir).toRecord(error, rec)) { cout << error << endl; } Record grec; // a Record if (!FunctionHolder(dir).toRecord(error, grec)) { // make record cout << error << endl; } // Note that for GlishRecords use can be made of the // GlishRecord::to/fromrecord() methods.
To make general conversions between Functions and records, without knowing the actual Function being converted.
Definition at line 91 of file FunctionHolder.h.
enum casacore::FunctionHolder::Types |
Types of functions.
GAUSSIAN1D | |
GAUSSIAN2D | |
GAUSSIAN3D | |
GAUSSIANND | |
HYPERPLANE | |
POLYNOMIAL | |
EVENPOLYNOMIAL | |
ODDPOLYNOMIAL | |
SINUSOID1D | |
CHEBYSHEV | |
BUTTERWORTH | |
COMBINE | |
COMPOUND | |
COMPILED | |
N_Types |
Definition at line 95 of file FunctionHolder.h.
casacore::FunctionHolder< T >::FunctionHolder | ( | ) |
Creates an empty holder.
casacore::FunctionHolder< T >::FunctionHolder | ( | const Function< T > & | in | ) |
Create from a Function (copy made).
casacore::FunctionHolder< T >::FunctionHolder | ( | const FunctionHolder< T > & | other | ) |
Copy a holder (copy semantics).
casacore::FunctionHolder< T >::~FunctionHolder | ( | ) |
Bool casacore::FunctionHolder< T >::addFunction | ( | const Function< T > & | fnc | ) |
Add a function.
const Function<T>& casacore::FunctionHolder< T >::asFunction | ( | ) | const |
virtual Bool casacore::FunctionHolder< T >::fromRecord | ( | String & | error, | |
const RecordInterface & | in | |||
) | [virtual] |
Create a Function from a record.
An error message is generated, and False returned if an invalid record is given. A valid record will return True. A valid record contains at least the following fields (any additional fields are ignored):
A Function can be created from a string. In that case the string will only indicate the type of function (like polynomial), and will create a default polynomial of that given type. Error messages are postfixed to error.
Implements casacore::RecordTransformable.
virtual Bool casacore::FunctionHolder< T >::fromString | ( | String & | error, | |
const String & | inString | |||
) | [virtual] |
Initialise the class from a String representation.
A string cannot contain enough information for many objects. Hence the default implementation of this class returns False, indicating that the class could not be initialised and an error message is appended to the supplied string. If the class can be initialised from a string then this function should be overridden.
Reimplemented from casacore::RecordTransformable.
Bool casacore::FunctionHolder< T >::getRecord | ( | String & | error, | |
Function< U > *& | fn, | |||
const RecordInterface & | in | |||
) | [inline] |
Bool casacore::FunctionHolder< T >::getType | ( | String & | error, | |
Function< U > *& | fn | |||
) | [inline, private] |
Bool casacore::FunctionHolder< T >::getType | ( | String & | error, | |
Function< U > *& | fn, | |||
const RecordInterface & | in | |||
) | [inline, private] |
virtual const String& casacore::FunctionHolder< T >::ident | ( | ) | const [virtual] |
Get identification of record.
Reimplemented from casacore::RecordTransformable.
void casacore::FunctionHolder< T >::init | ( | ) | const [private] |
Initialise and check the name list.
Bool casacore::FunctionHolder< T >::isEmpty | ( | ) | const |
Check the the FunctionHolder holds the specified type.
Return True if if does and False otherwise.
const Vector<String>& casacore::FunctionHolder< T >::names | ( | ) | const |
Get the known names.
FunctionHolder& casacore::FunctionHolder< T >::operator= | ( | const FunctionHolder< T > & | other | ) |
Assignment (copy semantics).
Bool casacore::FunctionHolder< T >::putType | ( | String & | error, | |
RecordInterface & | out | |||
) | const [private] |
void casacore::FunctionHolder< T >::setParameters | ( | Function< AutoDiff< T > > *& | fn, | |
const Vector< T > & | params | |||
) | [private] |
void casacore::FunctionHolder< T >::setParameters | ( | Function< T > *& | fn, | |
const Vector< T > & | params | |||
) | [private] |
virtual Bool casacore::FunctionHolder< T >::toRecord | ( | String & | error, | |
RecordInterface & | out | |||
) | const [virtual] |
Create a record from a Function.
The return will be False and an error message generated only if the FunctionHolder does not contain a Function. Error messages are postfixed to error.
Implements casacore::RecordTransformable.
Types casacore::FunctionHolder< T >::type | ( | ) | const |
Get the type of currently filled holder.
PtrHolder<Function<T> > casacore::FunctionHolder< T >::hold_p [private] |
Pointer to a Function.
Definition at line 191 of file FunctionHolder.h.
Bool casacore::FunctionHolder< T >::isFilled [mutable, private] |
Filled list?
Definition at line 202 of file FunctionHolder.h.
PtrHolder<RecordInterface> casacore::FunctionHolder< T >::mode_p [mutable, private] |
Definition at line 197 of file FunctionHolder.h.
Vector<String> casacore::FunctionHolder< T >::nam_p [mutable, private] |
List of known names.
Definition at line 200 of file FunctionHolder.h.
Types casacore::FunctionHolder< T >::nf_p [mutable, private] |
Aids (only filled after a succesful to/fromRecord.
Definition at line 194 of file FunctionHolder.h.
Int casacore::FunctionHolder< T >::order_p [mutable, private] |
Definition at line 195 of file FunctionHolder.h.
String casacore::FunctionHolder< T >::text_p [mutable, private] |
Definition at line 196 of file FunctionHolder.h.