RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
special_functions.hpp File Reference
#include <cmath>
#include <concepts>
#include <limits>
#include <stdexcept>
#include <string>
#include <type_traits>
#include <randlib/math/constants.hpp>
#include <randlib/math/beta.hpp>
#include <randlib/math/functions.hpp>
#include <randlib/math/gamma.hpp>
#include <randlib/math/quadrature.hpp>
#include <randlib/math/roots.hpp>
#include <randlib/math/optimize.hpp>
Include dependency graph for special_functions.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  randlib
 
namespace  randlib::math
 Beta-related functions.
 
namespace  randlib::math::portable
 
namespace  randlib::math::detail
 

Functions

template<std::floating_point Real>
Real randlib::math::besselI (std::type_identity_t< Real > nu, Real x)
 
template<std::floating_point Real>
Real randlib::math::besselK (std::type_identity_t< Real > nu, Real x)
 
template<std::floating_point Real>
Real randlib::math::riemannZeta (Real s)
 
template<std::floating_point Real>
Real randlib::math::lgammaCorrection (Real x)
 
template<std::floating_point Real>
Real randlib::math::portable::besselI (std::type_identity_t< Real > nu, Real x)
 
template<std::floating_point Real>
Real randlib::math::portable::besselK (std::type_identity_t< Real > nu, Real x)
 
template<std::floating_point Real>
Real randlib::math::portable::riemannZeta (Real s)
 
template<std::floating_point Real>
void randlib::math::detail::reciprocalGammaTerms (Real mu, Real &gam1, Real &gam2, Real &gampl, Real &gammi)
 Values needed by Temme's series for |μ| ≤ 1/2: gam1 = (1/Γ(1-μ) - 1/Γ(1+μ)) / (2μ), gam2 = (1/Γ(1-μ) + 1/Γ(1+μ)) / 2, gampl = 1/Γ(1+μ), gammi = 1/Γ(1-μ).
 
template<std::floating_point Real>
void randlib::math::detail::besselIK (Real nu, Real x, Real &ri, Real &rk)
 Temme's method with Steed's continued fraction (Numerical Recipes, "bessik")
 
template<std::floating_point Real>
void randlib::math::detail::checkBesselArguments (Real nu, Real x)
 

Variables

template<std::floating_point Real>
constexpr Real randlib::math::detail::machineEpsilon = std::numeric_limits<Real>::epsilon()
 
constexpr int randlib::math::detail::maxSeriesIterations = 100000