Template Class Chebyshev1Function1

Inheritance Relationships

Base Type

Class Documentation

template<typename ReturnT>
class Chebyshev1Function1 : public lsst::afw::math::Function1<ReturnT>

1-dimensional weighted sum of Chebyshev polynomials of the first kind.

f(x) = c0 T0(x’) + c1 T1(x’) + c2 T2(x’) + … = c0 + c1 T1(x’) + c2 T2(x’) + … where:

  • Tn(x) is the nth Chebyshev function of the first kind: T0(x) = 1 T1(x) = 2 Tn+1(x) = 2xTn(x) + Tn-1(x)

  • x’ is x offset and scaled to range [-1, 1] as x ranges over [minX, maxX]

The function argument must be in the range [minX, maxX].

Public Functions

Chebyshev1Function1(unsigned int order, double minX = -1, double maxX = 1)

Parameters
  • order: order of polynomial (0 for constant)

  • minX: minimum allowed x

  • maxX: maximum allowed x

Construct a Chebyshev polynomial of specified order and range.

The parameters are initialized to zero.

Chebyshev1Function1(std::vector<double> params, double minX = -1, double maxX = 1)

Parameters
  • params: polynomial coefficients

  • minX: minimum allowed x

  • maxX: maximum allowed x

Construct a Chebyshev polynomial with specified parameters and range.

The order of the polynomial is set to the length of the params vector.

Exceptions
  • lsst::pex::exceptions::InvalidParameterError: if params is empty

Chebyshev1Function1(Chebyshev1Function1 const&)
Chebyshev1Function1(Chebyshev1Function1&&)
Chebyshev1Function1 &operator=(Chebyshev1Function1 const&)
Chebyshev1Function1 &operator=(Chebyshev1Function1&&)
~Chebyshev1Function1()
std::shared_ptr<Function1<ReturnT>> clone() const

Return a pointer to a deep copy of this function

This function exists instead of a copy constructor so one can obtain a copy of an actual function instead of a useless copy of the base class.

Every concrete subclass must override this method.

Return

a pointer to a deep copy of the function

double getMinX() const

Get minimum allowed x

double getMaxX() const

Get maximum allowed x

unsigned int getOrder() const

Get the polynomial order

bool isLinearCombination() const

Is the function a linear combination of its parameters?

Return

true if the function can be expressed as: sum over i of parameter_i * function_i(args)

Warning

: subclasses must override if true.

ReturnT operator()(double x) const
std::string toString(std::string const&) const

Return a string representation of the function

Return

a string representation of the function

Protected Functions

Chebyshev1Function1()