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

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

Detailed Description

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

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.

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

◆ eval()

template<typename Real >
static void libint2::FmEval_Reference2< Real >::eval ( Real *  Fm,
Real  t,
size_t  mmax 
)
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;

References libint2::FmEval_Reference< Real >::eval().

Referenced by libint2::FmEval_Taylor< Real, INTERPOLATION_ORDER >::FmEval_Taylor().


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