gsl_inte_singular Class Template Reference

Base class for integrating a function with a singularity (GSL). More...

#include <gsl_inte_qag_b.h>

Inheritance diagram for gsl_inte_singular:

gsl_inte_kronrod gsl_inte_table inte gsl_inte gsl_inte_qags gsl_inte_transform gsl_inte_cheb gsl_inte_qagi gsl_inte_qagil gsl_inte_qagiu gsl_inte_qawc gsl_inte_qawo_sin gsl_inte_qaws gsl_inte_qawf_sin gsl_inte_qawo_cos gsl_inte_qawf_cos

Detailed Description

template<class param_t, class func_t>
class gsl_inte_singular< param_t, func_t >

This class contains the extrapolation table mechanics and the base integration function for singular integrals from GSL. The casual end-user should use the classes explained in the Integration section of the User's guide.

Idea for future:
Some of the functions inside this class could be moved out of header files?

Definition at line 787 of file gsl_inte_qag_b.h.


Data Structures

struct  extrapolation_table
 A structure for extrapolation for gsl_inte_qags. More...

Protected Member Functions

void initialise_table (struct extrapolation_table *table)
 Initialize the table.
void append_table (struct extrapolation_table *table, double y)
 Append a result to the table.
int test_positivity (double result, double resabs)
 Test a result for positivity.
void qelg (struct extrapolation_table *table, double *result, double *abserr)
 Determines the limit of a given sequence of approximations.
int large_interval (gsl_integration_workspace *workspace)
 Determine if an interval is large.
void reset_nrmax (gsl_integration_workspace *workspace)
 Reset workspace to work on the interval with the largest error.
int increase_nrmax (gsl_integration_workspace *workspace)
 Increase workspace.
int qags (func_t &func, const int qn, const double xgk[], const double wg[], const double wgk[], double fv1[], double fv2[], const double a, const double b, const double l_epsabs, const double l_epsrel, const size_t limit, double *result, double *abserr, param_t &pa)
 Integration function.

Member Function Documentation

int qags ( func_t &  func,
const int  qn,
const double  xgk[],
const double  wg[],
const double  wgk[],
double  fv1[],
double  fv2[],
const double  a,
const double  b,
const double  l_epsabs,
const double  l_epsrel,
const size_t  limit,
double *  result,
double *  abserr,
param_t &  pa 
) [inline, protected]

Idea for future:
Remove goto statements.

Output iteration information

Definition at line 1077 of file gsl_inte_qag_b.h.

void qelg ( struct extrapolation_table table,
double *  result,
double *  abserr 
) [inline, protected]

This function determines the limit of a given sequence of approximations, by means of the epsilon algorithm of P. Wynn. an estimate of the absolute error is also given. the condensed epsilon table is computed. only those elements needed for the computation of the next diagonal are preserved.

Quadpack documentation

	c
	c           list of major variables
	c           -----------------------
	c           e0     - the 4 elements on which the computation of a new
	c           e1       element in the epsilon table is based
	c           e2
	c           e3                 e0
	c                        e3    e1    new
	c                              e2
	c           newelm - number of elements to be computed in the new
	c                    diagonal
	c           error  - error = abs(e1-e0)+abs(e2-e1)+abs(new-e2)
	c           result - the element in the new diagonal with least value
	c                    of error
	c
	c           machine dependent constants
	c           ---------------------------
	c
	c           epmach is the largest relative spacing.
	c           oflow is the largest positive magnitude.
	c           limexp is the maximum number of elements the epsilon
	c           table can contain. if this number is reached, the upper
	c           diagonal of the epsilon table is deleted.
	c
	

Definition at line 867 of file gsl_inte_qag_b.h.


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

Documentation generated with Doxygen and provided under the GNU Free Documentation License. See License Information for details.

Project hosting provided by SourceForge.net Logo, O2scl Sourceforge Project Page