casacore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Static Public Attributes | Static Private Attributes | List of all members
casacore::MarshallableChebyshev< T > Class Template Reference

A Chebyshev function class that supports serialization. More...

#include <MarshallableChebyshev.h>

Inheritance diagram for casacore::MarshallableChebyshev< T >:
casacore::Chebyshev< T > casacore::FunctionMarshallable casacore::ChebyshevParamModeImpl< T > casacore::ChebyshevParam< T > casacore::Function1D< T > casacore::Function< T, T > casacore::Functional< FunctionTraits< T >::ArgType, T > casacore::Functional< Vector< FunctionTraits< T >::ArgType >, T >

Public Types

enum  FieldNames {
  COEFFS,
  MODE,
  DEF,
  INTERVAL,
  NFieldNames
}
 definitions of the fields stored in a serialized Record. More...
 
- Public Types inherited from casacore::Function1D< T >
typedef const T * FunctionArg
 
- Public Types inherited from casacore::Function< T, T >
typedef FunctionTraits< T >
::ArgType 
ArgType
 
typedef const ArgTypeFunctionArg
 

Public Member Functions

 MarshallableChebyshev ()
 create a zero-th order Chebyshev polynomial with the first coefficient equal to zero. More...
 
 MarshallableChebyshev (const uInt n)
 create an n-th order Chebyshev polynomial with the coefficients equal to zero. More...
 
 MarshallableChebyshev (const T &min, const T &max, const typename ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 create a zero-th order Chebyshev polynomical with the first coefficient equal to one. More...
 
 MarshallableChebyshev (const Vector< T > &coeffs, const T &min, const T &max, const typename ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 create a fully specified Chebyshev polynomial. More...
 
 MarshallableChebyshev (const Record &gr) throw (InvalidSerializationError)
 create a fully specified Chebyshev polynomial from parameters stored in a Record. More...
 
 MarshallableChebyshev (const Chebyshev< T > &other)
 create a deep copy of another Chebyshev polynomial More...
 
 MarshallableChebyshev (const MarshallableChebyshev< T > &other)
 
MarshallableChebyshev< T > & operator= (const MarshallableChebyshev< T > &other)
 make a (deep) copy of another Chebyshev polynomial More...
 
MarshallableChebyshev< T > & operator= (const Chebyshev< T > &other)
 
virtual ~MarshallableChebyshev ()
 Destructor. More...
 
virtual void store (Record &gr) const
 store the state of this Function into a Record More...
 
virtual Function< T > * clone () const
 Create a copy of this object. More...
 
- Public Member Functions inherited from casacore::Chebyshev< T >
 Chebyshev ()
 create a zero-th order Chebyshev polynomial with the first coefficient equal to zero. More...
 
 Chebyshev (const uInt n)
 create an n-th order Chebyshev polynomial with the coefficients equal to zero. More...
 
 Chebyshev (const T &min, const T &max, const typename ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 create a zero-th order Chebyshev polynomical with the first coefficient equal to one. More...
 
 Chebyshev (const Vector< T > &coeffs, const T &min, const T &max, const typename ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 create a fully specified Chebyshev polynomial. More...
 
 Chebyshev (uInt order, const RecordInterface &mode)
 create a fully specified Chebyshev polynomial. More...
 
 Chebyshev (const Vector< T > &coeffs, const RecordInterface &mode)
 
 Chebyshev (const Chebyshev &other)
 create a deep copy of another Chebyshev polynomial More...
 
Chebyshev< T > & operator= (const Chebyshev< T > &other)
 make this instance a (deep) copy of another Chebyshev polynomial More...
 
virtual ~Chebyshev ()
 Destructor. More...
 
virtual T eval (const typename FunctionTraits< T >::ArgType *x) const
 Evaluate the Chebyshev at x. More...
 
Chebyshev< T > derivative () const
 Return the Chebyshev polynomial which is the derivative of this one (with respect to the argument x). More...
 
- Public Member Functions inherited from casacore::ChebyshevParamModeImpl< T >
 ChebyshevParamModeImpl ()
 
 ChebyshevParamModeImpl (const uInt n)
 
 ChebyshevParamModeImpl (const T &min, const T &max, typename ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 
 ChebyshevParamModeImpl (const Vector< T > &coeffs, const T &min, const T &max, typename ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 
 ChebyshevParamModeImpl (uInt order, const RecordInterface &mode)
 
 ChebyshevParamModeImpl (const Vector< T > &coeffs, const RecordInterface &mode)
 
 ChebyshevParamModeImpl (const ChebyshevParamModeImpl &other)
 
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...
 
- Public Member Functions inherited from casacore::ChebyshevParam< T >
 ChebyshevParam ()
 create a zero-th order Chebyshev polynomial with the first coefficient equal to zero. More...
 
 ChebyshevParam (const uInt n)
 create an n-th order Chebyshev polynomial with the coefficients equal to zero. More...
 
 ChebyshevParam (const T &min, const T &max, ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 create a zero-th order Chebyshev polynomical with the first coefficient equal to one. More...
 
 ChebyshevParam (const Vector< T > &coeffs, const T &min, const T &max, ChebyshevEnums::OutOfIntervalMode mode=ChebyshevEnums::CONSTANT, const T &defval=T(0))
 create a fully specified Chebyshev polynomial. More...
 
 ChebyshevParam (uInt order, const RecordInterface &mode)
 create a fully specified Chebyshev polynomial. More...
 
 ChebyshevParam (const Vector< T > &coeffs, const RecordInterface &mode)
 
 ChebyshevParam (const ChebyshevParam &other)
 create a deep copy of another Chebyshev polynomial More...
 
template<class W >
 ChebyshevParam (const ChebyshevParam< W > &other)
 
ChebyshevParam< T > & operator= (const ChebyshevParam< T > &other)
 make a (deep) copy of another Chebyshev polynomial More...
 
virtual ~ChebyshevParam ()
 Destructor. More...
 
void setCoefficients (const Vector< T > &coeffs)
 set the Chebyshev coefficients. More...
 
void setCoefficient (const uInt which, const T &value)
 set a particular Chebyshev coefficient. More...
 
const Vector< T > & getCoefficients () const
 return the current set of coefficients into a given Vector. More...
 
getCoefficient (const uInt which) const
 return a particular coefficient. More...
 
uInt nCoefficients () const
 return the number of coeefficients currently loaded. More...
 
void setInterval (T xmin, T xmax)
 set the Chebyshev interval for this function. More...
 
getIntervalMin () const
 return the minimum value for the currently Chebyshev interval. More...
 
getIntervalMax () const
 return the maximum value for the currently Chebyshev interval. More...
 
void setOutOfIntervalMode (ChebyshevEnums::OutOfIntervalMode mode)
 set the behavior of this function when it is evaluated outside its Chebyshev interval More...
 
ChebyshevEnums::OutOfIntervalMode getOutOfIntervalMode () const
 return the behavior of this function when it is evaluated outside of its Chebyshev interval. More...
 
void setDefault (const T &val)
 set the default value of this function. More...
 
const T & getDefault () const
 return the currently set default value. More...
 
uInt order () const
 return the order of this polynomial. More...
 
virtual const Stringname () const
 Give name of function. More...
 
- Public Member Functions inherited from casacore::Function1D< T >
 Function1D ()
 Constructors. More...
 
 Function1D (const uInt n)
 
 Function1D (const Vector< T > &in)
 
 Function1D (const FunctionParam< T > &other)
 
 Function1D (const Function1D< W, X > &other)
 
virtual ~Function1D ()
 Destructor. More...
 
virtual uInt ndim () const
 Returns the number of dimensions of function. More...
 
- Public Member Functions inherited from casacore::Function< T, T >
 Function ()
 Constructors. More...
 
 Function (const uInt n)
 
 Function (const Vector< T > &in)
 
 Function (const FunctionParam< T > &other)
 
 Function (const Function< W, X > &other)
 
virtual ~Function ()
 Destructor. More...
 
uInt nparameters () const
 Returns the number of parameters. More...
 
virtual T 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 T operator() () const
 Evaluate this function object at xor at x, y. More...
 
virtual T operator() (const ArgType &x) const
 
virtual T operator() (const Vector< ArgType > &x) const
 
virtual T operator() (FunctionArg x) const
 
virtual T operator() (const ArgType &x, const ArgType &y) const
 
virtual T 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 ()
 
ostream & print (ostream &os) const
 Print the function (i.e. 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...
 
- Public Member Functions inherited from casacore::FunctionMarshallable
 FunctionMarshallable (const String &functype)
 create a FunctionMarshallable. More...
 
 FunctionMarshallable (const FunctionMarshallable &other)
 
virtual ~FunctionMarshallable ()
 
virtual FunctionMarshallableoperator= (const FunctionMarshallable &other)
 
const StringgetFuncType () const
 return the name representing the Function type that will be placed in the functype field of Record passed to store(). More...
 
void loadFuncType (Record &gr) const
 load functype field into the given Record More...
 

Static Public Attributes

static const String FUNCTYPE
 
static const String FUNCFIELDS []
 

Static Private Attributes

static const String modenames []
 

Additional Inherited Members

- Static Public Member Functions inherited from casacore::ChebyshevParam< T >
static void derivativeCoeffs (Vector< T > &coeffs, const T &xmin=T(-1), const T &xmax=T(1))
 transform a set of Chebyshev polynomial coefficients into a set representing the series' derivative. More...
 
static void chebyshevToPower (Vector< T > &coeffs)
 convert a set of Chebyshev polynomial coefficients to power series coefficients. More...
 
static void powerToChebyshev (Vector< T > &coeffs)
 convert a set of power series coefficients to Chebyshev polynomial coefficients. More...
 
- Protected Attributes inherited from casacore::ChebyshevParam< T >
def_p
 Default value if outside interval. More...
 
minx_p
 Lowest interval bound. More...
 
maxx_p
 Highest inetrval bound. More...
 
ChebyshevEnums::OutOfIntervalMode mode_p
 Out-of-interval handling type. More...
 
- Protected Attributes inherited from casacore::Function< T, T >
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...
 
- Static Protected Attributes inherited from casacore::ChebyshevParam< T >
static Vector< Stringmodes_s
 

Detailed Description

template<class T>
class casacore::MarshallableChebyshev< T >

A Chebyshev function class that supports serialization.

Intended use:

Public interface

Review Status

Reviewed By:
wbrouw
Date Reviewed:
2001/11/12
Test programs:
tChebyshev

Prerequisite

Etymology

This class is named after Chebyshev Type I polynomials. "Marshallable" means that the class can be serialized into a form that can be transmitted to another execution context.

Synopsis

This class is a specialization of the Chebyshev class that supports serialization. That is, it allows one to write the state of the Chebyshev polynomial object into a Record. This record can then be transmitted to another execution context where it can be "reconstituted" as a new object with identical state as this one. This documentation focusses on this serialization functionality (also known as "marshalling"); for details about the general features of the Chebyshev polynomial series, see the Chebyshev class.

Example

Motivation

Making Chebyshev Marshallable provides a convenient way of configuring the simulator tool from.

Thrown Exceptions

Definition at line 85 of file MarshallableChebyshev.h.

Member Enumeration Documentation

definitions of the fields stored in a serialized Record.

The actual string names are stored in FUNCFIELDS

Enumerator
COEFFS 

the array of coefficients

MODE 

the default mode

DEF 

the default value to use when mode=CONSTANT

INTERVAL 

the 2-element double array

NFieldNames 

the number of supported fields

Definition at line 97 of file MarshallableChebyshev.h.

Constructor & Destructor Documentation

template<class T>
casacore::MarshallableChebyshev< T >::MarshallableChebyshev ( )
inline

create a zero-th order Chebyshev polynomial with the first coefficient equal to zero.

The bounded domain is [T(-1), T(1)]. The OutOfDomainMode is CONSTANT, and the default value is T(0).

Definition at line 114 of file MarshallableChebyshev.h.

template<class T>
casacore::MarshallableChebyshev< T >::MarshallableChebyshev ( const uInt  n)
inlineexplicit

create an n-th order Chebyshev polynomial with the coefficients equal to zero.

The bounded domain is [T(-1), T(1)]. The OutOfDomainMode is CONSTANT, and the default value is T(0).

Definition at line 120 of file MarshallableChebyshev.h.

template<class T>
casacore::MarshallableChebyshev< T >::MarshallableChebyshev ( const T &  min,
const T &  max,
const typename ChebyshevEnums::OutOfIntervalMode  mode = ChebyshevEnums::CONSTANT,
const T &  defval = T(0) 
)
inline

create a zero-th order Chebyshev polynomical with the first coefficient equal to one.

min is the minimum value of its Chebyshev interval, and max is the maximum value. mode sets the behavior of the function outside the Chebyshev interval (see setOutOfIntervalMode() and OutOfIntervalMode enumeration definition for details). defval is the value returned when the function is evaluated outside the Chebyshev interval and mode=CONSTANT.

Definition at line 132 of file MarshallableChebyshev.h.

template<class T>
casacore::MarshallableChebyshev< T >::MarshallableChebyshev ( const Vector< T > &  coeffs,
const T &  min,
const T &  max,
const typename ChebyshevEnums::OutOfIntervalMode  mode = ChebyshevEnums::CONSTANT,
const T &  defval = T(0) 
)
inline

create a fully specified Chebyshev polynomial.

coeffs holds the coefficients of the Chebyshev polynomial (see setCoefficients() for details). min is the minimum value of its canonical range, and max is the maximum value. mode sets the behavior of the function outside the Chebyshev interval (see setOutOfIntervalMode() and OutOfIntervalMode enumeration definition for details). defval is the value returned when the function is evaluated outside the canonical range and mode=CONSTANT.

Definition at line 149 of file MarshallableChebyshev.h.

template<class T>
casacore::MarshallableChebyshev< T >::MarshallableChebyshev ( const Record gr)
throw (InvalidSerializationError
)
explicit

create a fully specified Chebyshev polynomial from parameters stored in a Record.

template<class T>
casacore::MarshallableChebyshev< T >::MarshallableChebyshev ( const Chebyshev< T > &  other)
inline

create a deep copy of another Chebyshev polynomial

Definition at line 165 of file MarshallableChebyshev.h.

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

Definition at line 167 of file MarshallableChebyshev.h.

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

Destructor.

Definition at line 189 of file MarshallableChebyshev.h.

Member Function Documentation

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

Create a copy of this object.

The caller is responsible for deleting the pointer.

Reimplemented from casacore::Chebyshev< T >.

Definition at line 196 of file MarshallableChebyshev.h.

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

make a (deep) copy of another Chebyshev polynomial

Definition at line 173 of file MarshallableChebyshev.h.

References casacore::FunctionMarshallable::operator=(), and casacore::Chebyshev< T >::operator=().

template<class T>
MarshallableChebyshev<T>& casacore::MarshallableChebyshev< T >::operator= ( const Chebyshev< T > &  other)
inline

Definition at line 180 of file MarshallableChebyshev.h.

References casacore::Chebyshev< T >::operator=().

template<class T>
virtual void casacore::MarshallableChebyshev< T >::store ( Record gr) const
virtual

store the state of this Function into a Record

Implements casacore::FunctionMarshallable.

Member Data Documentation

template<class T>
const String casacore::MarshallableChebyshev< T >::FUNCFIELDS[]
static

Definition at line 93 of file MarshallableChebyshev.h.

template<class T>
const String casacore::MarshallableChebyshev< T >::FUNCTYPE
static

Definition at line 92 of file MarshallableChebyshev.h.

template<class T>
const String casacore::MarshallableChebyshev< T >::modenames[]
staticprivate

Definition at line 89 of file MarshallableChebyshev.h.


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