LIBINT  2.1.0-stable
Static Public Member Functions | List of all members
libint2::FmEval_Reference2< Real > Struct Template Reference

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...
 

Detailed Description

template<typename Real>
struct libint2::FmEval_Reference2< Real >

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 .

Template Parameters
Realthe 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.

Member Function Documentation

template<typename Real >
static void libint2::FmEval_Reference2< Real >::eval ( Real *  Fm,
Real  t,
size_t  mmax,
Real  absolute_precision 
)
inlinestatic

fills up an array of Fm(T) for m in [0,mmax]

Parameters
[out]Fmarray to be filled in with the Boys function values, must be at least mmax+1 elements long
[in]tthe Boys function argument
[in]mmaxthe maximum value of m for which Boys function will be computed;
[in]absolute_precisionthe 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().


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