casacore
|
Parameter handling for Chebyshev polynomial parameters. More...
#include <ChebyshevParam.h>
Public Member Functions | |
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... | |
T | 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... | |
T | getIntervalMin () const |
return the minimum value for the currently Chebyshev interval. More... | |
T | 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 String & | name () 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 x or 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 |
Bool & | mask (const uInt n) |
Manipulate the mask associated with the nth parameter (e.g. More... | |
const Bool & | mask (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, T > * | 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... | |
Static Public Member Functions | |
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 | |
T | def_p |
Default value if outside interval. More... | |
T | minx_p |
Lowest interval bound. More... | |
T | 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< ArgType > | arg_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 | |
static Vector< String > | modes_s |
Additional Inherited Members | |
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 ArgType * | FunctionArg |
Parameter handling for Chebyshev polynomial parameters.
Internal
This class is named after Chebyshev Type I polynomials; it handles the "fixed" parameters for the function.
This class assists in forming and evaluating a function as a Chebyshev series, a linear combination of so-called Chebyshev polynomials. Users do not instantiate this abstract class directly; instead they instantiate the child class Chebyshev. This class holds the part of the implementation used by the Chebyshev class that manages the "fixed" parameters of the function (e.g. the polynomial coefficients, interval of interest, etc.)
For a full description, see the Chebyshev class.
In this example, a 2nd order Chebyshev polynomial series is created.
This class was created to support systematic errors in the simulator tool. It can be used by Jones matrix classes to vary gains in a predictable way, mimicing natural processes of the atmosphere or instrumental effects.
The Chebyshev implementation is split between this class, ChebyshevParam
and its child Chebyshev to better support the AutoDiff framework for evaluating derivatives.
Definition at line 167 of file ChebyshevParam.h.
casacore::ChebyshevParam< T >::ChebyshevParam | ( | ) |
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).
|
explicit |
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).
casacore::ChebyshevParam< T >::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.
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.
casacore::ChebyshevParam< T >::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.
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.
casacore::ChebyshevParam< T >::ChebyshevParam | ( | uInt | order, |
const RecordInterface & | mode | ||
) |
casacore::ChebyshevParam< T >::ChebyshevParam | ( | const Vector< T > & | coeffs, |
const RecordInterface & | mode | ||
) |
casacore::ChebyshevParam< T >::ChebyshevParam | ( | const ChebyshevParam< T > & | other | ) |
create a deep copy of another Chebyshev polynomial
|
inline |
Definition at line 223 of file ChebyshevParam.h.
|
virtual |
Destructor.
|
static |
convert a set of Chebyshev polynomial coefficients to power series coefficients.
The values passed in coeffs are taken to be chebyshev coefficients; these values will be replaced with the power series coefficients. They should be ordered beginning with the zero-th order coefficient.
|
static |
transform a set of Chebyshev polynomial coefficients into a set representing the series' derivative.
coeffs should be assuming an interval of [-1, 1]. xmin and xmax can be provided to transform the series to another interval.
|
inline |
return a particular coefficient.
which is the coefficient order (i.e. 0 refers to the constant offset). If which is out of range, zero is returned.
Definition at line 259 of file ChebyshevParam.h.
const Vector<T>& casacore::ChebyshevParam< T >::getCoefficients | ( | ) | const |
return the current set of coefficients into a given Vector.
|
inline |
return the currently set default value.
See setDefault() for details on the use of this value.
Definition at line 303 of file ChebyshevParam.h.
|
inline |
return the maximum value for the currently Chebyshev interval.
See setInterval() for additional details.
Definition at line 283 of file ChebyshevParam.h.
|
inline |
return the minimum value for the currently Chebyshev interval.
See setInterval() for additional details.
Definition at line 279 of file ChebyshevParam.h.
|
inline |
return the behavior of this function when it is evaluated outside of its Chebyshev interval.
Definition at line 292 of file ChebyshevParam.h.
|
inlinevirtual |
Give name of function.
Reimplemented from casacore::Function< T, T >.
Definition at line 331 of file ChebyshevParam.h.
|
inline |
return the number of coeefficients currently loaded.
This does not guarantee that the coefficients are non-zero
Definition at line 264 of file ChebyshevParam.h.
ChebyshevParam<T>& casacore::ChebyshevParam< T >::operator= | ( | const ChebyshevParam< T > & | other | ) |
make a (deep) copy of another Chebyshev polynomial
Referenced by casacore::Chebyshev< T >::operator=().
|
inline |
return the order of this polynomial.
This returns the value of nCoefficients()-1;
Definition at line 307 of file ChebyshevParam.h.
|
static |
void casacore::ChebyshevParam< T >::setCoefficient | ( | const uInt | which, |
const T & | value | ||
) |
set a particular Chebyshev coefficient.
which is the coefficient order (i.e. 0 refers to the constant offset). value is the coefficient value. If which is larger than current order of the function, the order will be increased to the value of which, and that coefficient is set to value; missing coefficients less than this value will be set to zero. Thus, the order can be increased with this function; however, it cannot be decreased (even if the highest order coefficient is set to zero). To lower the order, use setCoefficients() with a Vector having the desired number of coefficients.
void casacore::ChebyshevParam< T >::setCoefficients | ( | const Vector< T > & | coeffs | ) |
|
inline |
set the default value of this function.
This value is used when the getOutOfIntervalMode() returns Chebyshev::CONSTANT; it is returned when the a value outside of the Chebyshev interval is passed to the () operator.
Definition at line 299 of file ChebyshevParam.h.
|
inline |
set the Chebyshev interval for this function.
The function will be scaled and shifted to such that the central bounded range of the Chebyshev polynomials ([-1, 1] in untransformed space) spans the given range. min is the minimum value for the interval, and max is the maximum value. See setOutOfIntervalMode() for the behavior of this function outside the set range.
Definition at line 273 of file ChebyshevParam.h.
|
inline |
set the behavior of this function when it is evaluated outside its Chebyshev interval
Definition at line 287 of file ChebyshevParam.h.
|
protected |
Default value if outside interval.
Definition at line 337 of file ChebyshevParam.h.
Referenced by casacore::ChebyshevParam< AutoDiffA< T > >::getDefault(), and casacore::ChebyshevParam< AutoDiffA< T > >::setDefault().
|
protected |
Highest inetrval bound.
Definition at line 341 of file ChebyshevParam.h.
Referenced by casacore::ChebyshevParam< AutoDiffA< T > >::getIntervalMax(), and casacore::ChebyshevParam< AutoDiffA< T > >::setInterval().
|
protected |
Lowest interval bound.
Definition at line 339 of file ChebyshevParam.h.
Referenced by casacore::ChebyshevParam< AutoDiffA< T > >::getIntervalMin(), and casacore::ChebyshevParam< AutoDiffA< T > >::setInterval().
|
protected |
Out-of-interval handling type.
Definition at line 343 of file ChebyshevParam.h.
Referenced by casacore::ChebyshevParam< AutoDiffA< T > >::getOutOfIntervalMode(), and casacore::ChebyshevParam< AutoDiffA< T > >::setOutOfIntervalMode().
|
staticprotected |
Definition at line 345 of file ChebyshevParam.h.