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

More...

#include <Polynomial.h>

Public Member Functions

 Polynomial ()
 Constructs a zero'th order polynomial, with a coeficcient of 0.0. More...
 
 Polynomial (uInt order)
 Makes a polynomial of the given order, with all coeficcients set to zero. More...
 
 Polynomial (const Polynomial< T > &other)
 Copy constructor/assignment (deep copy) More...
 
template<class W >
 Polynomial (const Polynomial< W > &other)
 
Polynomial< T > & operator= (const Polynomial< T > &other)
 
virtual ~Polynomial ()
 Destructor. More...
 
virtual T eval (typename Function1D< T >::FunctionArg x) const
 Evaluate the polynomial at x. More...
 
Polynomial< T > derivative () const
 Return the polynomial which is the derivative of this one. More...
 
virtual Function< T > * clone () const
 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::PolynomialParam< T >
 PolynomialParam ()
 Constructs a zero'th order polynomial, with a coeficcient of 0.0. More...
 
 PolynomialParam (uInt order)
 Makes a polynomial of the given order, with all coeficcients set to zero. More...
 
 PolynomialParam (const PolynomialParam< T > &other)
 Make this a copy of other (deep copy). More...
 
template<class W >
 PolynomialParam (const PolynomialParam< W > &other)
 
PolynomialParam< T > & operator= (const PolynomialParam< T > &other)
 
 ~PolynomialParam ()
 Destructor. More...
 
Bool operator== (const PolynomialParam< T > &other) const
 Comparisons. More...
 
Bool operator!= (const PolynomialParam< T > &other) const
 
virtual const String & name () const
 Give name of function. More...
 
uInt order () const
 What is the order of the polynomial, i.e. More...
 
T coefficient (uInt which) const
 What is the which'th coefficient of the polynomial. More...
 
const Vector< T > & coefficients () const
 Return all the coefficients as a vector. More...
 
void setCoefficient (uInt which, const T value)
 Set the which'th coefficient to value. More...
 
void setCoefficients (const Vector< T > &coefficients)
 Set all the coefficients at once, throw away all existing coefficients. More...
 
- Public Member Functions inherited from casacore::Function1D< T, U >
 Function1D ()
 Constructors. More...
 
 Function1D (const uInt n)
 
 Function1D (const Vector< T > &in)
 
 Function1D (const FunctionParam< T > &other)
 
template<class W , class X >
 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
 
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...
 
- 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...
 

Additional Inherited Members

- Public Types inherited from casacore::Function1D< T, U >
typedef const T * FunctionArg
 
- Public Types inherited from casacore::Function< T, T >
typedef FunctionTraits< T >::ArgType ArgType
 
typedef const ArgType * FunctionArg
 
- 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...
 

Detailed Description

template<class T>
class casacore::Polynomial< T >

A one dimensional polynomial class

Review Status

Reviewed By:
tcornwel
Date Reviewed:
1996/02/22
Test programs:
tPolynomial

Prerequisite

Synopsis

A Polynomial<T> contains a set of coefficients; its fundamental operations is evaluating itself at some "x". The number of coefficients is the order of the polynomial plus one, so is the number of available parameters.


Tip: The present implementation merely stores the coefficients in a Block; In the unlikely case that we need to deal with polynomials with many zero coefficients, a more efficient representation would be possible;

Example

Polynomial<Float> pf(3); // Third order polynomial - coeffs 0 by default
pf.setCoefficient(1, 1.0);
pf[2] = 2.0;
pf.setCoefficient(3, 3.0); // 3x^3 + 2x^2 + x
pf(2); // == 34

Template Type Argument Requirements (T)

Thrown Exceptions

To Do

Definition at line 90 of file Polynomial.h.

Constructor & Destructor Documentation

◆ Polynomial() [1/4]

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

Constructs a zero'th order polynomial, with a coeficcient of 0.0.

Definition at line 96 of file Polynomial.h.

◆ Polynomial() [2/4]

template<class T >
casacore::Polynomial< T >::Polynomial ( uInt  order)
inlineexplicit

Makes a polynomial of the given order, with all coeficcients set to zero.


Definition at line 99 of file Polynomial.h.

◆ Polynomial() [3/4]

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

Copy constructor/assignment (deep copy)

Definition at line 102 of file Polynomial.h.

◆ Polynomial() [4/4]

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

Definition at line 104 of file Polynomial.h.

◆ ~Polynomial()

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

Destructor.

Definition at line 110 of file Polynomial.h.

Member Function Documentation

◆ clone()

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

Return a copy of this object from the heap.

The caller is responsible for deleting the pointer.

Implements casacore::Function< T, T >.

Definition at line 124 of file Polynomial.h.

◆ cloneAD()

template<class T >
virtual Function<typename FunctionTraits<T>::DiffType>* casacore::Polynomial< T >::cloneAD ( ) const
inlinevirtual

Reimplemented from casacore::Function< T, T >.

Definition at line 125 of file Polynomial.h.

◆ cloneNonAD()

template<class T >
virtual Function<typename FunctionTraits<T>::BaseType>* casacore::Polynomial< T >::cloneNonAD ( ) const
inlinevirtual

Reimplemented from casacore::Function< T, T >.

Definition at line 127 of file Polynomial.h.

◆ derivative()

template<class T >
Polynomial<T> casacore::Polynomial< T >::derivative ( ) const

Return the polynomial which is the derivative of this one.

e.g., 2+4x+5x^2 –> 0+4+10x .

◆ eval()

template<class T >
virtual T casacore::Polynomial< T >::eval ( typename Function1D< T >::FunctionArg  x) const
virtual

Evaluate the polynomial at x.

◆ operator=()

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

Definition at line 105 of file Polynomial.h.

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


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