Class inte_multip_double_exp_boost (o2scl)

O2scl : Class List

class inte_multip_double_exp_boost

Multiprecision integration class using Boost.

Note

The uncertainties reported by this class depend on those returned by the boost integration object and are occasionally be underestimated.

Public Functions

inline inte_multip_double_exp_boost()
template<typename func_t, class fp_t>
inline int integ_err(func_t &func, fp_t a, fp_t b, fp_t &res, fp_t &err)

Integrate function func from a to b and place the result in res and the error in err.

template<typename func_t, class fp_t>
inline int integ_iu_err(func_t &func, fp_t a, fp_t &res, fp_t &err)

Integrate function func from a to b and place the result in res and the error in err.

template<typename func_t, class fp_t>
inline int integ_il_err(func_t &func, fp_t b, fp_t &res, fp_t &err)

Integrate function func from a to b and place the result in res and the error in err.

template<typename func_t, class fp_t>
inline int integ_i_err(func_t &func, fp_t &res, fp_t &err)

Integrate function func from a to b and place the result in res and the error in err.

template<typename func_t, class fp_t>
inline int integ_err_multip(func_t &&func, fp_t a, fp_t b, fp_t &res, fp_t &err, double integ_tol = -1.0)

Integrate function func from a to b using multipreicsion, placing the result in res and the error in err.

Warning

For sufficiently difficult integrands, this function may take a very long time to complete.

template<typename func_t, class fp_t>
inline int integ_iu_err_multip(func_t &&func, fp_t a, fp_t &res, fp_t &err, double integ_tol = -1.0)

Integrate function func from a to \( \infty \) using multipreicsion, placing the result in res and the error in err.

Warning

For sufficiently difficult integrands, this function may take a very long time to complete.

template<typename func_t, class fp_t>
inline int integ_il_err_multip(func_t &&func, fp_t b, fp_t &res, fp_t &err, double integ_tol = -1.0)

Integrate function func from \( -\infty \) to b using multipreicsion, placing the result in res and the error in err.

Warning

For sufficiently difficult integrands, this function may take a very long time to complete.

template<typename func_t, class fp_t>
inline int integ_i_err_multip(func_t &&func, fp_t &res, fp_t &err, double integ_tol = -1.0)

Integrate function func from \( -\infty \) to \( \infty \) using multipreicsion, placing the result in res and the error in err.

Warning

For sufficiently difficult integrands, this function may take a very long time to complete.

Public Members

double tol_rel_multip

The maximum relative uncertainty for multipreicsion integrals (default \( -1 \))

size_t levels

Number of refinement levels in last integral computed.

double tol_rel

The maximum relative uncertainty in the value of the integral (default \( 10^{-8} \))

double tol_abs

The maximum absolute uncertainty in the value of the integral (default \( 10^{-8} \))

double pow_tol_func

Power for tolerance of function evaluations (default 1.33)

int verbose

Verbosity parameter.

bool err_nonconv

If true, call the error handler if the integration does not succeed (default true)

Protected Types

typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<25>> cpp_dec_float_25
typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<35>> cpp_dec_float_35
typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<50>> cpp_dec_float_50
typedef boost::multiprecision::number<boost::multiprecision::cpp_dec_float<100>> cpp_dec_float_100

Protected Functions

template<typename func_t, class fp_t>
inline int integ_err_funct(func_t &&func, fp_t a, fp_t b, fp_t &res, fp_t &err, fp_t &L1norm_loc, double target_tol, double integ_tol)
template<typename func_t, class fp_t>
inline int integ_err_int(func_t &&func, fp_t a, fp_t b, fp_t &res, fp_t &err, fp_t &L1norm, double target_tol, double integ_tol, double func_tol)

Integrate function func from a to b and place the result in res and the error in err.

There are three tolerances:

  • target_tol is the target tolerance which is sent to the boost integration function. The error value returned by the boost integration function is often larger than this

  • integ_tol is the desired final tolerance of the integration. This function regards the integration as a failure if the error value is larger than integ_tol

  • func_tol is the tolerance for evaluations of the integrand. This value is passed to o2scl::funct_multip.

template<typename func_t, class fp_t>
inline int integ_iu_err_int(func_t &&func, fp_t a, fp_t &res, fp_t &err, fp_t &L1norm, double target_tol, double integ_tol, double func_tol)

Integrate function func from a to \( \infty \) and place the result in res and the error in err.

There are three tolerances:

  • target_tol is the target tolerance which is sent to the boost integration function. The error value returned by the boost integration function is often larger than this

  • integ_tol is the desired final tolerance of the integration. This function regards the integration as a failure if the error value is larger than integ_tol

  • func_tol is the tolerance for evaluations of the integrand. This value is passed to o2scl::funct_multip.

template<typename func_t, class fp_t>
inline int integ_il_err_int(func_t &&func, fp_t b, fp_t &res, fp_t &err, fp_t &L1norm, double target_tol, double integ_tol, double func_tol)

Integrate function func from a to \( \infty \) and place the result in res and the error in err.

There are three tolerances:

  • target_tol is the target tolerance which is sent to the boost integration function. The error value returned by the boost integration function is often larger than this

  • integ_tol is the desired final tolerance of the integration. This function regards the integration as a failure if the error value is larger than integ_tol

  • func_tol is the tolerance for evaluations of the integrand. This value is passed to o2scl::funct_multip.

template<typename func_t, class fp_t>
inline int integ_i_err_int(func_t &&func, fp_t &res, fp_t &err, fp_t &L1norm, double target_tol, double integ_tol, double func_tol)

Integrate function func from a to \( \infty \) and place the result in res and the error in err.

There are three tolerances:

  • target_tol is the target tolerance which is sent to the boost integration function. The error value returned by the boost integration function is often larger than this

  • integ_tol is the desired final tolerance of the integration. This function regards the integration as a failure if the error value is larger than integ_tol

  • func_tol is the tolerance for evaluations of the integrand. This value is passed to o2scl::funct_multip.

Protected Attributes

size_t max_refine

Maximum refinement level.