Class inte_cheb_gsl (o2scl)

O2scl : Class List

template<class func_t>
class inte_cheb_gsl : public o2scl::inte_transform_gsl<func_t>

Chebyshev integration base class (GSL)

This class provides the basic Chebyshev integration functions for use in the GSL-based integration classes which require them.

See GSL-based integration details in the User’s guide for general information about the GSL integration classes.

Subclassed by o2scl::inte_qawc_gsl< func_t >, o2scl::inte_qawo_gsl_sin< func_t >, o2scl::inte_qaws_gsl< func_t >

Protected Functions

inline void compute_moments(double cc, double *moment)

Compute the Chebyshev moments.

template<class func2_t>
inline void inte_cheb_series(func2_t &f, double a, double b, double *cheb12, double *cheb24)

Compute Chebyshev series expansion using a FFT method.

The Chebyshev coefficients for the truncated expansions,

f(x)=a02T0(x)+ad2Td(x)+k=d1ak(d)Tk(x),
are computed for d=12 and d=24 using an FFT algorithm.

The FFT algorithm, from [Tolstov62], is adapted so that the both sets of coefficients are computed simultaneously.

Given the function specified in f, this function computes the 13 Chebyshev coefficients, Ck12 of degree 12 and 25 Chebyshev coefficients of degree 24, Ck24, for the interval [a,b] using a FFT method.

These coefficients are constructed to approximate the original function with

f=k=113Ck12Tk1(x)
and
f=k=125Ck24Tk1(x)
where Tk1(x) is the Chebyshev polynomial of degree k1 evaluated at the point x.

It is assumed that memory for cheb12 and cheb24 has been allocated beforehand.

Originally written in QUADPACK by R. Piessens and E. de Doncker, translated into C for GSL by Brian Gough, and then rewritten for .