|
libstdc++
|
Functions | |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | __gnu_cxx::airy_ai (_Tp __x) |
| float | __gnu_cxx::airy_aif (float __x) |
| long double | __gnu_cxx::airy_ail (long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | __gnu_cxx::airy_bi (_Tp __x) |
| float | __gnu_cxx::airy_bif (float __x) |
| long double | __gnu_cxx::airy_bil (long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::assoc_laguerre (unsigned int __n, unsigned int __m, _Tp __x) |
| float | std::assoc_laguerref (unsigned int __n, unsigned int __m, float __x) |
| long double | std::assoc_laguerrel (unsigned int __n, unsigned int __m, long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::assoc_legendre (unsigned int __l, unsigned int __m, _Tp __x) |
| float | std::assoc_legendref (unsigned int __l, unsigned int __m, float __x) |
| long double | std::assoc_legendrel (unsigned int __l, unsigned int __m, long double __x) |
| template<typename _Tpa, typename _Tpb> | |
| __gnu_cxx::__promote_2< _Tpa, _Tpb >::__type | std::beta (_Tpa __a, _Tpb __b) |
| float | std::betaf (float __a, float __b) |
| long double | std::betal (long double __a, long double __b) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::comp_ellint_1 (_Tp __k) |
| float | std::comp_ellint_1f (float __k) |
| long double | std::comp_ellint_1l (long double __k) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::comp_ellint_2 (_Tp __k) |
| float | std::comp_ellint_2f (float __k) |
| long double | std::comp_ellint_2l (long double __k) |
| template<typename _Tp, typename _Tpn> | |
| __gnu_cxx::__promote_2< _Tp, _Tpn >::__type | std::comp_ellint_3 (_Tp __k, _Tpn __nu) |
| float | std::comp_ellint_3f (float __k, float __nu) |
| long double | std::comp_ellint_3l (long double __k, long double __nu) |
| template<typename _Tpa, typename _Tpc, typename _Tp> | |
| __gnu_cxx::__promote_3< _Tpa, _Tpc, _Tp >::__type | __gnu_cxx::conf_hyperg (_Tpa __a, _Tpc __c, _Tp __x) |
| float | __gnu_cxx::conf_hypergf (float __a, float __c, float __x) |
| long double | __gnu_cxx::conf_hypergl (long double __a, long double __c, long double __x) |
| template<typename _Tpnu, typename _Tp> | |
| __gnu_cxx::__promote_2< _Tpnu, _Tp >::__type | std::cyl_bessel_i (_Tpnu __nu, _Tp __x) |
| float | std::cyl_bessel_if (float __nu, float __x) |
| long double | std::cyl_bessel_il (long double __nu, long double __x) |
| template<typename _Tpnu, typename _Tp> | |
| __gnu_cxx::__promote_2< _Tpnu, _Tp >::__type | std::cyl_bessel_j (_Tpnu __nu, _Tp __x) |
| float | std::cyl_bessel_jf (float __nu, float __x) |
| long double | std::cyl_bessel_jl (long double __nu, long double __x) |
| template<typename _Tpnu, typename _Tp> | |
| __gnu_cxx::__promote_2< _Tpnu, _Tp >::__type | std::cyl_bessel_k (_Tpnu __nu, _Tp __x) |
| float | std::cyl_bessel_kf (float __nu, float __x) |
| long double | std::cyl_bessel_kl (long double __nu, long double __x) |
| template<typename _Tpnu, typename _Tp> | |
| __gnu_cxx::__promote_2< _Tpnu, _Tp >::__type | std::cyl_neumann (_Tpnu __nu, _Tp __x) |
| float | std::cyl_neumannf (float __nu, float __x) |
| long double | std::cyl_neumannl (long double __nu, long double __x) |
| template<typename _Tp, typename _Tpp> | |
| __gnu_cxx::__promote_2< _Tp, _Tpp >::__type | std::ellint_1 (_Tp __k, _Tpp __phi) |
| float | std::ellint_1f (float __k, float __phi) |
| long double | std::ellint_1l (long double __k, long double __phi) |
| template<typename _Tp, typename _Tpp> | |
| __gnu_cxx::__promote_2< _Tp, _Tpp >::__type | std::ellint_2 (_Tp __k, _Tpp __phi) |
| float | std::ellint_2f (float __k, float __phi) |
| long double | std::ellint_2l (long double __k, long double __phi) |
| template<typename _Tp, typename _Tpn, typename _Tpp> | |
| __gnu_cxx::__promote_3< _Tp, _Tpn, _Tpp >::__type | std::ellint_3 (_Tp __k, _Tpn __nu, _Tpp __phi) |
| float | std::ellint_3f (float __k, float __nu, float __phi) |
| long double | std::ellint_3l (long double __k, long double __nu, long double __phi) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::expint (_Tp __x) |
| float | std::expintf (float __x) |
| long double | std::expintl (long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::hermite (unsigned int __n, _Tp __x) |
| float | std::hermitef (unsigned int __n, float __x) |
| long double | std::hermitel (unsigned int __n, long double __x) |
| template<typename _Tpa, typename _Tpb, typename _Tpc, typename _Tp> | |
| __gnu_cxx::__promote_4< _Tpa, _Tpb, _Tpc, _Tp >::__type | __gnu_cxx::hyperg (_Tpa __a, _Tpb __b, _Tpc __c, _Tp __x) |
| float | __gnu_cxx::hypergf (float __a, float __b, float __c, float __x) |
| long double | __gnu_cxx::hypergl (long double __a, long double __b, long double __c, long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::laguerre (unsigned int __n, _Tp __x) |
| float | std::laguerref (unsigned int __n, float __x) |
| long double | std::laguerrel (unsigned int __n, long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::legendre (unsigned int __l, _Tp __x) |
| float | std::legendref (unsigned int __l, float __x) |
| long double | std::legendrel (unsigned int __l, long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::riemann_zeta (_Tp __s) |
| float | std::riemann_zetaf (float __s) |
| long double | std::riemann_zetal (long double __s) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::sph_bessel (unsigned int __n, _Tp __x) |
| float | std::sph_besself (unsigned int __n, float __x) |
| long double | std::sph_bessell (unsigned int __n, long double __x) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::sph_legendre (unsigned int __l, unsigned int __m, _Tp __theta) |
| float | std::sph_legendref (unsigned int __l, unsigned int __m, float __theta) |
| long double | std::sph_legendrel (unsigned int __l, unsigned int __m, long double __theta) |
| template<typename _Tp> | |
| __gnu_cxx::__promote< _Tp >::__type | std::sph_neumann (unsigned int __n, _Tp __x) |
| float | std::sph_neumannf (unsigned int __n, float __x) |
| long double | std::sph_neumannl (unsigned int __n, long double __x) |
A collection of advanced mathematical special functions, defined by ISO/IEC IS 29124 and then added to ISO C++ 2017.
The first significant library upgrade on the road to C++2011, TR1, included a set of 23 mathematical functions that significantly extended the standard transcendental functions inherited from C and declared in <cmath>.
Although most components from TR1 were eventually adopted for C++11 these math functions were left behind out of concern for implementability. The math functions were published as a separate international standard IS 29124 - Extensions to the C++ Library to Support Mathematical Special Functions.
For C++17 these functions were incorporated into the main standard.
The following functions are implemented in namespace std:
The hypergeometric functions were stricken from the TR29124 and C++17 versions of this math library because of implementation concerns. However, since they were in the TR1 version and since they are popular we kept them as an extension in namespace __gnu_cxx:
The arguments suppled to the non-suffixed functions will be promoted according to the following rules:
If any of the floating point arguments supplied to these functions is invalid or NaN (std::numeric_limits<Tp>::quiet_NaN), the value NaN is returned.
We strive to implement the underlying math with type generic algorithms to the greatest extent possible. In practice, the functions are thin wrappers that dispatch to function templates. Type dependence is controlled with std::numeric_limits and functions thereof.
We don't promote float to double or double to long double reflexively. The goal is for float functions to operate more quickly, at the cost of float accuracy and possibly a smaller domain of validity. Similaryly, long double should give you more dynamic range and slightly more pecision than double on many systems.
These functions have been tested against equivalent implementations from the Gnu Scientific Library, GSL and Boost and the ratio
![\[ \frac{|f - f_{test}|}{|f_{test}|}
\]](form_48.png)
is generally found to be within 10-15 for 64-bit double on linux-x86_64 systems over most of the ranges of validity.
|
inline |
|
inline |
Return the Airy function 
float argument x.
Definition at line 1218 of file specfun.h.
References airy_aif().
Referenced by airy_aif().
|
inline |
Return the Airy function 
Definition at line 1229 of file specfun.h.
References airy_ail().
Referenced by airy_ail().
|
inline |
|
inline |
Return the Airy function 
float argument x.
Definition at line 1253 of file specfun.h.
References airy_bif().
Referenced by airy_bif().
|
inline |
Return the Airy function 
Definition at line 1264 of file specfun.h.
References airy_bil().
Referenced by airy_bil().
|
inline |
Return the associated Laguerre polynomial of nonnegative order n, nonnegative degree m and real argument x: 
The associated Laguerre function of real degree 

![\[ L_n^\alpha(x) = \frac{(\alpha + 1)_n}{n!}
{}_1F_1(-n; \alpha + 1; x)
\]](form_52.png)
where 

The associated Laguerre polynomial is defined for integral degree 
![\[ L_n^m(x) = (-1)^m \frac{d^m}{dx^m} L_{n + m}(x)
\]](form_56.png)
where the Laguerre polynomial is defined by:
![\[ L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
\]](form_57.png)
and 
n | _Tp | The floating-point type of the argument __x. |
| __n | The order of the Laguerre function, __n >= 0. |
| __m | The degree of the Laguerre function, __m >= 0. |
| __x | The argument of the Laguerre function, __x >= 0. |
| std::domain_error | if __x < 0. |
Definition at line 251 of file specfun.h.
References assoc_laguerre().
Referenced by assoc_laguerre().
|
inline |
Return the associated Laguerre polynomial of order n, degree m: 
float argument.
Definition at line 205 of file specfun.h.
References assoc_laguerref().
Referenced by assoc_laguerref().
|
inline |
Return the associated Laguerre polynomial of order n, degree m: 
Definition at line 215 of file specfun.h.
References assoc_laguerrel().
Referenced by assoc_laguerrel().
|
inline |
Return the associated Legendre function of degree l and order m.
The associated Legendre function is derived from the Legendre function 
![\[ P_l^m(x) = (1 - x^2)^{m/2}\frac{d^m}{dx^m}P_l(x)
\]](form_60.png)
l | _Tp | The floating-point type of the argument __x. |
| __l | The degree __l >= 0. |
| __m | The order __m <= l. |
| __x | The argument, abs(__x) <= 1. |
| std::domain_error | if abs(__x) > 1. |
Definition at line 297 of file specfun.h.
References assoc_legendre().
Referenced by assoc_legendre().
|
inline |
Return the associated Legendre function of degree l and order m for float argument.
Definition at line 266 of file specfun.h.
References assoc_legendref().
Referenced by assoc_legendref().
|
inline |
Return the associated Legendre function of degree l and order m.
Definition at line 275 of file specfun.h.
References assoc_legendrel().
Referenced by assoc_legendrel().
|
inline |
Return the beta function, 
a, b.
The beta function is defined by
![\[ B(a,b) = \int_0^1 t^{a - 1} (1 - t)^{b - 1} dt
= \frac{\Gamma(a)\Gamma(b)}{\Gamma(a+b)}
\]](form_63.png)
where 

| _Tpa | The floating-point type of the parameter __a. |
| _Tpb | The floating-point type of the parameter __b. |
| __a | The first argument of the beta function, __a > 0 . |
| __b | The second argument of the beta function, __b > 0 . |
| std::domain_error | if __a < 0 or __b < 0 . |
Definition at line 342 of file specfun.h.
References beta().
Referenced by beta().
|
inline |
|
inline |
|
inline |
Return the complete elliptic integral of the first kind 
k.
The complete elliptic integral of the first kind is defined as
![\[ K(k) = F(k,\pi/2) = \int_0^{\pi/2}\frac{d\theta}
{\sqrt{1 - k^2 sin^2\theta}}
\]](form_68.png)
where 

| _Tp | The floating-point type of the modulus __k. |
| __k | The modulus, abs(__k) <= 1 |
| std::domain_error | if abs(__k) > 1 . |
Definition at line 390 of file specfun.h.
References comp_ellint_1().
Referenced by comp_ellint_1().
|
inline |
Return the complete elliptic integral of the first kind 
float modulus k.
Definition at line 357 of file specfun.h.
References comp_ellint_1f().
Referenced by comp_ellint_1f().
|
inline |
Return the complete elliptic integral of the first kind 
k.
Definition at line 367 of file specfun.h.
References comp_ellint_1l().
Referenced by comp_ellint_1l().
|
inline |
Return the complete elliptic integral of the second kind 
k.
The complete elliptic integral of the second kind is defined as
![\[ E(k) = E(k,\pi/2) = \int_0^{\pi/2}\sqrt{1 - k^2 sin^2\theta}
\]](form_71.png)
where 

| _Tp | The floating-point type of the modulus __k. |
| __k | The modulus, abs(__k) <= 1 |
| std::domain_error | if abs(__k) > 1. |
Definition at line 437 of file specfun.h.
References comp_ellint_2().
Referenced by comp_ellint_2().
|
inline |
Return the complete elliptic integral of the second kind 
float modulus k.
Definition at line 405 of file specfun.h.
References comp_ellint_2f().
Referenced by comp_ellint_2f().
|
inline |
Return the complete elliptic integral of the second kind 
k.
Definition at line 415 of file specfun.h.
References comp_ellint_2l().
Referenced by comp_ellint_2l().
|
inline |
Return the complete elliptic integral of the third kind 
k.
The complete elliptic integral of the third kind is defined as
![\[ \Pi(k,\nu) = \Pi(k,\nu,\pi/2) = \int_0^{\pi/2}
\frac{d\theta}
{(1 - \nu \sin^2\theta)\sqrt{1 - k^2 \sin^2\theta}}
\]](form_75.png)
where 

| _Tp | The floating-point type of the modulus __k. |
| _Tpn | The floating-point type of the argument __nu. |
| __k | The modulus, abs(__k) <= 1 |
| __nu | The argument |
| std::domain_error | if abs(__k) > 1. |
Definition at line 488 of file specfun.h.
References comp_ellint_3().
Referenced by comp_ellint_3().
|
inline |
Return the complete elliptic integral of the third kind 
float modulus k.
Definition at line 452 of file specfun.h.
References comp_ellint_3f().
Referenced by comp_ellint_3f().
|
inline |
Return the complete elliptic integral of the third kind 
k.
Definition at line 462 of file specfun.h.
References comp_ellint_3l().
Referenced by comp_ellint_3l().
|
inline |
Return the confluent hypergeometric function 
a, denominatorial parameter c, and argument x.
The confluent hypergeometric function is defined by
![\[ {}_1F_1(a;c;x) = \sum_{n=0}^{\infty} \frac{(a)_n x^n}{(c)_n n!}
\]](form_120.png)
where the Pochhammer symbol is 

| __a | The numeratorial parameter |
| __c | The denominatorial parameter |
| __x | The argument |
Definition at line 1326 of file specfun.h.
References conf_hyperg().
Referenced by conf_hyperg().
|
inline |
Return the confluent hypergeometric function 
float numeratorial parameter a, denominatorial parameter c, and argument x.
Definition at line 1294 of file specfun.h.
References conf_hypergf().
Referenced by conf_hypergf().
|
inline |
Return the confluent hypergeometric function 
a, denominatorial parameter c, and argument x.
Definition at line 1305 of file specfun.h.
References conf_hypergl().
Referenced by conf_hypergl().
|
inline |
Return the regular modified Bessel function 


The regular modified cylindrical Bessel function is:
![\[ I_{\nu}(x) = i^{-\nu}J_\nu(ix) = \sum_{k=0}^{\infty}
\frac{(x/2)^{\nu + 2k}}{k!\Gamma(\nu+k+1)}
\]](form_79.png)
| _Tpnu | The floating-point type of the order __nu. |
| _Tp | The floating-point type of the argument __x. |
| __nu | The order |
| __x | The argument, __x >= 0 |
| std::domain_error | if __x < 0 . |
Definition at line 534 of file specfun.h.
References cyl_bessel_i().
Referenced by cyl_bessel_i().
|
inline |
Return the regular modified Bessel function 
float order 

Definition at line 503 of file specfun.h.
References cyl_bessel_if().
Referenced by cyl_bessel_if().
|
inline |
Return the regular modified Bessel function 


Definition at line 513 of file specfun.h.
References cyl_bessel_il().
Referenced by cyl_bessel_il().
|
inline |
Return the Bessel function 


The cylindrical Bessel function is:
![\[ J_{\nu}(x) = \sum_{k=0}^{\infty}
\frac{(-1)^k (x/2)^{\nu + 2k}}{k!\Gamma(\nu+k+1)}
\]](form_81.png)
| _Tpnu | The floating-point type of the order __nu. |
| _Tp | The floating-point type of the argument __x. |
| __nu | The order |
| __x | The argument, __x >= 0 |
| std::domain_error | if __x < 0 . |
Definition at line 580 of file specfun.h.
References cyl_bessel_j().
Referenced by cyl_bessel_j().
|
inline |
Return the Bessel function of the first kind 
float order 

Definition at line 549 of file specfun.h.
References cyl_bessel_jf().
Referenced by cyl_bessel_jf().
|
inline |
Return the Bessel function of the first kind 


Definition at line 559 of file specfun.h.
References cyl_bessel_jl().
Referenced by cyl_bessel_jl().
|
inline |
Return the irregular modified Bessel function 


The irregular modified Bessel function is defined by:
![\[ K_{\nu}(x) = \frac{\pi}{2}
\frac{I_{-\nu}(x) - I_{\nu}(x)}{\sin \nu\pi}
\]](form_84.png)
where for integral 

![\[ K_{-\nu}(x) = K_{\nu}(x)
\]](form_87.png)
| _Tpnu | The floating-point type of the order __nu. |
| _Tp | The floating-point type of the argument __x. |
| __nu | The order |
| __x | The argument, __x >= 0 |
| std::domain_error | if __x < 0 . |
Definition at line 632 of file specfun.h.
References cyl_bessel_k().
Referenced by cyl_bessel_k().
|
inline |
Return the irregular modified Bessel function 
float order 

Definition at line 595 of file specfun.h.
References cyl_bessel_kf().
Referenced by cyl_bessel_kf().
|
inline |
Return the irregular modified Bessel function 


Definition at line 605 of file specfun.h.
References cyl_bessel_kl().
Referenced by cyl_bessel_kl().
|
inline |
Return the Neumann function 


The Neumann function is defined by:
![\[ N_{\nu}(x) = \frac{J_{\nu}(x) \cos \nu\pi - J_{-\nu}(x)}
{\sin \nu\pi}
\]](form_89.png)
where 


| _Tpnu | The floating-point type of the order __nu. |
| _Tp | The floating-point type of the argument __x. |
| __nu | The order |
| __x | The argument, __x >= 0 |
| std::domain_error | if __x < 0 . |
Definition at line 680 of file specfun.h.
References cyl_neumann().
Referenced by cyl_neumann().
|
inline |
Return the Neumann function 
float order 

Definition at line 647 of file specfun.h.
References cyl_neumannf().
Referenced by cyl_neumannf().
|
inline |
Return the Neumann function 


Definition at line 657 of file specfun.h.
References cyl_neumannl().
Referenced by cyl_neumannl().
|
inline |
Return the incomplete elliptic integral of the first kind 
real modulus 

The incomplete elliptic integral of the first kind is defined as
![\[ F(k,\phi) = \int_0^{\phi}\frac{d\theta}
{\sqrt{1 - k^2 sin^2\theta}}
\]](form_92.png)
For 

| _Tp | The floating-point type of the modulus __k. |
| _Tpp | The floating-point type of the angle __phi. |
| __k | The modulus, abs(__k) <= 1 |
| __phi | The integral limit argument in radians |
| std::domain_error | if abs(__k) > 1 . |
Definition at line 728 of file specfun.h.
References ellint_1().
Referenced by ellint_1().
|
inline |
Return the incomplete elliptic integral of the first kind 
float modulus 

Definition at line 695 of file specfun.h.
References ellint_1f().
Referenced by ellint_1f().
|
inline |
Return the incomplete elliptic integral of the first kind 


Definition at line 705 of file specfun.h.
References ellint_1l().
Referenced by ellint_1l().
|
inline |
Return the incomplete elliptic integral of the second kind 
The incomplete elliptic integral of the second kind is defined as
![\[ E(k,\phi) = \int_0^{\phi} \sqrt{1 - k^2 sin^2\theta}
\]](form_94.png)
For 

| _Tp | The floating-point type of the modulus __k. |
| _Tpp | The floating-point type of the angle __phi. |
| __k | The modulus, abs(__k) <= 1 |
| __phi | The integral limit argument in radians |
| std::domain_error | if abs(__k) > 1 . |
Definition at line 776 of file specfun.h.
References ellint_2().
Referenced by ellint_2().
|
inline |
Return the incomplete elliptic integral of the second kind 
float argument.
Definition at line 743 of file specfun.h.
References ellint_2f().
Referenced by ellint_2f().
|
inline |
Return the incomplete elliptic integral of the second kind 
Definition at line 753 of file specfun.h.
References ellint_2l().
Referenced by ellint_2l().
|
inline |
Return the incomplete elliptic integral of the third kind 
The incomplete elliptic integral of the third kind is defined by:
![\[ \Pi(k,\nu,\phi) = \int_0^{\phi}
\frac{d\theta}
{(1 - \nu \sin^2\theta)
\sqrt{1 - k^2 \sin^2\theta}}
\]](form_95.png)
For 

| _Tp | The floating-point type of the modulus __k. |
| _Tpn | The floating-point type of the argument __nu. |
| _Tpp | The floating-point type of the angle __phi. |
| __k | The modulus, abs(__k) <= 1 |
| __nu | The second argument |
| __phi | The integral limit argument in radians |
| std::domain_error | if abs(__k) > 1 . |
Definition at line 829 of file specfun.h.
References ellint_3().
Referenced by ellint_3().
|
inline |
Return the incomplete elliptic integral of the third kind 
float argument.
Definition at line 791 of file specfun.h.
References ellint_3f().
Referenced by ellint_3f().
|
inline |
Return the incomplete elliptic integral of the third kind 
Definition at line 801 of file specfun.h.
References ellint_3l().
Referenced by ellint_3l().
|
inline |
Return the exponential integral 
real argument x.
The exponential integral is given by
![\[ Ei(x) = -\int_{-x}^\infty \frac{e^t}{t} dt
\]](form_97.png)
| _Tp | The floating-point type of the argument __x. |
| __x | The argument of the exponential integral function. |
Definition at line 869 of file specfun.h.
References expint().
Referenced by expint().
|
inline |
|
inline |
|
inline |
Return the Hermite polynomial 
real argument x.
The Hermite polynomial is defined by:
![\[ H_n(x) = (-1)^n e^{x^2} \frac{d^n}{dx^n} e^{-x^2}
\]](form_99.png)
The Hermite polynomial obeys a reflection formula:
![\[ H_n(-x) = (-1)^n H_n(x)
\]](form_100.png)
| _Tp | The floating-point type of the argument __x. |
| __n | The order |
| __x | The argument |
Definition at line 917 of file specfun.h.
References hermite().
Referenced by hermite().
|
inline |
Return the Hermite polynomial 
x.
Definition at line 884 of file specfun.h.
References hermitef().
Referenced by hermitef().
|
inline |
Return the Hermite polynomial 
x.
Definition at line 894 of file specfun.h.
References hermitel().
Referenced by hermitel().
|
inline |
Return the hypergeometric function 
a and b, denominatorial parameter c, and argument x.
The hypergeometric function is defined by
![\[ {}_2F_1(a;c;x) = \sum_{n=0}^{\infty} \frac{(a)_n (b)_n x^n}{(c)_n n!}
\]](form_124.png)
where the Pochhammer symbol is 

| __a | The first numeratorial parameter |
| __b | The second numeratorial parameter |
| __c | The denominatorial parameter |
| __x | The argument |
Definition at line 1375 of file specfun.h.
References hyperg().
Referenced by hyperg().
|
inline |
|
inline |
|
inline |
Returns the Laguerre polynomial 
n and real argument 
The Laguerre polynomial is defined by:
![\[ L_n(x) = \frac{e^x}{n!} \frac{d^n}{dx^n} (x^ne^{-x})
\]](form_57.png)
| _Tp | The floating-point type of the argument __x. |
| __n | The nonnegative order |
| __x | The argument __x >= 0 |
| std::domain_error | if __x < 0 . |
Definition at line 961 of file specfun.h.
References laguerre().
Referenced by laguerre().
|
inline |
Returns the Laguerre polynomial 
n and float argument 
Definition at line 932 of file specfun.h.
References laguerref().
Referenced by laguerref().
|
inline |
Returns the Laguerre polynomial 
n and long double argument 
Definition at line 942 of file specfun.h.
References laguerrel().
Referenced by laguerrel().
|
inline |
Return the Legendre polynomial 


The Legendre function of order 


![\[ P_l(x) = \frac{1}{2^l l!}\frac{d^l}{dx^l}(x^2 - 1)^{l}
\]](form_104.png)
| _Tp | The floating-point type of the argument __x. |
| __l | The degree ![]() |
| __x | The argument abs(__x) <= 1 |
| std::domain_error | if abs(__x) > 1 |
Definition at line 1006 of file specfun.h.
References legendre().
Referenced by legendre().
|
inline |
Return the Legendre polynomial 

float argument 
Definition at line 976 of file specfun.h.
References legendref().
Referenced by legendref().
|
inline |
Return the Legendre polynomial 


Definition at line 986 of file specfun.h.
References legendrel().
Referenced by legendrel().
|
inline |
Return the Riemann zeta function 

The Riemann zeta function is defined by:
![\[ \zeta(s) = \sum_{k=1}^{\infty} k^{-s} \hbox{ for } s > 1
\]](form_108.png)
and
![\[ \zeta(s) = \frac{1}{1-2^{1-s}}\sum_{k=1}^{\infty}(-1)^{k-1}k^{-s}
\hbox{ for } 0 <= s <= 1
\]](form_109.png)
For s < 1 use the reflection formula:
![\[ \zeta(s) = 2^s \pi^{s-1} \sin(\frac{\pi s}{2}) \Gamma(1-s) \zeta(1-s)
\]](form_110.png)
| _Tp | The floating-point type of the argument __s. |
| __s | The argument s != 1 |
Definition at line 1057 of file specfun.h.
References riemann_zeta().
Referenced by riemann_zeta().
|
inline |
Return the Riemann zeta function 
float argument 
Definition at line 1021 of file specfun.h.
References riemann_zetaf().
Referenced by riemann_zetaf().
|
inline |
Return the Riemann zeta function 

Definition at line 1031 of file specfun.h.
References riemann_zetal().
Referenced by riemann_zetal().
|
inline |
Return the spherical Bessel function 

The spherical Bessel function is defined by:
![\[ j_n(x) = \left(\frac{\pi}{2x} \right) ^{1/2} J_{n+1/2}(x)
\]](form_112.png)
| _Tp | The floating-point type of the argument __x. |
| __n | The integral order n >= 0 |
| __x | The real argument x >= 0 |
| std::domain_error | if __x < 0 . |
Definition at line 1101 of file specfun.h.
References sph_bessel().
Referenced by sph_bessel().
|
inline |
Return the spherical Bessel function 
float argument 
Definition at line 1072 of file specfun.h.
References sph_besself().
Referenced by sph_besself().
|
inline |
Return the spherical Bessel function 

Definition at line 1082 of file specfun.h.
References sph_bessell().
Referenced by sph_bessell().
|
inline |
Return the spherical Legendre function of nonnegative integral degree l and order m and real angle 
The spherical Legendre function is defined by
![\[ Y_l^m(\theta,\phi) = (-1)^m[\frac{(2l+1)}{4\pi}
\frac{(l-m)!}{(l+m)!}]
P_l^m(\cos\theta) \exp^{im\phi}
\]](form_114.png)
| _Tp | The floating-point type of the angle __theta. |
| __l | The order __l >= 0 |
| __m | The degree __m >= 0 and __m <= __l |
| __theta | The radian polar angle argument |
Definition at line 1148 of file specfun.h.
References sph_legendre().
Referenced by sph_legendre().
|
inline |
Return the spherical Legendre function of nonnegative integral degree l and order m and float angle 
Definition at line 1116 of file specfun.h.
References sph_legendref().
Referenced by sph_legendref().
|
inline |
Return the spherical Legendre function of nonnegative integral degree l and order m and long double angle 
Definition at line 1127 of file specfun.h.
References sph_legendrel().
Referenced by sph_legendrel().
|
inline |
Return the spherical Neumann function of integral order 

The spherical Neumann function is defined by
![\[ n_n(x) = \left(\frac{\pi}{2x} \right) ^{1/2} N_{n+1/2}(x)
\]](form_116.png)
| _Tp | The floating-point type of the argument __x. |
| __n | The integral order n >= 0 |
| __x | The real argument __x >= 0 |
| std::domain_error | if __x < 0 . |
Definition at line 1192 of file specfun.h.
References sph_neumann().
Referenced by sph_neumann().
|
inline |
Return the spherical Neumann function of integral order 
float argument 
Definition at line 1163 of file specfun.h.
References sph_neumannf().
Referenced by sph_neumannf().
|
inline |
Return the spherical Neumann function of integral order 

Definition at line 1173 of file specfun.h.
References sph_neumannl().
Referenced by sph_neumannl().