Public Types | Public Member Functions | Protected Attributes | List of all members
o2scl::cheb_approx_tl< fp_t > Class Template Reference

Chebyshev approximation (GSL) More...

#include <cheb_approx.h>

Detailed Description

template<class fp_t = double>
class o2scl::cheb_approx_tl< fp_t >

Approximate a function on a finite interval using a Chebyshev series:

\[ f(x) = \sum_n c_n T_n(x) \]

where $ T_n(x)=\cos(n \arccos x) $

See also the Chebyshev approximation example .

Definition at line 49 of file cheb_approx.h.

Public Types

typedef boost::numeric::ublas::vector< fp_t > ubvector
 

Public Member Functions

 cheb_approx_tl (const cheb_approx_tl &gc)
 Copy constructor.
 
cheb_approx_tloperator= (const cheb_approx_tl &gc)
 Copy constructor.
 
Initialization methods
template<class func_t >
void init (func_t &func, size_t ord, fp_t a1, fp_t b1)
 Initialize a Chebyshev approximation of the function func over the interval from a1 to b1. More...
 
template<class vec_t >
void init (fp_t a1, fp_t b1, size_t ord, vec_t &v)
 Create an approximation from a vector of coefficients.
 
template<class vec_t >
void init_func_values (fp_t a1, fp_t b1, size_t ord, vec_t &fval)
 Create an approximation from a vector of function values.
 
Evaulation methods
fp_t eval (fp_t x) const
 Evaluate the approximation.
 
fp_t operator() (fp_t x) const
 Evaluate the approximation.
 
fp_t eval_n (size_t n, fp_t x) const
 Evaluate the approximation to a specified order.
 
void eval_err (fp_t x, fp_t &result, fp_t &abserr)
 Evaluate the approximation and give the uncertainty.
 
void eval_n_err (size_t n, fp_t x, fp_t &result, fp_t &abserr)
 Evaluate the approximation to a specified order and give the uncertainty.
 
Maniupulating coefficients and endpoints
fp_t get_coefficient (size_t ix) const
 Get a coefficient. More...
 
void set_coefficient (size_t ix, fp_t co)
 Set a coefficient. More...
 
void get_endpoints (fp_t &la, fp_t &lb)
 Return the endpoints of the approximation.
 
template<class vec_t >
void get_coefficients (size_t n, vec_t &v) const
 Get the coefficients.
 
template<class vec_t >
void set_coefficients (size_t n, const vec_t &v)
 Set the coefficients.
 
Derivatives and integrals
void deriv (cheb_approx_tl &gc) const
 Make gc an approximation to the derivative.
 
void integ (cheb_approx_tl &gc) const
 Make gc an approximation to the integral.
 

Protected Attributes

ubvector c
 Coefficients.
 
size_t order
 Order of the approximation.
 
fp_t a
 Lower end of the interval.
 
fp_t b
 Upper end of the interval.
 
size_t order_sp
 Single precision order.
 
ubvector f
 Function evaluated at Chebyshev points.
 
bool init_called
 True if init has been called.
 
fp_t pi
 Desc.
 

Member Function Documentation

◆ get_coefficient()

template<class fp_t = double>
fp_t o2scl::cheb_approx_tl< fp_t >::get_coefficient ( size_t  ix) const
inline

Legal values of the argument are 0 to order (inclusive)

Definition at line 351 of file cheb_approx.h.

◆ init()

template<class fp_t = double>
template<class func_t >
void o2scl::cheb_approx_tl< fp_t >::init ( func_t &  func,
size_t  ord,
fp_t  a1,
fp_t  b1 
)
inline

The interval must be specified so that $ a < b $ , so a and b are swapped if this is not the case.

Definition at line 120 of file cheb_approx.h.

◆ set_coefficient()

template<class fp_t = double>
void o2scl::cheb_approx_tl< fp_t >::set_coefficient ( size_t  ix,
fp_t  co 
)
inline

Legal values of the argument are 0 to order (inclusive)

Definition at line 365 of file cheb_approx.h.


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

Documentation generated with Doxygen. Provided under the GNU Free Documentation License (see License Information).