SPolynomialParam.h

Classes

SPolynomialParam -- Parameter handling for scaled 1-D polynomials (full description)

template<class T> class SPolynomialParam: public Function<T>

Interface

Public Members
SPolynomialParam()
explicit SPolynomialParam(uInt order)
SPolynomialParam(const SPolynomialParam<T> &other)
template <class W> SPolynomialParam(const SPolynomialParam<W> &other) : Function<T>(other)
SPolynomialParam<T> &operator=(const SPolynomialParam<T> &other)
~SPolynomialParam()
Bool operator==(const SPolynomialParam<T> &other) const
Bool operator!=(const SPolynomialParam<T> &other) const
virtual const String &name() const
uInt order() const
T coefficient(uInt which) const
Vector<T> coefficients() const
void setCoefficient(uInt which, const T value)
void setCoefficients(const Vector<T> &coefficients)
virtual uInt ndim() const

Description

Prerequisite

Etymology

A 1-dimensional Scaled Polynomial's parameters.

Synopsis

A SPolynomial is described by a set of coefficients; its fundamental operation is evaluating itself at some "x". The number of coefficients is the order of the polynomial plus one, plus three, describing a height, center and width. These three parameters are the first three, and have default values of 1, 0, 1.

Since the SPolynomial is a Function, the derivatives can be obtained as well.

The parameter interface (see FunctionParam class), is used to provide an interface to the Fitting classes.

This class is in general used implicitly by the SPolynomial class only.

Example

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

Template Type Argument Requirements (T)

Thrown Exceptions

To Do

Member Description

SPolynomialParam()

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

explicit SPolynomialParam(uInt order)

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

SPolynomialParam(const SPolynomialParam<T> &other)
template <class W> SPolynomialParam(const SPolynomialParam<W> &other) : Function<T>(other)
SPolynomialParam<T> &operator=(const SPolynomialParam<T> &other)

Make this a copy of other (deep copy).

~SPolynomialParam()

Destructor

Bool operator==(const SPolynomialParam<T> &other) const
Bool operator!=(const SPolynomialParam<T> &other) const

Comparisons. SPolynomials are equal if they are of the same order

virtual const String &name() const

Give name of function

uInt order() const

What is the order of the polynomial, i.e. maximum exponent of "x".

T coefficient(uInt which) const

What is the which'th coefficient of the polynomial. For an nth degree polynomial, which varies between zero and n.

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.

virtual uInt ndim() const

Returns the dimension of function