LIBINT
2.1.0-stable
|
Computes the Boys function, $ F_m (T) = ^1 u^{2m} (-T u^2) \, { d}u $, using multi-algorithm approach (upward precision for T>=30, and asymptotic summation for T<30). More...
#include <boys.h>
Static Public Member Functions | |
static void | eval (Real *Fm, Real t, size_t mmax, Real absolute_precision) |
fills up an array of Fm(T) for m in [0,mmax] More... | |
Computes the Boys function, $ F_m (T) = ^1 u^{2m} (-T u^2) \, { d}u $, using multi-algorithm approach (upward precision for T>=30, and asymptotic summation for T<30).
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 1e-14 precision for up to m=38 and 0<=T<=1e9 .
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; |
[in] | absolute_precision | the absolute precision to which to compute the result |
References libint2::FmEval_Reference< Real >::eval().
Referenced by libint2::FmEval_Chebyshev3< Real >::eval(), and libint2::FmEval_Taylor< Real, INTERPOLATION_ORDER >::FmEval_Taylor().