#include <cern_adapt.h>
Uses cern_gauss56 to perform adaptive integration by automatically subdividing the integration interval. At each step, the interval with the largest absolute uncertainty is divided in o2sclf. The routine stops if the absolute tolerance is less than tolx, the relative tolerance is less than tolf, or the number of segments exceeds the template parameter nsub
(in which case the error handler is called, since the integration may not have been successful). The number of segments used in the last integration can be obtained from get_nsegments().
The template parameter nsub
, is the maximum number of subdivisions. It is automatically set to 100 in the original CERNLIB routine, and defaults to 100 here. The default base integration object is of type cern_gauss56. This is the CERNLIB default, but can be modified by calling set_inte().
Definition at line 63 of file cern_adapt.h.
Public Member Functions | |
cern_adapt () | |
int | set_inte (inte< param_t, func_t > &i) |
Set the base integration object to use. | |
size_t | get_nsegments () |
Return the number of segments used in the last integration. | |
int | get_ith_segment (size_t i, double &xlow, double &xhigh, double &value, double &errsq) |
Return the ith segment. | |
template<class vec_t> | |
int | get_segments (vec_t &xlow, vec_t &xhigh, vec_t &value, vec_t &errsq) |
Return all of the segments. | |
virtual double | integ (func_t &func, double a, double b, param_t &pa) |
Integrate function func from a to b . | |
virtual int | integ_err (func_t &func, double a, double b, param_t &pa, double &res, double &err) |
Integrate function func from a to b giving result res and error err . | |
Data Fields | |
size_t | nseg |
Number of subdivisions. | |
Protected Attributes | |
double | xlo [nsub] |
Lower end of subdivision. | |
double | xhi [nsub] |
High end of subdivision. | |
double | tval [nsub] |
Value of integral for subdivision. | |
double | ters [nsub] |
Squared error for subdivision. | |
int | nter |
Previous number of subdivisions. | |
cern_gauss56 < param_t, func_t > | cg56 |
Default integration object. | |
inte< param_t, func_t > * | it |
The base integration object. |
size_t nseg |
Number of subdivisions.
The options are
Definition at line 116 of file cern_adapt.h.