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

Computes the Boys function, $ F_m (T) = \int_0^1 u^{2m} \exp(-T u^2) \, {\rm d}u $, using single algorithm (asymptotic expansion). More...

#include <boys.h>

Static Public Member Functions

static std::shared_ptr< const FmEval_Referenceinstance (int, Real)
 
static Real eval (Real T, size_t m)
 computes a single value of $ F_m(T) $ using MacLaurin series to full precision of 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_Reference< Real >

Computes the Boys function, $ F_m (T) = \int_0^1 u^{2m} \exp(-T u^2) \, {\rm d}u $, using single algorithm (asymptotic expansion).

Slow for the sake of precision control. Useful in two cases:

Note
Precision is controlled heuristically, i.e. cannot be guaranteed mathematically; will stop if absolute precision is reached, or precision of Real is exhausted. It is important that std::numeric_limits<Real> is defined appropriately.
Template Parameters
Realthe type to use for all floating-point computations. Must be able to compute logarithm and exponential, i.e. log(x) and exp(x), where x is Real, must be valid expressions.

Member Function Documentation

◆ eval()

template<typename Real >
static void libint2::FmEval_Reference< 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().


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