casacore
Loading...
Searching...
No Matches
casacore::PowerLogarithmicPolynomial< T > Class Template Reference

More...

#include <PowerLogarithmicPolynomial.h>

Public Member Functions

 PowerLogarithmicPolynomial ()
 Constructs an empty PowerLogarithmicPolynomial.
 PowerLogarithmicPolynomial (uInt n)
 Makes a power logaritmic polynomial with the specified number of coefficients, all set to zero.
 PowerLogarithmicPolynomial (const vector< T > &parms)
 Make a function with the specified params.
 PowerLogarithmicPolynomial (const PowerLogarithmicPolynomial< T > &other)
 Copy constructor/assignment (deep copy).
template<class W>
 PowerLogarithmicPolynomial (const PowerLogarithmicPolynomial< W > &other)
PowerLogarithmicPolynomial< T > & operator= (const PowerLogarithmicPolynomial< T > &other)
virtual ~PowerLogarithmicPolynomial ()
 Destructor.
virtual T eval (typename Function1D< T >::FunctionArg x) const
 Evaluate the polynomial at x.
virtual Function< T > * clone () const
 Return a copy of this object from the heap.
virtual Function< typename FunctionTraits< T >::DiffType > * cloneAD () const
virtual Function< typename FunctionTraits< T >::BaseType > * cloneNonAD () const
Public Member Functions inherited from casacore::PowerLogarithmicPolynomialParam< T >
 PowerLogarithmicPolynomialParam ()
 Constructs a function with two coefficients, both 1 (so y = x).
 PowerLogarithmicPolynomialParam (uInt n)
 Makes a polynomial of the specified number of coefficients, all set to zero.
 PowerLogarithmicPolynomialParam (const vector< T > &parms)
 PowerLogarithmicPolynomialParam (const PowerLogarithmicPolynomialParam< T > &other)
 Make this a copy of other (deep copy).
template<class W>
 PowerLogarithmicPolynomialParam (const PowerLogarithmicPolynomialParam< W > &other)
PowerLogarithmicPolynomialParam< T > & operator= (const PowerLogarithmicPolynomialParam< T > &other)
virtual ~PowerLogarithmicPolynomialParam ()
 Destructor.
Bool operator== (const PowerLogarithmicPolynomialParam< T > &other) const
 Comparisons.
Bool operator!= (const PowerLogarithmicPolynomialParam< T > &other) const
virtual const Stringname () const
 Give name of function.
coefficient (uInt which) const
 What is the which'th coefficient of the polynomial.
const Vector< T > & coefficients () const
 Return all the coefficients as a vector.
void setCoefficient (uInt which, const T value)
 Set the which'th coefficient to value.
void setCoefficients (const Vector< T > &coefficients)
 Set all the coefficients at once, throw away all existing coefficients.
Public Member Functions inherited from casacore::Function1D< T, U >
 Function1D ()
 Constructors.
 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.
virtual uInt ndim () const
 Returns the number of dimensions of function.
Public Member Functions inherited from casacore::Function< T, T >
 Function ()
 Constructors.
virtual ~Function ()
 Destructor.
uInt nparameters () const
 Returns the number of parameters.
virtual T eval (FunctionArg x) const=0
 Evaluate the function object.
T & operator[] (const uInt n)
 Manipulate the nth parameter (0-based) with no index check.
virtual T operator() () const
 Evaluate this function object at xor at x, y.
Boolmask (const uInt n)
 Manipulate the mask associated with the nth parameter (e.g.
const FunctionParam< T > & parameters () const
 Return the parameter interface.
const Vector< ArgType > & argp () const
 Get arg_p and parset_p.
Bool parsetp () const
void lockParam ()
 Compiler cannot always find the correct 'const' version of parameter access.
void unlockParam ()
virtual void setMode (const RecordInterface &mode)
 get/set the function mode.
virtual void getMode (RecordInterface &mode) const
virtual Bool hasMode () const
 return True if the implementing function supports a mode.
ostream & print (ostream &os) const
 Print the function (i.e.
Public Member Functions inherited from casacore::Functional< FunctionTraits< T >::ArgType, T >
virtual ~Functional ()
 Destructor.
virtual T operator() (const FunctionTraits< T >::ArgType &x) const=0
 Map a Domain x into a Range y value.
Public Member Functions inherited from casacore::Functional< Vector< FunctionTraits< T >::ArgType >, T >
virtual ~Functional ()
 Destructor.
virtual T operator() (const Vector< FunctionTraits< T >::ArgType > &x) const=0
 Map a Domain x into a Range y value.

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 ArgTypeFunctionArg
Protected Attributes inherited from casacore::Function< T, T >
FunctionParam< T > param_p
 The parameters and masks.
Vector< ArgTypearg_p
 Aid for non-contiguous argument storage.
Bool parset_p
 Indicate parameter written.
Bool locked_p
 Indicate that parameters are expected to be locked from changing.

Detailed Description

template<class T>
class casacore::PowerLogarithmicPolynomial< T >

A one dimensional power logarithmic polynomial class of form y = c_0 * x**(c_1 + c_2*ln(x) + c_3*ln(x)**2 +... c_n*ln(x)**(n-1))

Review Status

Test programs:
tPowerLogarithmicPolynomial

Prerequisite

Synopsis

A Power Logarithmic Polynomial<T> contains a set of coefficients; its fundamental operations is evaluating itself at some "x".


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

Template Type Argument Requirements (T)

  • T should have standard numerical operators. Current implementation only tested for real types (and their AutoDiffs).

Thrown Exceptions

  • Assertion in debug mode if attempt is made to address incorrect coefficients

Definition at line 78 of file PowerLogarithmicPolynomial.h.

Constructor & Destructor Documentation

◆ PowerLogarithmicPolynomial() [1/5]

◆ PowerLogarithmicPolynomial() [2/5]

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

Makes a power logaritmic polynomial with the specified number of coefficients, all set to zero.

Definition at line 86 of file PowerLogarithmicPolynomial.h.

References casacore::PowerLogarithmicPolynomialParam< T >::PowerLogarithmicPolynomialParam().

◆ PowerLogarithmicPolynomial() [3/5]

template<class T>
casacore::PowerLogarithmicPolynomial< T >::PowerLogarithmicPolynomial ( const vector< T > & parms)
inline

Make a function with the specified params.

Definition at line 89 of file PowerLogarithmicPolynomial.h.

References casacore::PowerLogarithmicPolynomialParam< T >::PowerLogarithmicPolynomialParam().

◆ PowerLogarithmicPolynomial() [4/5]

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

◆ PowerLogarithmicPolynomial() [5/5]

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

◆ ~PowerLogarithmicPolynomial()

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

Destructor.

Definition at line 101 of file PowerLogarithmicPolynomial.h.

Member Function Documentation

◆ clone()

template<class T>
virtual Function< T > * casacore::PowerLogarithmicPolynomial< 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 111 of file PowerLogarithmicPolynomial.h.

References PowerLogarithmicPolynomial().

◆ cloneAD()

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

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

Definition at line 112 of file PowerLogarithmicPolynomial.h.

References PowerLogarithmicPolynomial().

◆ cloneNonAD()

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

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

Definition at line 114 of file PowerLogarithmicPolynomial.h.

References PowerLogarithmicPolynomial().

◆ eval()

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

Evaluate the polynomial at x.

◆ operator=()


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