Packet-type friendly implementation of: More...
Go to the source code of this file.
Namespaces | |
| namespace | bbm |
Functions | |
| template<typename TA , typename TX , size_t MaxTerm = 100> | |
| auto | tgamma_lower (const TA &a, const TX &x) |
| Unnormalized incomplete lower gamma function. | |
| template<typename TA , typename TX , size_t MaxTerm = 100> | |
| auto | gamma_p (const TA &a, const TX &x) |
| Normalized incomplete lower gamma function. | |
| template<typename TA , typename TX , size_t MaxTerm = 100> | |
| auto | tgamma (const TA &a, const TX &x) |
| Unnormalized incomplete upper gamma function. | |
| template<typename TA , typename TX , size_t MaxTerm = 100> | |
| auto | gamma_q (const TA &a, const TX &x) |
| Normalized incomplete upper gamma function. | |
| template<typename TA , typename TX , size_t MaxTerm = 100> | |
| auto | gamma_pq (const TA &a, const TX &x) |
| Normalized incomplete upper and lower gamma function. | |
Packet-type friendly implementation of:
Follows for (a < 20) "Numerical Recipes in C++, The Art of Scientific Computing, 2nd ed.", Press et al., p 221, Sec. 6.2.
and
Follow for (a > 20): "The asymptotic expansion of the incomplete gamma functions", Temme [1979]: https://doi.org/10.1137/0510071
The accuracy for x < 1.1 is not optimal, and higher accuracy can be achieved following the additional steps described at https://www.boost.org/doc/libs/1_64_0/libs/math/doc/html/math_toolkit/sf_gamma/igamma.html