RandLib 2.0.0
Probability distributions, fitting, and heavy-tail tools for C++20
Loading...
Searching...
No Matches
functions.hpp File Reference
#include <array>
#include <cmath>
#include <concepts>
#include <functional>
#include <complex>
#include <limits>
#include <vector>
#include <utility>
#include <type_traits>
#include <algorithm>
#include <numeric>
#include <randlib/math/constants.hpp>
#include <randlib/math/gamma.hpp>
#include <randlib/math/special_functions.hpp>
#include <randlib/math/beta.hpp>
#include <randlib/math/quadrature.hpp>
#include <randlib/math/roots.hpp>
#include <randlib/math/optimize.hpp>
Include dependency graph for 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::detail
 

Functions

template<int TABLE_SIZE>
constexpr std::array< LongDoublePair, TABLE_SIZE > randlib::math::createZiggurat (const std::function< LongDoublePair(const LongDoublePair &)> &funPtr, LongDoublePair first, LongDoublePair second)
 
template<typename RealType >
bool randlib::math::detail::areClose (RealType a, RealType b, RealType eps=1e-6)
 
template<std::floating_point Real>
int randlib::math::sign (Real x)
 
template<std::floating_point Real>
Real randlib::math::atan (Real x)
 
template<std::floating_point Real>
Real randlib::math::softplus (Real x)
 
template<std::floating_point Real>
Real randlib::math::log1mexp (Real x)
 
template<std::floating_point Real>
Real randlib::math::logexpm1l (Real x)
 
template<std::floating_point Real>
Real randlib::math::log2mexp (Real x)
 
template<std::floating_point Real>
Real randlib::math::erfinv (Real p)
 
template<std::floating_point Real>
Real randlib::math::erfcinv (Real p)
 
template<std::floating_point Real>
Real randlib::math::erfcx (Real x)
 
template<std::floating_point Real>
Real randlib::math::xexpxsqerfc (Real x)
 xexpxsqerfc
 
template<std::floating_point Real>
Real randlib::math::harmonicNumber (Real exponent, int number)
 
template<std::floating_point Real>
Real randlib::math::logBesselI (std::type_identity_t< Real > nu, Real x)
 Calculates logarithm of modified Bessel function of the 1st kind.
 
template<std::floating_point Real>
Real randlib::math::logBesselK (std::type_identity_t< Real > nu, Real x)
 Calculates logarithm of modified Bessel function of the 2nd kind.
 
template<std::floating_point Real>
Real randlib::math::W0Lambert (Real x, std::type_identity_t< Real > epsilon=Real{1e-11})
 
template<std::floating_point Real>
std::complex< Real > randlib::math::W0Lambert (std::complex< Real > z)
 
template<std::floating_point Real>
Real randlib::math::Wm1Lambert (Real x, std::type_identity_t< Real > epsilon=Real{1e-11})
 
template<std::floating_point Real>
Real randlib::math::MarcumP (std::type_identity_t< Real > mu, Real x, std::type_identity_t< Real > y, std::type_identity_t< Real > sqrtX, std::type_identity_t< Real > sqrtY, std::type_identity_t< Real > logX, std::type_identity_t< Real > logY)
 
template<std::floating_point Real>
Real randlib::math::MarcumP (std::type_identity_t< Real > mu, Real x, std::type_identity_t< Real > y)
 
template<std::floating_point Real>
Real randlib::math::MarcumQ (std::type_identity_t< Real > mu, Real x, std::type_identity_t< Real > y, std::type_identity_t< Real > sqrtX, std::type_identity_t< Real > sqrtY, std::type_identity_t< Real > logX, std::type_identity_t< Real > logY)
 
template<std::floating_point Real>
Real randlib::math::MarcumQ (std::type_identity_t< Real > mu, Real x, std::type_identity_t< Real > y)
 
template<std::floating_point Real>
Real randlib::math::detail::erfinvChebyshevSeries (Real x, long double t, const long double *array, int size)
 
template<std::floating_point Real>
Real randlib::math::detail::erfinvAux1 (Real beta)
 
template<std::floating_point Real>
Real randlib::math::detail::erfinvAux2 (Real beta)
 
template<std::floating_point Real>
Real randlib::math::detail::erfinvAux3 (Real beta)
 
template<std::floating_point Real>
Real randlib::math::detail::erfinvAux4 (Real p)
 
template<std::floating_point Real>
Real randlib::math::detail::logHankelSeries (Real nu, Real x, int sign)
 
template<std::floating_point Real>
Real randlib::math::detail::WLambert (Real x, Real w0, Real epsilon)
 
template<std::floating_point Real>
Real randlib::math::detail::MarcumPSeries (Real mu, Real x, Real y, Real logX, Real logY)
 
template<std::floating_point Real>
Real randlib::math::detail::MarcumQSeries (Real mu, Real x, Real y, Real logX, Real logY)
 
template<std::floating_point Real>
Real randlib::math::detail::MarcumPSaddleSeries (Real mu, Real x, Real y, Real logX, Real logY)
 Σ e^{-x} x^n / n! P(μ + n, y), summed outwards from the dominant Poisson term.
 
template<std::floating_point Real>
Real randlib::math::detail::MarcumPAsymptoticForLargeXY (Real mu, Real x, Real y, Real sqrtX, Real sqrtY)
 
template<std::floating_point Real>
Real randlib::math::detail::MarcumPForMuSmallerThanOne (Real mu, Real x, Real y, Real logX, Real logY)
 
template<std::floating_point Real>
Real randlib::math::detail::MarcumQIntegrand (Real theta, Real xi, Real sqrt1pXiSq, Real mu, Real y)
 
template<std::floating_point Real>
Real randlib::math::detail::MarcumQIntergralRepresentation (Real mu, Real x, Real y, Real sqrtX, Real sqrtY)