std::tr1::__detail(3)

NAME

std::tr1::__detail

Detailed Description

Implementation details not part of the namespace std::tr1 interface.

SYNOPSIS

Classes
    struct __floating_point_constant
        A class to encapsulate type dependent floating point constants. Not
        everything will be able to be expressed as type logic.
    struct __numeric_constants
        A structure for numeric constants.
Functions
    template<typename _Tp> void __airy (const _Tp __x, _Tp &__Ai, _Tp
        &__Bi, _Tp &__Aip, _Tp &__Bip)
    template<typename _Tp> _Tp __assoc_laguerre (const unsigned int __n,
        const unsigned int __m, const _Tp __x)
    template<typename _Tp> _Tp __assoc_legendre_p (const unsigned int __l,
        const unsigned int __m, const _Tp __x)
    template<typename _Tp> _Tp __bernoulli (const int __n)
    template<typename _Tp> _Tp __bernoulli_series (unsigned int __n)
    template<typename _Tp> void __bessel_ik (const _Tp __nu, const _Tp __x,
        _Tp &__Inu, _Tp &__Knu, _Tp &__Ipnu, _Tp &__Kpnu)
    template<typename _Tp> void __bessel_jn (const _Tp __nu, const _Tp __x,
        _Tp &__Jnu, _Tp &__Nnu, _Tp &__Jpnu, _Tp &__Npnu)
    template<typename _Tp> _Tp __beta (_Tp __x, _Tp __y)
    template<typename _Tp> _Tp __beta_gamma (_Tp __x, _Tp __y)
    template<typename _Tp> _Tp __beta_lgamma (_Tp __x, _Tp __y)
    template<typename _Tp> _Tp __beta_product (_Tp __x, _Tp __y)
    template<typename _Tp> _Tp __bincoef (const unsigned int __n, const
        unsigned int __k)
    template<typename _Tp> _Tp __comp_ellint_1 (const _Tp __k)
    template<typename _Tp> _Tp __comp_ellint_1_series (const _Tp __k)
    template<typename _Tp> _Tp __comp_ellint_2 (const _Tp __k)
    template<typename _Tp> _Tp __comp_ellint_2_series (const _Tp __k)
    template<typename _Tp> _Tp __comp_ellint_3 (const _Tp __k, const _Tp
        __nu)
    template<typename _Tp> _Tp __conf_hyperg (const _Tp __a, const _Tp __c,
        const _Tp __x)
    template<typename _Tp> _Tp __conf_hyperg_luke (const _Tp __a, const _Tp
        __c, const _Tp __xin)
    template<typename _Tp> _Tp __conf_hyperg_series (const _Tp __a, const
        _Tp __c, const _Tp __x)
    template<typename _Tp> _Tp __cyl_bessel_i (const _Tp __nu, const _Tp
        __x)
    template<typename _Tp> _Tp __cyl_bessel_ij_series (const _Tp __nu,
        const _Tp __x, const _Tp __sgn, const unsigned int __max_iter)
    template<typename _Tp> _Tp __cyl_bessel_j (const _Tp __nu, const _Tp
        __x)
    template<typename _Tp> void __cyl_bessel_jn_asymp (const _Tp __nu,
        const _Tp __x, _Tp &__Jnu, _Tp &__Nnu)
    template<typename _Tp> _Tp __cyl_bessel_k (const _Tp __nu, const _Tp
        __x)
    template<typename _Tp> _Tp __cyl_neumann_n (const _Tp __nu, const _Tp
        __x)
    template<typename _Tp> _Tp __ellint_1 (const _Tp __k, const _Tp __phi)
    template<typename _Tp> _Tp __ellint_2 (const _Tp __k, const _Tp __phi)
    template<typename _Tp> _Tp __ellint_3 (const _Tp __k, const _Tp __nu,
        const _Tp __phi)
    template<typename _Tp> _Tp __ellint_rc (const _Tp __x, const _Tp __y)
    template<typename _Tp> _Tp __ellint_rd (const _Tp __x, const _Tp __y,
        const _Tp __z)
    template<typename _Tp> _Tp __ellint_rf (const _Tp __x, const _Tp __y,
        const _Tp __z)
    template<typename _Tp> _Tp __ellint_rj (const _Tp __x, const _Tp __y,
        const _Tp __z, const _Tp __p)
    template<typename _Tp> _Tp __expint (const _Tp __x)
    template<typename _Tp> _Tp __expint (const unsigned int __n, const _Tp
        __x)
    template<typename _Tp> _Tp __expint_asymp (const unsigned int __n,
        const _Tp __x)
    template<typename _Tp> _Tp __expint_E1 (const _Tp __x)
    template<typename _Tp> _Tp __expint_E1_asymp (const _Tp __x)
    template<typename _Tp> _Tp __expint_E1_series (const _Tp __x)
    template<typename _Tp> _Tp __expint_Ei (const _Tp __x)
    template<typename _Tp> _Tp __expint_Ei_asymp (const _Tp __x)
    template<typename _Tp> _Tp __expint_Ei_series (const _Tp __x)
    template<typename _Tp> _Tp __expint_En_cont_frac (const unsigned int
        __n, const _Tp __x)
    template<typename _Tp> _Tp __expint_En_recursion (const unsigned int
        __n, const _Tp __x)
    template<typename _Tp> _Tp __expint_En_series (const unsigned int __n,
        const _Tp __x)
    template<typename _Tp> _Tp __expint_large_n (const unsigned int __n,
        const _Tp __x)
    template<typename _Tp> _Tp __gamma (const _Tp __x)
    template<typename _Tp> void __gamma_temme (const _Tp __mu, _Tp &__gam1,
        _Tp &__gam2, _Tp &__gampl, _Tp &__gammi)
    template<typename _Tp> _Tp __hurwitz_zeta (const _Tp __a, const _Tp
        __s)
    template<typename _Tp> _Tp __hurwitz_zeta_glob (const _Tp __a, const
        _Tp __s)
    template<typename _Tp> _Tp __hyperg (const _Tp __a, const _Tp __b,
        const _Tp __c, const _Tp __x)
    template<typename _Tp> _Tp __hyperg_luke (const _Tp __a, const _Tp __b,
        const _Tp __c, const _Tp __xin)
    template<typename _Tp> _Tp __hyperg_reflect (const _Tp __a, const _Tp
        __b, const _Tp __c, const _Tp __x)
    template<typename _Tp> _Tp __hyperg_series (const _Tp __a, const _Tp
        __b, const _Tp __c, const _Tp __x)
    template<typename _Tp> bool __isnan (const _Tp __x)
    template<> bool __isnan< float > (const float __x)
    template<> bool __isnan< long double > (const long double __x)
    template<typename _Tp> _Tp __laguerre (const unsigned int __n, const
        _Tp __x)
    template<typename _Tp> _Tp __log_bincoef (const unsigned int __n, const
        unsigned int __k)
    template<typename _Tp> _Tp __log_gamma (const _Tp __x)
    template<typename _Tp> _Tp __log_gamma_bernoulli (const _Tp __x)
    template<typename _Tp> _Tp __log_gamma_lanczos (const _Tp __x)
    template<typename _Tp> _Tp __log_gamma_sign (const _Tp __x)
    template<typename _Tp> _Tp __poly_hermite (const unsigned int __n,
        const _Tp __x)
    template<typename _Tp> _Tp __poly_hermite_recursion (const unsigned int
        __n, const _Tp __x)
    template<typename _Tpa, typename _Tp> _Tp __poly_laguerre (const
        unsigned int __n, const _Tpa __alpha1, const _Tp __x)
    template<typename _Tpa, typename _Tp> _Tp __poly_laguerre_hyperg (const
        unsigned int __n, const _Tpa __alpha1, const _Tp __x)
    template<typename _Tpa, typename _Tp> _Tp __poly_laguerre_large_n
        (const unsigned __n, const _Tpa __alpha1, const _Tp __x)
    template<typename _Tpa, typename _Tp> _Tp __poly_laguerre_recursion
        (const unsigned int __n, const _Tpa __alpha1, const _Tp __x)
    template<typename _Tp> _Tp __poly_legendre_p (const unsigned int __l,
        const _Tp __x)
    template<typename _Tp> _Tp __psi (const unsigned int __n, const _Tp
        __x)
    template<typename _Tp> _Tp __psi (const _Tp __x)
    template<typename _Tp> _Tp __psi_asymp (const _Tp __x)
    template<typename _Tp> _Tp __psi_series (const _Tp __x)
    template<typename _Tp> _Tp __riemann_zeta (const _Tp __s)
    template<typename _Tp> _Tp __riemann_zeta_alt (const _Tp __s)
    template<typename _Tp> _Tp __riemann_zeta_glob (const _Tp __s)
    template<typename _Tp> _Tp __riemann_zeta_product (const _Tp __s)
    template<typename _Tp> _Tp __riemann_zeta_sum (const _Tp __s)
    template<typename _Tp> _Tp __sph_bessel (const unsigned int __n, const
        _Tp __x)
    template<typename _Tp> void __sph_bessel_ik (const unsigned int __n,
        const _Tp __x, _Tp &__i_n, _Tp &__k_n, _Tp &__ip_n, _Tp &__kp_n)
    template<typename _Tp> void __sph_bessel_jn (const unsigned int __n,
        const _Tp __x, _Tp &__j_n, _Tp &__n_n, _Tp &__jp_n, _Tp &__np_n)
    template<typename _Tp> _Tp __sph_legendre (const unsigned int __l,
        const unsigned int __m, const _Tp __theta)
    template<typename _Tp> _Tp __sph_neumann (const unsigned int __n, const
        _Tp __x)

