LIBINT
2.6.0
|
Computes the Boys function, $ F_m (T) = \int_0^1 u^{2m} \exp(-T u^2) \, {\rm d}u $, using multi-algorithm approach (upward recursion for T>=117, and asymptotic summation for T<117). More...
#include <boys.h>
Static Public Member Functions | |
static std::shared_ptr< const FmEval_Reference2 > | instance (int, Real) |
static void | eval (Real *Fm, Real t, size_t mmax) |
fills up an array of Fm(T) for m in [0,mmax] More... | |
Computes the Boys function, $ F_m (T) = \int_0^1 u^{2m} \exp(-T u^2) \, {\rm d}u $, using multi-algorithm approach (upward recursion for T>=117, and asymptotic summation for T<117).
This is slow and should be used for reference purposes, e.g. computing the interpolation tables. Precision is not always guaranteed as it is limited by the precision of Real
type. When Real
is double
, can maintain absolute precision of epsilon for up to m=40.
Real | the type to use for all floating-point computations. Must be able to compute logarithm, exponential, square root, and error function, i.e. log(x), exp(x), sqrt(x), and erf(x), where x is Real, must be valid expressions. |
|
inlinestatic |
fills up an array of Fm(T) for m in [0,mmax]
[out] | Fm | array to be filled in with the Boys function values, must be at least mmax+1 elements long |
[in] | t | the Boys function argument |
[in] | mmax | the maximum value of m for which Boys function will be computed; |
References libint2::FmEval_Reference< Real >::eval().
Referenced by libint2::FmEval_Taylor< Real, INTERPOLATION_ORDER >::FmEval_Taylor().