MathTL
 All Classes Functions Variables Typedefs Enumerations
Public Member Functions
MathTL::OrthogonalPolynomial Class Reference

#include <ortho_poly.h>

Inheritance diagram for MathTL::OrthogonalPolynomial:
MathTL::ChebyshevPolynomial MathTL::GenMomentsPolynomial MathTL::LegendrePolynomial MathTL::Monomial

List of all members.

Public Member Functions

virtual ~OrthogonalPolynomial ()
 virtual destructor
virtual double a (const unsigned int k) const =0
virtual double b (const unsigned int k) const =0
double operator() (const unsigned int n, const double x) const
Polynomial< double > assemble (const unsigned int n) const
double forwardSummation (const Vector< double > &coeffs, const double x) const
double adjointSummation (const Vector< double > &coeffs, const double x) const

Detailed Description

Abstract base class for orthogonal polynomials that fulfill a (homogeneous) three-term recursion of the form

p_k(t) = (t-a_k) * p_{k-1}(t) - b_k * p_{k-2}(t), k=1,2,...

where p_{-1}(t)=0, p_0(t)=1.

Due to the specific shape of the recurrence relation, the p_k will have leading coefficient 1. Moreover, we have

a_k = <tp_{k-1}, p_{k-1}> / <p_{k-1}, p_{k-1}> b_k = <tp_{k-1}, p_{k-2}> / <p_{k-2}, p_{k-2}>


Member Function Documentation

virtual double MathTL::OrthogonalPolynomial::a ( const unsigned int  k) const [pure virtual]
double MathTL::OrthogonalPolynomial::adjointSummation ( const Vector< double > &  coeffs,
const double  x 
) const

adjoint summation of {k=0}^n * p_k(x) remarks:

  • generalized Horner scheme (-> less multiplications than forward summation)
  • numerically stable for dominant solutions of the three-term recursion
  • potentially unstable for minimal solutions
Polynomial< double > MathTL::OrthogonalPolynomial::assemble ( const unsigned int  n) const

assemble n-th orthogonal polynomial

virtual double MathTL::OrthogonalPolynomial::b ( const unsigned int  k) const [pure virtual]
double MathTL::OrthogonalPolynomial::forwardSummation ( const Vector< double > &  coeffs,
const double  x 
) const

(trivial) forward summation of {k=0}^n * p_k(x)

double MathTL::OrthogonalPolynomial::operator() ( const unsigned int  n,
const double  x 
) const

evaluate n-th orthogonal polynomial at x


The documentation for this class was generated from the following files:
 All Classes Functions Variables Typedefs Enumerations