Function Documentation

template<typename _Tp> void std::tr1::__detail::__airy (const _Tp __x, _Tp
& __Ai, _Tp & __Bi, _Tp & __Aip, _Tp & __Bip) [inline] Compute the Airy functions $ Ai(x) $ and $ Bi(x) $ and their first
derivatives $ Ai'(x) $ and $ Bi(x) $ respectively.
Parameters:
__n The order of the Airy functions.
__x The argument of the Airy functions.
__i_n The output Airy function.
__k_n The output Airy function.
__ip_n The output derivative of the Airy function.
__kp_n The output derivative of the Airy function.
Definition at line 375 of file modified_bessel_func.tcc.
References __bessel_ik(), __bessel_jn(), and std::numeric_limits< _Tp
>::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__assoc_laguerre (const
unsigned int __n, const unsigned int __m, const _Tp __x) [inline] This routine returns the associated Laguerre polynomial of order n,
degree m: $ L_n^m(x) $.
The associated Laguerre polynomial is defined for integral $ lpha = m $ by: L_n^m(x) = (-1)^m ac{d^m}{dx^m} L_{n + m}(x) ] where the Laguerre
polynomial is defined by: L_n(x) = ac{e^x}{n!} ac{d^n}{dx^n}
(x^ne^{-x}) ]
Parameters:
__n The order of the Laguerre polynomial.
__m The degree of the Laguerre polynomial.
__x The argument of the Laguerre polynomial.
Returns:
The value of the associated Laguerre polynomial of order n, degree m, and argument x.
Definition at line 302 of file poly_laguerre.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__assoc_legendre_p (const
unsigned int __l, const unsigned int __m, const _Tp __x) [inline] Return the associated Legendre function by recursion on $ l $.
The associated Legendre function is derived from the Legendre function $ P_l(x) $ by the Rodrigues formula: P_l^m(x) = (1 x^2)^{m/2}ac{d^m}{dx^m}P_l(x) ]
Parameters:
l The order of the associated Legendre function. $ l >= 0 $.
m The order of the associated Legendre function. $ m <= l $.
x The argument of the associated Legendre function. $ |x| <= 1 $.
Definition at line 138 of file legendre_function.tcc.
References __poly_legendre_p(), and std::numeric_limits< _Tp
>::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__bernoulli (const int __n)
[inline]
This returns Bernoulli number $B_n$.
Parameters:
__n the order n of the Bernoulli number.
Returns:
The Bernoulli number of order n.
Definition at line 138 of file gamma.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__bernoulli_series (unsigned
int __n) [inline]
This returns Bernoulli numbers from a table or by summation for larger values.
Recursion is unstable.
Parameters:
__n the order n of the Bernoulli number.
Returns:
The Bernoulli number of order n.
Definition at line 75 of file gamma.tcc.
template<typename _Tp> void std::tr1::__detail::__bessel_ik (const _Tp
__nu, const _Tp __x, _Tp & __Inu, _Tp & __Knu, _Tp & __Ipnu, _Tp & __Kpnu) [inline]
Compute the modified Bessel functions $ I_0(x) $ and $ K_0(x) $ and
their first derivatives $ I'_0(x) $ and $ K'_0(x) $ respectively. These four functions are computed together for numerical stability.
Parameters:
__nu The order of the Bessel functions.
__x The argument of the Bessel functions.
__Inu The output regular modified Bessel function.
__Knu The output irregular modified Bessel function.
__Ipnu The output derivative of the regular modified Bessel function.
__Kpnu The output derivative of the irregular modified Bessel function.
Definition at line 86 of file modified_bessel_func.tcc.
References __gamma_temme(), std::numeric_limits< _Tp >::epsilon(), and std::numeric_limits< _Tp >::infinity().
Referenced by __airy(), __cyl_bessel_i(), __cyl_bessel_k(), and
__sph_bessel_ik().
template<typename _Tp> void std::tr1::__detail::__bessel_jn (const _Tp
__nu, const _Tp __x, _Tp & __Jnu, _Tp & __Nnu, _Tp & __Jpnu, _Tp & __Npnu) [inline]
Compute the Bessel $ J_0(x) $ and Neumann $ N_0(x) $ functions and
their first derivatives $ J'_0(x) $ and $ N'_0(x) $ respectively. These four functions are computed together for numerical stability.
Parameters:
__nu The order of the Bessel functions.
__x The argument of the Bessel functions.
__Jnu The output Bessel function of the first kind.
__Nnu The output Neumann function (Bessel function of the second kind).
__Jpnu The output derivative of the Bessel function of the first kind.
__Npnu The output derivative of the Neumann function.
Definition at line 133 of file bessel_function.tcc.
References __gamma_temme(), std::numeric_limits< _Tp >::epsilon(),
std::numeric_limits< _Tp >::infinity(), and std::max().
Referenced by __airy(), __cyl_bessel_j(), __cyl_neumann_n(), and
__sph_bessel_jn().
template<typename _Tp> _Tp std::tr1::__detail::__beta (_Tp __x, _Tp __y)
[inline]
Return the beta function $ B(x,y) $.
The beta function is defined by B(x,y) =
ac{Gamma(x)Gamma(y)}{Gamma(x+y)} ]
Parameters:
__x The first argument of the beta function.
__y The second argument of the beta function.
Returns:
The beta function.
Definition at line 190 of file beta_function.tcc.
References __beta_lgamma(), and std::numeric_limits< _Tp
>::quiet_NaN().
Referenced by __ellint_rj().
template<typename _Tp> _Tp std::tr1::__detail::__beta_gamma (_Tp __x, _Tp
__y) [inline]
Return the beta function: $B(x,y)$.
The beta function is defined by B(x,y) =
ac{Gamma(x)Gamma(y)}{Gamma(x+y)} ]
Parameters:
__x The first argument of the beta function.
__y The second argument of the beta function.
Returns:
The beta function.
Definition at line 80 of file beta_function.tcc.
References __gamma().
template<typename _Tp> _Tp std::tr1::__detail::__beta_lgamma (_Tp __x, _Tp
__y) [inline]
Return the beta function $B(x,y)$ using the log gamma functions.
The beta function is defined by B(x,y) =
ac{Gamma(x)Gamma(y)}{Gamma(x+y)} ]
Parameters:
__x The first argument of the beta function.
__y The second argument of the beta function.
Returns:
The beta function.
Definition at line 128 of file beta_function.tcc.
References __log_gamma().
Referenced by __beta().
template<typename _Tp> _Tp std::tr1::__detail::__beta_product (_Tp __x, _Tp
__y) [inline]
Return the beta function $B(x,y)$ using the product form.
The beta function is defined by B(x,y) =
ac{Gamma(x)Gamma(y)}{Gamma(x+y)} ]
Parameters:
__x The first argument of the beta function.
__y The second argument of the beta function.
Returns:
The beta function.
Definition at line 159 of file beta_function.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__bincoef (const unsigned
int __n, const unsigned int __k) [inline] Retight)h= ac{n!}{(n-k)!fk!}e].. The binomial coefficient is given by: t(
Parameters:
__n The first argument of the binomial coefficient.
__k The second argument of the binomial coefficient.
Returns:
The binomial coefficient.
Definition at line 315 of file gamma.tcc.
References std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__comp_ellint_1 (const _Tp
__k) [inline]
Return the complete elliptic integral of the first kind $ K(k) $ using the Carlson formulation.
The complete elliptic integral of the first kind is defined as K(k) =
F(k,i/2)
= int_0^{i/2}ac{dheta}
{t{1 - k^2 sin^2heta}} ] where $ F(k,hi)
$ is the incomplete elliptic integral of the first kind.
Parameters:
__k The argument of the complete elliptic function.
Returns:
The complete elliptic function of the first kind.
Definition at line 196 of file ell_integral.tcc.
References __ellint_rf(), and std::numeric_limits< _Tp >::quiet_NaN().
Referenced by __ellint_1().
template<typename _Tp> _Tp std::tr1::__detail::__comp_ellint_1_series
(const _Tp __k) [inline]
Return the complete elliptic integral of the first kind $ K(k) $ by
series expansion.
The complete elliptic integral of the first kind is defined as K(k) =
F(k,i/2)
= int_0^{i/2}ac{dheta}
{t{1 - k^2sin^2heta}} ]
This routine is not bad as long as |k| is somewhat smaller than 1 but
is not is good as the Carlson elliptic integral formulation.
Parameters:
__k The argument of the complete elliptic function.
Returns:
The complete elliptic function of the first kind.
Definition at line 158 of file ell_integral.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__comp_ellint_2 (const _Tp
__k) [inline]
Return the complete elliptic integral of the second kind $ E(k) $ using the Carlson formulation.
The complete elliptic integral of the second kind is defined as
E(k,i/2)
= int_0^{i/2}t{1
- k^2 sin^2heta} ]
Parameters:
__k The argument of the complete elliptic function.
Returns:
The complete elliptic function of the second kind.
Definition at line 406 of file ell_integral.tcc.
References __ellint_rd(), __ellint_rf(), and std::numeric_limits< _Tp
>::quiet_NaN().
Referenced by __ellint_2().
template<typename _Tp> _Tp std::tr1::__detail::__comp_ellint_2_series
(const _Tp __k) [inline]
Return the complete elliptic integral of the second kind $ E(k) $ by
series expansion.
The complete elliptic integral of the second kind is defined as
E(k,i/2)
= int_0^{i/2}t{1
- k^2 sin^2heta} ]
This routine is not bad as long as |k| is somewhat smaller than 1 but
is not is good as the Carlson elliptic integral formulation.
Parameters:
__k The argument of the complete elliptic function.
Returns:
The complete elliptic function of the second kind.
Definition at line 271 of file ell_integral.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__comp_ellint_3 (const _Tp
__k, const _Tp __nu) [inline] Return the complete elliptic integral of the third kind $ Pi(k,0) =
Pi(k,0,i/2)
$ using the Carlson formulation.
The complete elliptic integral of the third kind is defined as Pi(k,0) = int_0^{i/2}
ac{dheta} {(1 - 0 ^2heta)t{1 - k^2 ^2heta}} ]
Parameters:
__k The argument of the elliptic function.
__nu The second argument of the elliptic function.
Returns:
The complete elliptic function of the third kind.
Definition at line 673 of file ell_integral.tcc.
References __ellint_rf(), __ellint_rj(), std::numeric_limits< _Tp
>::infinity(), and std::numeric_limits< _Tp >::quiet_NaN().
Referenced by __ellint_3().
template<typename _Tp> _Tp std::tr1::__detail::__conf_hyperg (const _Tp
__a, const _Tp __c, const _Tp __x) [inline] Return the confluent hypogeometric function $ _1F_1(a;c;x) $.
Todo
Handle b == nonpositive integer blowup - return NaN.
Parameters:
__a The 'numerator' parameter.
__c The 'denominator' parameter.
__x The argument of the confluent hypergeometric function.
Returns:
The confluent hypergeometric function.
Definition at line 227 of file hypergeometric.tcc.
References __conf_hyperg_luke(), __conf_hyperg_series(), and
std::numeric_limits< _Tp >::infinity().
template<typename _Tp> _Tp std::tr1::__detail::__conf_hyperg_luke (const
_Tp __a, const _Tp __c, const _Tp __xin) [inline] Return the hypogeometric function $ _2F_1(a,b;c;x) $ by an iterative
procedure described in Luke, Algorithms for the Computation of
Mathematical Functions.
Like the case of the 2F1 rational approximations, these are probably
guaranteed to converge for x < 0, barring gross numerical instability
in the pre-asymptotic regime.
Definition at line 120 of file hypergeometric.tcc.
References std::numeric_limits< _Tp >::epsilon().
Referenced by __conf_hyperg().
template<typename _Tp> _Tp std::tr1::__detail::__conf_hyperg_series (const
_Tp __a, const _Tp __c, const _Tp __x) [inline] This routine returns the confluent hypergeometric function by series
expansion.
_1F_1(a;c;x) = ac{Gamma(c)}{Gamma(a)} _{n=0}^{infty}
ac{Gamma(a+n)}{Gamma(c+n)} ac{x^n}{n!} ].PP If a and b are integers and a < 0 and either b > 0 or b < a then the series is a polynomial with a finite number of terms. If b is an integer and b <= 0 the confluent
hypergeometric function is undefined.
Parameters:
__a The 'numerator' parameter.
__c The 'denominator' parameter.
__x The argument of the confluent hypergeometric function.
Returns:
The confluent hypergeometric function.
Definition at line 83 of file hypergeometric.tcc.
References std::numeric_limits< _Tp >::epsilon().
Referenced by __conf_hyperg().
template<typename _Tp> _Tp std::tr1::__detail::__cyl_bessel_i (const _Tp
__nu, const _Tp __x) [inline] Return the regular modified Bessel function of order $ 0 $: $ I_{0}(x) $.
The regular modified cylindrical Bessel function is: I_{0}(x) =
_{k=0}^{infty} ac{(x/2)^{0 + 2k}}{k!Gamma(0+k+1)} ]
Parameters:
__nu The order of the regular modified Bessel function.
__x The argument of the regular modified Bessel function.
Returns:
The output regular modified Bessel function.
Definition at line 270 of file modified_bessel_func.tcc.
References __bessel_ik(), __cyl_bessel_ij_series(), and
std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__cyl_bessel_ij_series
(const _Tp __nu, const _Tp __x, const _Tp __sgn, const unsigned int __max_iter) [inline]
This routine returns the cylindrical Bessel functions of order $ 0 $: $ J_{0} $ or $ I_{0} $ by series expansion.
The modified cylindrical Bessel function is: Z_{0}(x) = _{k=0}^{infty} ac{ma^k (x/2)^{0 + 2k}}{k!Gamma(0+k+1)} ] where $ ma = +1 $ or$ -1 $
for $ Z = I $ or $ J $ respectively.
See Abramowitz & Stegun, 9.1.10 Abramowitz & Stegun, 9.6.7 (1) Handbook of Mathematical Functions, ed. Milton Abramowitz and Irene A. Stegun,
Dover Publications, Equation 9.1.10 p. 360 and Equation 9.6.10 p. 375
Parameters:
__nu The order of the Bessel function.
__x The argument of the Bessel function.
__sgn The sign of the alternate terms -1 for the Bessel function of the first kind. +1 for the modified Bessel function of the first
kind.
Returns:
The output Bessel function.
Definition at line 415 of file bessel_function.tcc.
References __log_gamma(), and std::numeric_limits< _Tp >::epsilon().
Referenced by __cyl_bessel_i(), and __cyl_bessel_j().
template<typename _Tp> _Tp std::tr1::__detail::__cyl_bessel_j (const _Tp
__nu, const _Tp __x) [inline] Return the Bessel function of order $ 0 $: $ J_{0}(x) $.
The cylindrical Bessel function is: J_{0}(x) = _{k=0}^{infty} ac{(-1)^k (x/2)^{0 + 2k}}{k!Gamma(0+k+1)} ]
Parameters:
__nu The order of the Bessel function.
__x The argument of the Bessel function.
Returns:
The output Bessel function.
Definition at line 459 of file bessel_function.tcc.
References __bessel_jn(), __cyl_bessel_ij_series(),
__cyl_bessel_jn_asymp(), and std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> void std::tr1::__detail::__cyl_bessel_jn_asymp
(const _Tp __nu, const _Tp __x, _Tp & __Jnu, _Tp & __Nnu) [inline] This routine computes the asymptotic cylindrical Bessel and Neumann
functions of order nu: $ J_{0} $, $ N_{0} $.
References: (1) Handbook of Mathematical Functions, ed. Milton
Abramowitz and Irene A. Stegun, Dover Publications, Section 9 p. 364,
Equations 9.2.5-9.2.10
Parameters:
__nu The order of the Bessel functions.
__x The argument of the Bessel functions.
__Jnu The output Bessel function of the first kind.
__Nnu The output Neumann function (Bessel function of the second kind).
Definition at line 358 of file bessel_function.tcc.
Referenced by __cyl_bessel_j(), and __cyl_neumann_n().
template<typename _Tp> _Tp std::tr1::__detail::__cyl_bessel_k (const _Tp
__nu, const _Tp __x) [inline] Return the irregular modified Bessel function $ K_{0}(x) $ of order $ 0 $.
The irregular modified Bessel function is defined by: K_{0}(x) =
ac{i}{2}
ac{I_{-0}(x) - I_{0}(x)}{ 0i}
] where for integral $ 0 = n $ a limit is taken: $ lim_{0 o n} $.
Parameters:
__nu The order of the irregular modified Bessel function.
__x The argument of the irregular modified Bessel function.
Returns:
The output irregular modified Bessel function.
Definition at line 306 of file modified_bessel_func.tcc.
References __bessel_ik(), and std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__cyl_neumann_n (const _Tp
__nu, const _Tp __x) [inline] Return the Neumann function of order $ 0 $: $ N_{0}(x) $.
The Neumann function is defined by: N_{0}(x) = ac{J_{0}(x)
Parameters:
__nu The order of the Neumann function.
__x The argument of the Neumann function.
Returns:
The output Neumann function.
Definition at line 501 of file bessel_function.tcc.
References __bessel_jn(), __cyl_bessel_jn_asymp(), and
std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__ellint_1 (const _Tp __k,
const _Tp __phi) [inline]
Return the incomplete elliptic integral of the first kind $ F(k,hi)
$ using the Carlson formulation.
The incomplete elliptic integral of the first kind is defined as
F(k,hi)
= int_0^{hi}ac{dheta}
{t{1 - k^2 sin^2heta}} ]
Parameters:
__k The argument of the elliptic function.
__phi The integral limit argument of the elliptic function.
Returns:
The elliptic function of the first kind.
Definition at line 224 of file ell_integral.tcc.
References __comp_ellint_1(), __ellint_rf(), and std::numeric_limits<
_Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__ellint_2 (const _Tp __k,
const _Tp __phi) [inline]
Return the incomplete elliptic integral of the second kind $ E(k,hi)
$ using the Carlson formulation.
The incomplete elliptic integral of the second kind is defined as
E(k,hi)
= int_0^{hi}
t{1 - k^2 sin^2heta} ]
Parameters:
__k The argument of the elliptic function.
__phi The integral limit argument of the elliptic function.
Returns:
The elliptic function of the second kind.
Definition at line 440 of file ell_integral.tcc.
References __comp_ellint_2(), __ellint_rd(), __ellint_rf(), and
std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__ellint_3 (const _Tp __k,
const _Tp __nu, const _Tp __phi) [inline] Return the incomplete elliptic integral of the third kind $ Pi(k,0,hi) $ using the Carlson formulation.
The incomplete elliptic integral of the third kind is defined as
Pi(k,0,hi)
= int_0^{hi}
ac{dheta} {(1 - 0 ^2heta) t{1 - k^2 ^2heta}} ]
Parameters:
__k The argument of the elliptic function.
__nu The second argument of the elliptic function.
__phi The integral limit argument of the elliptic function.
Returns:
The elliptic function of the third kind.
Definition at line 713 of file ell_integral.tcc.
References __comp_ellint_3(), __ellint_rf(), __ellint_rj(), and
std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__ellint_rc (const _Tp __x,
const _Tp __y) [inline]
Return the Carlson elliptic function $ R_C(x,y) = R_F(x,y,y) $ where $ R_F(x,y,z) $ is the Carlson elliptic function of the first kind.
The Carlson elliptic function is defined by: R_C(x,y) = ac{1}{2}
int_0^infty ac{dt}{(t + x)^{1/2}(t + y)} ]
Based on Carlson's algorithms:
· B. C. Carlson Numer. Math. 33, 1 (1979)
· B. C. Carlson, Special Functions of Applied Mathematics (1977)
· Numerical Recipes in C, 2nd ed, pp. 261-269, by Press, Teukolsky,
Vetterling, Flannery (1992)
Parameters:
__x The first argument.
__y The second argument.
Returns:
The Carlson elliptic function.
Definition at line 499 of file ell_integral.tcc.
References std::numeric_limits< _Tp >::epsilon(), std::numeric_limits< _Tp >::max(), and std::numeric_limits< _Tp >::min().
Referenced by __ellint_rj().
template<typename _Tp> _Tp std::tr1::__detail::__ellint_rd (const _Tp __x,
const _Tp __y, const _Tp __z) [inline] Return the Carlson elliptic function of the second kind $ R_D(x,y,z) = R_J(x,y,z,z) $ where $ R_J(x,y,z,p) $ is the Carlson elliptic function of the third kind.
The Carlson elliptic function of the second kind is defined by:
R_D(x,y,z) = ac{3}{2} int_0^infty ac{dt}{(t + x)^{1/2}(t + y)^{1/2}(t + z)^{3/2}} ]
Based on Carlson's algorithms:
· B. C. Carlson Numer. Math. 33, 1 (1979)
· B. C. Carlson, Special Functions of Applied Mathematics (1977)
· Numerical Recipes in C, 2nd ed, pp. 261-269, by Press, Teukolsky,
Vetterling, Flannery (1992)
Parameters:
__x The first of two symmetric arguments.
__y The second of two symmetric arguments.
__z The third argument.
Returns:
The Carlson elliptic function of the second kind.
Definition at line 319 of file ell_integral.tcc.
References std::numeric_limits< _Tp >::epsilon(), std::max(),
std::numeric_limits< _Tp >::max(), and std::numeric_limits< _Tp
>::min().
Referenced by __comp_ellint_2(), and __ellint_2().
template<typename _Tp> _Tp std::tr1::__detail::__ellint_rf (const _Tp __x,
const _Tp __y, const _Tp __z) [inline] Return the Carlson elliptic function $ R_F(x,y,z) $ of the first kind.
The Carlson elliptic function of the first kind is defined by:
R_F(x,y,z) = ac{1}{2} int_0^infty ac{dt}{(t + x)^{1/2}(t + y)^{1/2}(t + z)^{1/2}} ]
Parameters:
__x The first of three symmetric arguments.
__y The second of three symmetric arguments.
__z The third of three symmetric arguments.
Returns:
The Carlson elliptic function of the first kind.
Definition at line 79 of file ell_integral.tcc.
References std::numeric_limits< _Tp >::epsilon(), std::max(),
std::numeric_limits< _Tp >::max(), and std::numeric_limits< _Tp
>::min().
Referenced by __comp_ellint_1(), __comp_ellint_2(), __comp_ellint_3(), __ellint_1(), __ellint_2(), and __ellint_3().
template<typename _Tp> _Tp std::tr1::__detail::__ellint_rj (const _Tp __x,
const _Tp __y, const _Tp __z, const _Tp __p) [inline] Return the Carlson elliptic function $ R_J(x,y,z,p) $ of the third
kind.
The Carlson elliptic function of the third kind is defined by:
R_J(x,y,z,p) = ac{3}{2} int_0^infty ac{dt}{(t + x)^{1/2}(t + y)^{1/2}(t + z)^{1/2}(t + p)} ]
Based on Carlson's algorithms:
· B. C. Carlson Numer. Math. 33, 1 (1979)
· B. C. Carlson, Special Functions of Applied Mathematics (1977)
· Numerical Recipes in C, 2nd ed, pp. 261-269, by Press, Teukolsky,
Vetterling, Flannery (1992)
Parameters:
__x The first of three symmetric arguments.
__y The second of three symmetric arguments.
__z The third of three symmetric arguments.
__p The fourth argument.
Returns:
The Carlson elliptic function of the fourth kind.
Definition at line 570 of file ell_integral.tcc.
References __beta(), __ellint_rc(), std::numeric_limits< _Tp
>::epsilon(), std::max(), std::numeric_limits< _Tp >::max(), and
std::numeric_limits< _Tp >::min().
Referenced by __comp_ellint_3(), and __ellint_3().
template<typename _Tp> _Tp std::tr1::__detail::__expint (const _Tp __x)
[inline]
Return the exponential integral $ Ei(x) $.
The exponential integral is given by Ei(x) = -int_{-x}^infty ac{e^t}{t} dt ]
Parameters:
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 517 of file exp_integral.tcc.
References __expint_Ei(), and std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__expint (const unsigned int
__n, const _Tp __x) [inline] Return the exponential integral $ E_n(x) $.
The exponential integral is given by E_n(x) = int_{1}^infty
ac{e^{-xt}}{t^n} dt ] This is something of an extension.
Parameters:
__n The order of the exponential integral function.
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 477 of file exp_integral.tcc.
References __expint_E1(), __expint_En_recursion(), std::numeric_limits< _Tp >::infinity(), and std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__expint_asymp (const
unsigned int __n, const _Tp __x) [inline] Return the exponential integral $ E_n(x) $ for large argument.
The exponential integral is given by E_n(x) = int_{1}^infty
ac{e^{-xt}}{t^n} dt ]
This is something of an extension.
Parameters:
__n The order of the exponential integral function.
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 409 of file exp_integral.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__expint_E1 (const _Tp __x)
[inline]
Return the exponential integral $ E_1(x) $.
The exponential integral is given by E_1(x) = int_{1}^infty
ac{e^{-xt}}{t} dt ]
Parameters:
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 379 of file exp_integral.tcc.
References __expint_E1_asymp(), __expint_E1_series(), __expint_Ei(),
and __expint_En_cont_frac().
Referenced by __expint(), __expint_Ei(), and __expint_En_recursion().
template<typename _Tp> _Tp std::tr1::__detail::__expint_E1_asymp (const _Tp
__x) [inline]
Return the exponential integral $ E_1(x) $ by asymptotic expansion.
The exponential integral is given by E_1(x) = int_{1}^infty
ac{e^{-xt}}{t} dt ]
Parameters:
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 119 of file exp_integral.tcc.
Referenced by __expint_E1().
template<typename _Tp> _Tp std::tr1::__detail::__expint_E1_series (const
_Tp __x) [inline]
Return the exponential integral $ E_1(x) $ by series summation. This
should be good for $ x < 1 $.
The exponential integral is given by E_1(x) = int_{1}^{infty}
ac{e^{-xt}}{t} dt ]
Parameters:
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 82 of file exp_integral.tcc.
References std::numeric_limits< _Tp >::epsilon().
Referenced by __expint_E1().
template<typename _Tp> _Tp std::tr1::__detail::__expint_Ei (const _Tp __x)
[inline]
Return the exponential integral $ Ei(x) $.
The exponential integral is given by Ei(x) = -int_{-x}^infty ac{e^t}{t} dt ]
Parameters:
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 355 of file exp_integral.tcc.
References __expint_E1(), __expint_Ei_asymp(), and
__expint_Ei_series().
Referenced by __expint(), and __expint_E1().
template<typename _Tp> _Tp std::tr1::__detail::__expint_Ei_asymp (const _Tp
__x) [inline]
Return the exponential integral $ Ei(x) $ by asymptotic expansion.
The exponential integral is given by Ei(x) = -int_{-x}^infty ac{e^t}{t} dt ]
Parameters:
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 322 of file exp_integral.tcc.
Referenced by __expint_Ei().
template<typename _Tp> _Tp std::tr1::__detail::__expint_Ei_series (const
_Tp __x) [inline]
Return the exponential integral $ Ei(x) $ by series summation.
The exponential integral is given by Ei(x) = -int_{-x}^infty ac{e^t}{t} dt ]
Parameters:
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 291 of file exp_integral.tcc.
Referenced by __expint_Ei().
template<typename _Tp> _Tp std::tr1::__detail::__expint_En_cont_frac (const
unsigned int __n, const _Tp __x) [inline] Return the exponential integral $ E_n(x) $ by continued fractions.
The exponential integral is given by E_n(x) = int_{1}^infty
ac{e^{-xt}}{t^n} dt ]
Parameters:
__n The order of the exponential integral function.
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 202 of file exp_integral.tcc.
References std::numeric_limits< _Tp >::epsilon(), and
std::numeric_limits< _Tp >::min().
Referenced by __expint_E1().
template<typename _Tp> _Tp std::tr1::__detail::__expint_En_recursion (const
unsigned int __n, const _Tp __x) [inline] Return the exponential integral $ E_n(x) $ by recursion. Use upward
recursion for $ x < n $ and downward recursion (Miller's algorithm)
otherwise.
The exponential integral is given by E_n(x) = int_{1}^infty
ac{e^{-xt}}{t^n} dt ]
Parameters:
__n The order of the exponential integral function.
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 247 of file exp_integral.tcc.
References __expint_E1().
Referenced by __expint().
template<typename _Tp> _Tp std::tr1::__detail::__expint_En_series (const
unsigned int __n, const _Tp __x) [inline] Return the exponential integral $ E_n(x) $ by series summation.
The exponential integral is given by E_n(x) = int_{1}^infty
ac{e^{-xt}}{t^n} dt ]
Parameters:
__n The order of the exponential integral function.
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 156 of file exp_integral.tcc.
References __psi(), and std::numeric_limits< _Tp >::epsilon().
template<typename _Tp> _Tp std::tr1::__detail::__expint_large_n (const
unsigned int __n, const _Tp __x) [inline] Return the exponential integral $ E_n(x) $ for large order.
The exponential integral is given by E_n(x) = int_{1}^infty
ac{e^{-xt}}{t^n} dt ]
This is something of an extension.
Parameters:
__n The order of the exponential integral function.
__x The argument of the exponential integral function.
Returns:
The exponential integral.
Definition at line 443 of file exp_integral.tcc.
References std::numeric_limits< _Tp >::epsilon().
template<typename _Tp> _Tp std::tr1::__detail::__gamma (const _Tp __x)
[inline]
Return $ Gamma(x) $.
Parameters:
__x The argument of the gamma function.
Returns:
The gamma function.
Definition at line 338 of file gamma.tcc.
References __log_gamma().
Referenced by __beta_gamma(), and __gamma_temme().
template<typename _Tp> void std::tr1::__detail::__gamma_temme (const _Tp
__mu, _Tp & __gam1, _Tp & __gam2, _Tp & __gampl, _Tp & __gammi) [inline]
Compute the gamma functions required by the Temme series expansions of $ N_0(x) $ and $ K_0(x) $. Gamma_1 = ac{1}{2} [ac{1}{Gamma(1 - )} ac{1}{Gamma(1 + )}] ] and Gamma_2 = ac{1}{2} [ac{1}{Gamma(1 - )} +
ac{1}{Gamma(1 + )}] ] where $ -1/2 <= <= 1/2 $ is $ = 0 - N $ and $ N $. is the nearest integer to $ 0 $. The values of $ Gamma(1 + ) $ and $ Gamma(1 - ) $ are returned as well.
The accuracy requirements on this are exquisite.
Parameters:
__mu The input parameter of the gamma functions.
__gam1 The output function $ Gamma_1() $
__gam2 The output function $ Gamma_2() $
__gampl The output function $ Gamma(1 + ) $
__gammi The output function $ Gamma(1 - ) $
Definition at line 95 of file bessel_function.tcc.
References __gamma().
Referenced by __bessel_ik(), and __bessel_jn().
template<typename _Tp> _Tp std::tr1::__detail::__hurwitz_zeta (const _Tp
__a, const _Tp __s) [inline] Return the Hurwitz zeta function $ ta(x,s) $ for all s != 1 and x > -1.
The Hurwitz zeta function is defined by: ta(x,s) = _{n=0}^{infty}
ac{1}{(n + x)^s} ] The Riemann zeta function is a special case: ta(s) = ta(1,s) ]
Definition at line 431 of file riemann_zeta.tcc.
References __hurwitz_zeta_glob().
Referenced by __psi().
template<typename _Tp> _Tp std::tr1::__detail::__hurwitz_zeta_glob (const
_Tp __a, const _Tp __s) [inline] Return the Hurwitz zeta function $ ta(x,s) $ for all s != 1 and x > -1.
The Hurwitz zeta function is defined by: ta(x,s) = _{n=0}^{infty}
ac{1}{(n + x)^s} ] The Riemann zeta function is a special case: ta(s) = ta(1,s) ]
This functions uses the double sum that converges for s != 1 and x >
-1: ta(x,s) = ac{1}{s-1} _{n=0}^{infty} ac{1}{n + 1} _{k=0}^{n} (-1)^k ac{n!}{(n-k)!k!} (x+k)^{-s} ]
Definition at line 366 of file riemann_zeta.tcc.
References __log_gamma(), and std::numeric_limits< _Tp >::epsilon().
Referenced by __hurwitz_zeta().
template<typename _Tp> _Tp std::tr1::__detail::__hyperg (const _Tp __a,
const _Tp __b, const _Tp __c, const _Tp __x) [inline] Return the hypogeometric function $ _2F_1(a,b;c;x) $.
The hypogeometric function is defined by _2F_1(a,b;c;x) =
ac{Gamma(c)}{Gamma(a)Gamma(b)} _{n=0}^{infty}
ac{Gamma(a+n)Gamma(b+n)}{Gamma(c+n)} ac{x^n}{n!} ]
Parameters:
__a The first 'numerator' parameter.
__a The second 'numerator' parameter.
__c The 'denominator' parameter.
__x The argument of the confluent hypergeometric function.
Returns:
The confluent hypergeometric function.
Definition at line 729 of file hypergeometric.tcc.
References __hyperg_luke(), __hyperg_reflect(), __hyperg_series(),
std::numeric_limits< _Tp >::epsilon(), std::numeric_limits< _Tp
>::infinity(), and std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__hyperg_luke (const _Tp
__a, const _Tp __b, const _Tp __c, const _Tp __xin) [inline] Return the hypogeometric function $ _2F_1(a,b;c;x) $ by an iterative
procedure described in Luke, Algorithms for the Computation of
Mathematical Functions.
Definition at line 305 of file hypergeometric.tcc.
References std::numeric_limits< _Tp >::epsilon().
Referenced by __hyperg().
template<typename _Tp> _Tp std::tr1::__detail::__hyperg_reflect (const _Tp
__a, const _Tp __b, const _Tp __c, const _Tp __x) [inline] Return the hypogeometric function $ _2F_1(a,b;c;x) $ by the reflection formulae in Abramowitz & Stegun formula 15.3.6 for d = c - a - b not
integral and formula 15.3.11 for d = c - a - b integral. This assumes
a, b, c != negative integer.
The hypogeometric function is defined by _2F_1(a,b;c;x) =
ac{Gamma(c)}{Gamma(a)Gamma(b)} _{n=0}^{infty}
ac{Gamma(a+n)Gamma(b+n)}{Gamma(c+n)} ac{x^n}{n!} ]
The reflection formula for nonintegral $ d = c - a - b $ is:
_2F_1(a,b;c;x) = ac{Gamma(c)Gamma(d)}{Gamma(c-a)Gamma(c-b)}
_2F_1(a,b;1-d;1-x) + ac{Gamma(c)Gamma(-d)}{Gamma(a)Gamma(b)} _2F_1(ca,c-b;1+d;1-x) ]
The reflection formula for integral $ m = c - a - b $ is:
_2F_1(a,b;a+b+m;x) = ac{Gamma(m)Gamma(a+b+m)}{Gamma(a+m)Gamma(b+m)}
_{k=0}^{m-1} ac{(m+a)_k(m+b)_k}{k!(1-m)_k} - ]
Definition at line 439 of file hypergeometric.tcc.
References __hyperg_series(), __log_gamma(), __log_gamma_sign(),
__psi(), and std::numeric_limits< _Tp >::epsilon().
Referenced by __hyperg().
template<typename _Tp> _Tp std::tr1::__detail::__hyperg_series (const _Tp
__a, const _Tp __b, const _Tp __c, const _Tp __x) [inline] Return the hypogeometric function $ _2F_1(a,b;c;x) $ by series
expansion.
The hypogeometric function is defined by _2F_1(a,b;c;x) =
ac{Gamma(c)}{Gamma(a)Gamma(b)} _{n=0}^{infty}
ac{Gamma(a+n)Gamma(b+n)}{Gamma(c+n)} ac{x^n}{n!} ]
This works and it's pretty fast.
Parameters:
__a The first 'numerator' parameter.
__a The second 'numerator' parameter.
__c The 'denominator' parameter.
__x The argument of the confluent hypergeometric function.
Returns:
The confluent hypergeometric function.
Definition at line 271 of file hypergeometric.tcc.
References std::numeric_limits< _Tp >::epsilon().
Referenced by __hyperg(), and __hyperg_reflect().
template<typename _Tp> _Tp std::tr1::__detail::__laguerre (const unsigned
int __n, const _Tp __x) [inline] This routine returns the Laguerre polynomial of order n: $ L_n(x) $.
The Laguerre polynomial is defined by: L_n(x) = ac{e^x}{n!}
ac{d^n}{dx^n} (x^ne^{-x}) ]
Parameters:
__n The order of the Laguerre polynomial.
__x The argument of the Laguerre polynomial.
Returns:
The value of the Laguerre polynomial of order n and argument x.
Definition at line 325 of file poly_laguerre.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__log_bincoef (const
unsigned int __n, const unsigned int __k) [inline] Return the logarithm of the ight)i=lac{n!}{(n-k)! k!} ].nomial coefficient is given by: t(
Parameters:
__n The first argument of the binomial coefficient.
__k The second argument of the binomial coefficient.
Returns:
The binomial coefficient.
Definition at line 284 of file gamma.tcc.
References __log_gamma().
template<typename _Tp> _Tp std::tr1::__detail::__log_gamma (const _Tp __x)
[inline]
Return $ log(|Gamma(x)|) $. This will return values even for $ x < 0 $. To recover the sign of $ Gamma(x) $ for any argument use
__log_gamma_sign.
Parameters:
__x The argument of the log of the gamma function.
Returns:
The logarithm of the gamma function.
Definition at line 226 of file gamma.tcc.
References __log_gamma_lanczos().
Referenced by __beta_lgamma(), __cyl_bessel_ij_series(), __gamma(),
__hurwitz_zeta_glob(), __hyperg_reflect(), __log_bincoef(),
__poly_laguerre_large_n(), __psi(), __riemann_zeta(),
__riemann_zeta_glob(), and __sph_legendre().
template<typename _Tp> _Tp std::tr1::__detail::__log_gamma_bernoulli (const
_Tp __x) [inline]
Return $log(Gamma(x))$ by asymptotic expansion with Bernoulli number
coefficients. This is like Sterling's approximation.
Parameters:
__x The argument of the log of the gamma function.
Returns:
The logarithm of the gamma function.
Definition at line 154 of file gamma.tcc.
References std::__lg().
template<typename _Tp> _Tp std::tr1::__detail::__log_gamma_lanczos (const
_Tp __x) [inline]
Return $log(Gamma(x))$ by the Lanczos method. This method dominates all others on the positive axis I think.
Parameters:
__x The argument of the log of the gamma function.
Returns:
The logarithm of the gamma function.
Definition at line 182 of file gamma.tcc.
Referenced by __log_gamma().
template<typename _Tp> _Tp std::tr1::__detail::__log_gamma_sign (const _Tp
__x) [inline]
Return the sign of $ Gamma(x) $. At nonpositive integers zero is
returned.
Parameters:
__x The argument of the gamma function.
Returns:
The sign of the gamma function.
Definition at line 253 of file gamma.tcc.
Referenced by __hyperg_reflect().
template<typename _Tp> _Tp std::tr1::__detail::__poly_hermite (const
unsigned int __n, const _Tp __x) [inline] This routine returns the Hermite polynomial of order n: $ H_n(x) $.
The Hermite polynomial is defined by: H_n(x) = (-1)^n e^{x^2}
ac{d^n}{dx^n} e^{-x^2} ]
Parameters:
__n The order of the Hermite polynomial.
__x The argument of the Hermite polynomial.
Returns:
The value of the Hermite polynomial of order n and argument x.
Definition at line 117 of file poly_hermite.tcc.
References __poly_hermite_recursion(), and std::numeric_limits< _Tp
>::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__poly_hermite_recursion
(const unsigned int __n, const _Tp __x) [inline] This routine returns the Hermite polynomial of order n: $ H_n(x) $ by
recursion on n.
The Hermite polynomial is defined by: H_n(x) = (-1)^n e^{x^2}
ac{d^n}{dx^n} e^{-x^2} ]
Parameters:
__n The order of the Hermite polynomial.
__x The argument of the Hermite polynomial.
Returns:
The value of the Hermite polynomial of order n and argument x.
Definition at line 75 of file poly_hermite.tcc.
Referenced by __poly_hermite().
template<typename _Tpa, typename _Tp> _Tp
std::tr1::__detail::__poly_laguerre (const unsigned int __n, const _Tpa __alpha1, const _Tp __x) [inline] This routine returns the associated Laguerre polynomial of order n,
degree $ lpha $: $ L_n^alpha(x) $.
The associated Laguerre function is defined by L_n^lpha(x) = ac{(lpha + 1)_n}{n!} _1F_1(-n; lpha + 1; x) ] where $ (lpha)_n $ is the Pochhammer symbol and $ _1F_1(a; c; x) $ is the confluent hypergeometric function.
The associated Laguerre polynomial is defined for integral $ lpha = m $ by: L_n^m(x) = (-1)^m ac{d^m}{dx^m} L_{n + m}(x) ] where the Laguerre
polynomial is defined by: L_n(x) = ac{e^x}{n!} ac{d^n}{dx^n}
(x^ne^{-x}) ]
Parameters:
__n The order of the Laguerre function.
__alpha The degree of the Laguerre function.
__x The argument of the Laguerre function.
Returns:
The value of the Laguerre function of order n, degree $ lpha $, and argument x.
Definition at line 249 of file poly_laguerre.tcc.
References __poly_laguerre_hyperg(), __poly_laguerre_large_n(),
__poly_laguerre_recursion(), and std::numeric_limits< _Tp
>::quiet_NaN().
template<typename _Tpa, typename _Tp> _Tp
std::tr1::__detail::__poly_laguerre_hyperg (const unsigned int __n, const _Tpa __alpha1, const _Tp __x) [inline] Evaluate the polynomial based on the confluent hypergeometric function in a safe way, with no restriction on the arguments.
The associated Laguerre function is defined by L_n^lpha(x) = ac{(lpha + 1)_n}{n!} _1F_1(-n; lpha + 1; x) ] where $ (lpha)_n $ is the Pochhammer symbol and $ _1F_1(a; c; x) $ is the confluent hypergeometric function.
This function assumes x != 0.
This is from the GNU Scientific Library.
Definition at line 132 of file poly_laguerre.tcc.
Referenced by __poly_laguerre().
template<typename _Tpa, typename _Tp> _Tp
std::tr1::__detail::__poly_laguerre_large_n (const unsigned __n, const _Tpa __alpha1, const _Tp __x) [inline] This routine returns the associated Laguerre polynomial of order $ n $, degree $ lpha $ for large n. Abramowitz & Stegun, 13.5.21.
Parameters:
__n The order of the Laguerre function.
__alpha The degree of the Laguerre function.
__x The argument of the Laguerre function.
Returns:
The value of the Laguerre function of order n, degree $ lpha $, and argument x.
This is from the GNU Scientific Library.
Definition at line 77 of file poly_laguerre.tcc.
References __log_gamma().
Referenced by __poly_laguerre().
template<typename _Tpa, typename _Tp> _Tp
std::tr1::__detail::__poly_laguerre_recursion (const unsigned int __n, const _Tpa __alpha1, const _Tp __x) [inline] This routine returns the associated Laguerre polynomial of order $ n $, degree $ lpha $: $ L_n^lpha(x) $ by recursion.
The associated Laguerre function is defined by L_n^lpha(x) = ac{(lpha + 1)_n}{n!} _1F_1(-n; lpha + 1; x) ] where $ (lpha)_n $ is the Pochhammer symbol and $ _1F_1(a; c; x) $ is the confluent hypergeometric function.
The associated Laguerre polynomial is defined for integral $ lpha = m $ by: L_n^m(x) = (-1)^m ac{d^m}{dx^m} L_{n + m}(x) ] where the Laguerre
polynomial is defined by: L_n(x) = ac{e^x}{n!} ac{d^n}{dx^n}
(x^ne^{-x}) ]
Parameters:
__n The order of the Laguerre function.
__alpha The degree of the Laguerre function.
__x The argument of the Laguerre function.
Returns:
The value of the Laguerre function of order n, degree $ lpha $, and argument x.
Definition at line 189 of file poly_laguerre.tcc.
Referenced by __poly_laguerre().
template<typename _Tp> _Tp std::tr1::__detail::__poly_legendre_p (const
unsigned int __l, const _Tp __x) [inline] Return the Legendre polynomial by recursion on order $ l $.
The Legendre function of $ l $ and $ x $, $ P_l(x) $, is defined by:
P_l(x) = ac{1}{2^l l!}ac{d^l}{dx^l}(x^2 - 1)^{l} ]
Parameters:
l The order of the Legendre polynomial. $l >= 0$.
x The argument of the Legendre polynomial. $|x| <= 1$.
Definition at line 81 of file legendre_function.tcc.
References std::numeric_limits< _Tp >::quiet_NaN().
Referenced by __assoc_legendre_p(), and __sph_legendre().
template<typename _Tp> _Tp std::tr1::__detail::__psi (const unsigned int
__n, const _Tp __x) [inline] Return the polygamma function $ si^{(n)}(x)
$.
The polygamma function is related to the Hurwitz zeta function:
si^{(n)}(x)
= (-1)^{n+1} m! ta(m+1,x) ]
Definition at line 449 of file gamma.tcc.
References __hurwitz_zeta(), __log_gamma(), and __psi().
template<typename _Tp> _Tp std::tr1::__detail::__psi (const _Tp __x)
[inline]
Return the digamma function. The digamma or $ si(x)
$ function is defined by si(x)
= ac{Gamma'(x)}{Gamma(x)} ] For negative argument the reflection
formula is used: si(x)
= si(1-x)
- i
Definition
at line 420 of file gamma.tcc.
References __psi_asymp(), __psi_series(), std::numeric_limits< _Tp
>::epsilon(), and std::numeric_limits< _Tp >::quiet_NaN().
Referenced by __expint_En_series(), __hyperg_reflect(), and __psi().
template<typename _Tp> _Tp std::tr1::__detail::__psi_asymp (const _Tp __x)
[inline]
Return the digamma function for large argument. The digamma or $ si(x) $ function is defined by si(x)
= ac{Gamma'(x)}{Gamma(x)} ].
The asymptotic series is given by: si(x)
= ) - ac{1}{2x} - _{n=1}^{infty} ac{B_{2n}}{2 n x^{2n}} ]
Definition at line 389 of file gamma.tcc.
Referenced by __psi().
template<typename _Tp> _Tp std::tr1::__detail::__psi_series (const _Tp __x)
[inline]
Return the digamma function by series expansion. The digamma or $ si(x) $ function is defined by si(x)
= ac{Gamma'(x)}{Gamma(x)} ].
The series is given by: si(x)
= -mma_E - ac{1}{x} _{k=1}^{infty} ac{x}{k(x + k)} ]
Definition at line 359 of file gamma.tcc.
References std::numeric_limits< _Tp >::epsilon().
Referenced by __psi().
template<typename _Tp> _Tp std::tr1::__detail::__riemann_zeta (const _Tp
__s) [inline]
Return the Riemann zeta function $ ta(s) $.
The Riemann zeta function is defined by: ta(s) = _{k=1}^{infty} k^{-s} for s > 1 ac{(2i)^s}{pi}
sin(ac{i
s}{2}) Gamma (1 - s) ta (1 - s) for s < 1 ] For s < 1 use the
reflection formula: ta(s) = 2^s i^{s-1}
Gamma(1-s) ta(1-s) ]
Definition at line 294 of file riemann_zeta.tcc.
References __log_gamma(), __riemann_zeta_glob(),
__riemann_zeta_product(), __riemann_zeta_sum(), std::numeric_limits<
_Tp >::infinity(), and std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__riemann_zeta_alt (const
_Tp __s) [inline]
Evaluate the Riemann zeta function $ ta(s) $ by an alternate series for s > 0.
The Riemann zeta function is defined by: ta(s) = _{k=1}^{infty}
ac{1}{k^{s}} for s > 1 ] For s < 1 use the reflection formula: ta(s) = 2^s i^{s-1}
Gamma(1-s) ta(1-s) ]
Definition at line 116 of file riemann_zeta.tcc.
template<typename _Tp> _Tp std::tr1::__detail::__riemann_zeta_glob (const
_Tp __s) [inline]
Evaluate the Riemann zeta function by series for all s != 1.
Convergence is great until largish negative numbers. Then the
convergence of the > 0 sum gets better.
The series is: ta(s) = ac{1}{1-2^{1-s}} _{n=0}^{infty} ac{1}{2^{n+1}} _{k=0}^{n} (-1)^k ac{n!}{(n-k)!k!} (k+1)^{-s} ] Havil 2003, p. 206.
The Riemann zeta function is defined by: ta(s) = _{k=1}^{infty}
ac{1}{k^{s}} for s > 1 ] For s < 1 use the reflection formula: ta(s) = 2^s i^{s-1}
Gamma(1-s) ta(1-s) ]
Definition at line 158 of file riemann_zeta.tcc.
References __log_gamma(), and std::numeric_limits< _Tp >::epsilon().
Referenced by __riemann_zeta().
template<typename _Tp> _Tp std::tr1::__detail::__riemann_zeta_product
(const _Tp __s) [inline]
Compute the Riemann zeta function $ ta(s) $ using the product over
prime factors. ta(s) = Pi_{i=1}^infty ac{1}{1 - p_i^{-s}} ] where $
{p_i} $ are the prime numbers.
The Riemann zeta function is defined by: ta(s) = _{k=1}^{infty}
ac{1}{k^{s}} for s > 1 ] For s < 1 use the reflection formula: ta(s) = 2^s i^{s-1}
Gamma(1-s) ta(1-s) ]
Definition at line 253 of file riemann_zeta.tcc.
Referenced by __riemann_zeta().
template<typename _Tp> _Tp std::tr1::__detail::__riemann_zeta_sum (const
_Tp __s) [inline]
Compute the Riemann zeta function $ ta(s) $ by summation for s > 1.
The Riemann zeta function is defined by: ta(s) = _{k=1}^{infty}
ac{1}{k^{s}} for s > 1 ] For s < 1 use the reflection formula: ta(s) = 2^s i^{s-1}
Gamma(1-s) ta(1-s) ]
Definition at line 79 of file riemann_zeta.tcc.
Referenced by __riemann_zeta().
template<typename _Tp> _Tp std::tr1::__detail::__sph_bessel (const unsigned
int __n, const _Tp __x) [inline] Return the spherical Bessel function $ j_n(x) $ of order n.
ight)p^{1/2}lJB{n+1/2}(x)t]on is defined by: j_n(x) = t( ac{i}{2x}
Parameters:
__n The order of the spherical Bessel function.
__x The argument of the spherical Bessel function.
Returns:
The output spherical Bessel function.
Definition at line 573 of file bessel_function.tcc.
References __sph_bessel_jn(), and std::numeric_limits< _Tp
>::quiet_NaN().
template<typename _Tp> void std::tr1::__detail::__sph_bessel_ik (const
unsigned int __n, const _Tp __x, _Tp & __i_n, _Tp & __k_n, _Tp & __ip_n, _Tp & __kp_n) [inline] Compute the spherical modified Bessel functions $ i_n(x) $ and $ k_n(x) $ and their first derivatives $ i'_n(x) $ and $ k'_n(x) $ respectively.
Parameters:
__n The order of the modified spherical Bessel function.
__x The argument of the modified spherical Bessel function.
__i_n The output regular modified spherical Bessel function. __k_n The output irregular modified spherical Bessel function. __ip_n The output derivative of the regular modified spherical Bessel function.
__kp_n The output derivative of the irregular modified spherical Bessel function.
Definition at line 340 of file modified_bessel_func.tcc.
References __bessel_ik().
template<typename _Tp> void std::tr1::__detail::__sph_bessel_jn (const
unsigned int __n, const _Tp __x, _Tp & __j_n, _Tp & __n_n, _Tp & __jp_n, _Tp & __np_n) [inline] Compute the spherical Bessel $ j_n(x) $ and Neumann $ n_n(x) $
functions and their first derivatives $ j'_n(x) $ and $ n'_n(x) $
respectively.
Parameters:
__n The order of the spherical Bessel function.
__x The argument of the spherical Bessel function.
__j_n The output spherical Bessel function.
__n_n The output spherical Neumann function.
__jp_n The output derivative of the spherical Bessel function. __np_n The output derivative of the spherical Neumann function.
Definition at line 538 of file bessel_function.tcc.
References __bessel_jn().
Referenced by __sph_bessel(), and __sph_neumann().
template<typename _Tp> _Tp std::tr1::__detail::__sph_legendre (const
unsigned int __l, const unsigned int __m, const _Tp __theta) [inline] Return the spherical associated Legendre function.
The spherical associated Legendre function of $ l $, $ m $, and $ heta $ is defined as $ Y_l^m(heta,0) $ where Y_l^m(heta,hi)
= (-1)^m[ac{(2l+1)}{4i}
ac{(l-m)!}{(l+m)!}] P_l^m(
This
function differs from the associated Legendre function by argument ($x =
Parameters:
l The order of the spherical associated Legendre function. $ l >= 0 $.
m The order of the spherical associated Legendre function. $ m <= l $.
theta The radian angle argument of the spherical associated Legendre function.
Definition at line 218 of file legendre_function.tcc.
References __log_gamma(), __poly_legendre_p(), and std::numeric_limits< _Tp >::quiet_NaN().
template<typename _Tp> _Tp std::tr1::__detail::__sph_neumann (const
unsigned int __n, const _Tp __x) [inline] Return the spherical Neumann function $ n_n(x) $.
ight)p^{1/2}lNN{n+1/2}(x)c]ion is defined by: n_n(x) = t( ac{i}{2x}
Parameters:
__n The order of the spherical Neumann function.
__x The argument of the spherical Neumann function.
Returns:
The output spherical Neumann function.
Definition at line 611 of file bessel_function.tcc.
References __sph_bessel_jn(), std::numeric_limits< _Tp >::infinity(),
and std::numeric_limits< _Tp >::quiet_NaN().

Author

Generated automatically by Doxygen for libstdc++ from the source code.
Copyright © 2010-2025 Platon Technologies, s.r.o.           Index | Man stránky | tLDP | Dokumenty | Utilitky | O projekte
Design by styleshout