|
LIBINT 2.7.2
|
Computes the Boys function, $ F_m (T) = \int_0^1 u^{2m} \exp(-T u^2) \, {\rm d}u $, using Taylor interpolation of up to 8-th order. More...
#include <boys.h>
Public Member Functions | |
| FmEval_Taylor (unsigned int mmax, Real precision=std::numeric_limits< Real >::epsilon()) | |
Constructs the object to be able to compute Boys funcion for m in [0,mmax], with relative precision. | |
| int | max_m () const |
| Real | precision () const |
| void | eval (Real *Fm, Real T, int mmax) const |
| computes Boys function values with m index in range [0,mmax] More... | |
Static Public Member Functions | |
| static std::shared_ptr< const FmEval_Taylor > | instance (unsigned int mmax, Real precision=std::numeric_limits< Real >::epsilon()) |
| Singleton interface allows to manage the lone instance; adjusts max m and precision values as needed in thread-safe fashion. | |
Public Attributes | |
| const double | soft_zero_ |
Static Public Attributes | |
| static const int | max_interp_order = 8 |
| static const bool | INTERPOLATION_AND_RECURSION = false |
Computes the Boys function, $ F_m (T) = \int_0^1 u^{2m} \exp(-T u^2) \, {\rm d}u $, using Taylor interpolation of up to 8-th order.
| Real | the type to use for all floating-point computations. Following expressions must be valid: exp(Real), pow(Real), fabs(Real), max(Real), and floor(Real). |
| INTERPOLATION_ORDER | the interpolation order. The higher the order the less memory this object will need, but the computational cost will increase (usually very slightly) |
|
inline |
computes Boys function values with m index in range [0,mmax]
| [out] | Fm | array to be filled in with the Boys function values, must be at least mmax+1 elements long |
| [in] | x | the Boys function argument |
| [in] | mmax | the maximum value of m for which Boys function will be computed; it must be <= the value returned by max_m() (this is not checked) |
References libint2::simd::VectorSSEDouble::convert(), and libint2::simd::VectorAVXDouble::load().
|
inline |
|
inline |
Referenced by libint2::FmEval_Taylor< Real, INTERPOLATION_ORDER >::instance().