Object-oriented Scientific Computing Library: Version 0.910
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
gsl_inte_qawo_sin< func_t > Class Template Reference

Adaptive integration for oscillatory integrals (GSL) More...

#include <gsl_inte_qawo.h>

Inheritance diagram for gsl_inte_qawo_sin< func_t >:
gsl_inte_cheb< func_t > gsl_inte_transform< func_t > gsl_inte_singular< func_t > gsl_inte_kronrod< func_t > gsl_inte inte< func_t > gsl_inte_qawf_sin< func_t > gsl_inte_qawo_cos< func_t > gsl_inte_qawf_cos< func_t >

Detailed Description

template<class func_t>
class gsl_inte_qawo_sin< func_t >

The integral

\[ \int_a^b f(x) \sin (\omega x)~dx \]

is computed for some frequency parameter $ \omega $, stored in gsl_inte_qawo_sin::omega .

An adaptive algorithm together with an series-acceleration method like that of gsl_inte_qags is used. Those subintervals with "large" widths $ d \equiv b-a $ where $ d\omega > 4 $ are computed using a 25-point Clenshaw-Curtis integration rule to handle the oscillatory behavior. In order to work efficiently, the Chebyshev moments for the particular weight function $ W $ are computed in advance.

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

Definition at line 54 of file gsl_inte_qawo.h.

Public Member Functions

virtual int integ_err (func_t &func, double a, double b, double &res, double &err)
 Integrate function func from a to b and place the result in res and the error in err.

Data Fields

double omega
 The user-specified frequency (default 1.0)
size_t n_levels
 The number of bisection levels (default 10)

Protected Member Functions

int qawo (func_t &func, const double a, const double epsabs, const double epsrel, gsl_inte_workspace *loc_w, gsl_integration_qawo_table *wf, double *result, double *abserr)
 The full GSL integration routine called by integ_err()
void qc25f (func_t &func, double a, double b, gsl_integration_qawo_table *wf, size_t level, double *result, double *abserr, double *resabs, double *resasc)
 25-point quadrature for oscillating functions
virtual double transform (double t, func_t &func)
 Add the oscillating part to the integrand.
const char * type ()
 Return string denoting type ("gsl_inte_qawo_sin")

Protected Attributes

gsl_integration_qawo_table * otable
 The integration workspace.

Member Function Documentation

template<class func_t >
int gsl_inte_qawo_sin< func_t >::qawo ( func_t &  func,
const double  a,
const double  epsabs,
const double  epsrel,
gsl_inte_workspace loc_w,
gsl_integration_qawo_table *  wf,
double *  result,
double *  abserr 
) [inline, protected]
Idea for Future:
Remove goto statements.

Definition at line 102 of file gsl_inte_qawo.h.


The documentation for this class was generated from the following file:
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

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

Get Object-oriented Scientific Computing
Lib at SourceForge.net. Fast, secure and Free Open Source software
downloads.