trusty (3) std::tr1::__detail.3cxx.gz

Provided by: libstdc++6-4.4-doc_4.4.7-8ubuntu1_all bug

NAME

       std::tr1::__detail -

SYNOPSIS

   Classes
       struct __floating_point_constant
       struct __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 unsigned int __n, const _Tp __x)
       template<typename _Tp > _Tp __expint (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 _Tp __x)
       template<typename _Tp > _Tp __psi (const unsigned int __n, 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)

Detailed Description

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

Function Documentation

   template<typename _Tp > void std::tr1::__detail::__airy (const _Tp__x, _Tp &__Ai, _Tp &__Bi, _Tp &__Aip, _Tp
       &__Bip)
       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 370 of file modified_bessel_func.tcc.

       References __bessel_ik(), __bessel_jn(), std::tr1::__detail::__numeric_constants< _Tp >::__pi(),
       std::tr1::__detail::__numeric_constants< _Tp >::__sqrt3(), std::abs(), std::numeric_limits< _Tp
       >::quiet_NaN(), and std::sqrt().

   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 297 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)
       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 133 of file legendre_function.tcc.

       References __poly_legendre_p(), std::numeric_limits< _Tp >::quiet_NaN(), and std::sqrt().

   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 133 of file gamma.tcc.

   template<typename _Tp > _Tp std::tr1::__detail::__bernoulli_series (unsigned int__n)
       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 70 of file gamma.tcc.

       References std::pow().

   template<typename _Tp > void std::tr1::__detail::__bessel_ik (const _Tp__nu, const _Tp__x, _Tp &__Inu, _Tp
       &__Knu, _Tp &__Ipnu, _Tp &__Kpnu)
       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 81 of file modified_bessel_func.tcc.

       References __gamma_temme(), std::tr1::__detail::__numeric_constants< _Tp >::__pi(), std::abs(),
       std::cosh(), std::numeric_limits< _Tp >::epsilon(), std::exp(), std::numeric_limits< _Tp >::infinity(),
       std::log(), std::sin(), std::sinh(), and std::sqrt().

       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)
       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 128 of file bessel_function.tcc.

       References __gamma_temme(), std::tr1::__detail::__numeric_constants< _Tp >::__pi(), std::abs(),
       std::cosh(), std::numeric_limits< _Tp >::epsilon(), std::exp(), std::numeric_limits< _Tp >::infinity(),
       std::log(), std::max(), std::sin(), std::sinh(), and std::sqrt().

       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 185 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)
       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 75 of file beta_function.tcc.

       References __gamma().

   template<typename _Tp > _Tp std::tr1::__detail::__beta_lgamma (_Tp__x, _Tp__y)
       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 123 of file beta_function.tcc.

       References __log_gamma(), and std::exp().

       Referenced by __beta().

   template<typename _Tp > _Tp std::tr1::__detail::__beta_product (_Tp__x, _Tp__y)
       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 154 of file beta_function.tcc.

   template<typename _Tp > _Tp std::tr1::__detail::__bincoef (const unsigned int__n,constunsignedint__k)].
       Return the binomial coefficient. 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 310 of file gamma.tcc.

       References std::exp(), std::log(), and std::numeric_limits< _Tp >::quiet_NaN().

   template<typename _Tp > _Tp std::tr1::__detail::__comp_ellint_1 (const _Tp__k)
       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 191 of file ell_integral.tcc.

       References __ellint_rf(), std::abs(), 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)
       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 153 of file ell_integral.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__pi_2().

   template<typename _Tp > _Tp std::tr1::__detail::__comp_ellint_2 (const _Tp__k)
       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 402 of file ell_integral.tcc.

       References __ellint_rd(), __ellint_rf(), std::abs(), 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)
       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 266 of file ell_integral.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__pi_2().

   template<typename _Tp > _Tp std::tr1::__detail::__comp_ellint_3 (const _Tp__k, const _Tp__nu)
       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 670 of file ell_integral.tcc.

       References __ellint_rf(), __ellint_rj(), std::abs(), 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 222 of file hypergeometric.tcc.

       References __conf_hyperg_luke(), __conf_hyperg_series(), std::exp(), 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)
       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 115 of file hypergeometric.tcc.

       References std::abs(), std::numeric_limits< _Tp >::epsilon(), and std::pow().

       Referenced by __conf_hyperg().

   template<typename _Tp > _Tp std::tr1::__detail::__conf_hyperg_series (const _Tp__a, const _Tp__c, const
       _Tp__x)
       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!} ]

       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 78 of file hypergeometric.tcc.

       References std::abs(), and 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)
       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 265 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)
       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 410 of file bessel_function.tcc.

       References __log_gamma(), std::abs(), std::numeric_limits< _Tp >::epsilon(), std::exp(), and std::log().

       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)
       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 454 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)
       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 353 of file bessel_function.tcc.

       References std::cos(), std::sin(), and std::sqrt().

       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)
       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 301 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)
       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 496 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)
       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 219 of file ell_integral.tcc.

       References __comp_ellint_1(), __ellint_rf(), std::tr1::__detail::__numeric_constants< _Tp >::__pi(),
       std::abs(), std::cos(), std::numeric_limits< _Tp >::quiet_NaN(), and std::sin().

   template<typename _Tp > _Tp std::tr1::__detail::__ellint_2 (const _Tp__k, const _Tp__phi)
       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 436 of file ell_integral.tcc.

       References __comp_ellint_2(), __ellint_rd(), __ellint_rf(), std::tr1::__detail::__numeric_constants< _Tp
       >::__pi(), std::abs(), std::cos(), std::numeric_limits< _Tp >::quiet_NaN(), and std::sin().

   template<typename _Tp > _Tp std::tr1::__detail::__ellint_3 (const _Tp__k, const _Tp__nu, const _Tp__phi)
       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 710 of file ell_integral.tcc.

       References __comp_ellint_3(), __ellint_rf(), __ellint_rj(), std::tr1::__detail::__numeric_constants< _Tp
       >::__pi(), std::abs(), std::cos(), std::numeric_limits< _Tp >::quiet_NaN(), and std::sin().

   template<typename _Tp > _Tp std::tr1::__detail::__ellint_rc (const _Tp__x, const _Tp__y)
       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 495 of file ell_integral.tcc.

       References std::abs(), std::numeric_limits< _Tp >::epsilon(), std::numeric_limits< _Tp >::max(),
       std::numeric_limits< _Tp >::min(), std::pow(), and std::sqrt().

       Referenced by __ellint_rj().

   template<typename _Tp > _Tp std::tr1::__detail::__ellint_rd (const _Tp__x, const _Tp__y, const _Tp__z)
       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 314 of file ell_integral.tcc.

       References std::abs(), std::numeric_limits< _Tp >::epsilon(), std::numeric_limits< _Tp >::max(),
       std::max(), std::numeric_limits< _Tp >::min(), std::pow(), and std::sqrt().

       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)
       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 74 of file ell_integral.tcc.

       References std::abs(), std::numeric_limits< _Tp >::epsilon(), std::numeric_limits< _Tp >::max(),
       std::max(), std::numeric_limits< _Tp >::min(), std::pow(), and std::sqrt().

       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)
       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 566 of file ell_integral.tcc.

       References __beta(), __ellint_rc(), std::abs(), std::numeric_limits< _Tp >::epsilon(),
       std::numeric_limits< _Tp >::max(), std::max(), std::numeric_limits< _Tp >::min(), std::pow(), and
       std::sqrt().

       Referenced by __comp_ellint_3(), and __ellint_3().

   template<typename _Tp > _Tp std::tr1::__detail::__expint (const unsigned int__n, const _Tp__x)
       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 472 of file exp_integral.tcc.

       References __expint_E1(), __expint_En_recursion(), std::exp(), std::numeric_limits< _Tp >::infinity(),
       and std::numeric_limits< _Tp >::quiet_NaN().

   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 512 of file exp_integral.tcc.

       References __expint_Ei(), and std::numeric_limits< _Tp >::quiet_NaN().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_asymp (const unsigned int__n, const _Tp__x)
       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 404 of file exp_integral.tcc.

       References std::abs(), and std::exp().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_E1 (const _Tp__x)
       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 374 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)
       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 114 of file exp_integral.tcc.

       References std::abs(), and std::exp().

       Referenced by __expint_E1().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_E1_series (const _Tp__x)
       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 77 of file exp_integral.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__gamma_e(), std::abs(), std::numeric_limits<
       _Tp >::epsilon(), and std::log().

       Referenced by __expint_E1().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_Ei (const _Tp__x)
       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 350 of file exp_integral.tcc.

       References __expint_E1(), __expint_Ei_asymp(), __expint_Ei_series(), and std::log().

       Referenced by __expint(), and __expint_E1().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_Ei_asymp (const _Tp__x)
       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 317 of file exp_integral.tcc.

       References std::exp().

       Referenced by __expint_Ei().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_Ei_series (const _Tp__x)
       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 286 of file exp_integral.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__gamma_e(), and std::log().

       Referenced by __expint_Ei().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_En_cont_frac (const unsigned int__n, const _Tp__x)
       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 197 of file exp_integral.tcc.

       References std::abs(), std::numeric_limits< _Tp >::epsilon(), std::exp(), 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)
       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 242 of file exp_integral.tcc.

       References __expint_E1(), and std::exp().

       Referenced by __expint().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_En_series (const unsigned int__n, const _Tp__x)
       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 151 of file exp_integral.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__gamma_e(), __psi(), std::abs(),
       std::numeric_limits< _Tp >::epsilon(), and std::log().

   template<typename _Tp > _Tp std::tr1::__detail::__expint_large_n (const unsigned int__n, const _Tp__x)
       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 438 of file exp_integral.tcc.

       References std::abs(), std::numeric_limits< _Tp >::epsilon(), and std::exp().

   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 333 of file gamma.tcc.

       References __log_gamma(), and std::exp().

       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)
       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 90 of file bessel_function.tcc.

       References __gamma(), and std::abs().

       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 426 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)
       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 361 of file riemann_zeta.tcc.

       References __log_gamma(), std::abs(), std::numeric_limits< _Tp >::epsilon(), std::exp(), std::log(), and
       std::pow().

       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 724 of file hypergeometric.tcc.

       References __hyperg_luke(), __hyperg_reflect(), __hyperg_series(), std::abs(), std::numeric_limits< _Tp
       >::epsilon(), std::numeric_limits< _Tp >::infinity(), std::pow(), 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)
       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 300 of file hypergeometric.tcc.

       References std::abs(), std::numeric_limits< _Tp >::epsilon(), and std::pow().

       Referenced by __hyperg().

   template<typename _Tp > _Tp std::tr1::__detail::__hyperg_reflect (const _Tp__a, const _Tp__b, const _Tp__c,
       const _Tp__x)
       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(c-a,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 434 of file hypergeometric.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__gamma_e(), __hyperg_series(), __log_gamma(),
       __log_gamma_sign(), __psi(), std::abs(), std::numeric_limits< _Tp >::epsilon(), std::exp(), and
       std::log().

       Referenced by __hyperg().

   template<typename _Tp > _Tp std::tr1::__detail::__hyperg_series (const _Tp__a, const _Tp__b, const _Tp__c,
       const _Tp__x)
       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 266 of file hypergeometric.tcc.

       References std::abs(), and 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 320 of file poly_laguerre.tcc.

   template<typename _Tp > _Tp std::tr1::__detail::__log_bincoef (const unsigned int__n, const unsignedint__k)
       Return the logarithm of the binomial coefficient. The binomial coefficient is given by: t(
       ac{n!}{(n-k)! k!} ].

       Parameters:
           __n The first argument of the binomial coefficient.
           __k The second argument of the binomial coefficient.

       Returns:
           The binomial coefficient.

       Definition at line 279 of file gamma.tcc.

       References __log_gamma(), and std::log().

   template<typename _Tp > _Tp std::tr1::__detail::__log_gamma (const _Tp__x)
       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 221 of file gamma.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__lnpi(), __log_gamma_lanczos(), std::abs(),
       std::log(), and std::sin().

       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)
       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 149 of file gamma.tcc.

       References std::__lg(), and std::log().

   template<typename _Tp > _Tp std::tr1::__detail::__log_gamma_lanczos (const _Tp__x)
       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 177 of file gamma.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__euler(), and std::log().

       Referenced by __log_gamma().

   template<typename _Tp > _Tp std::tr1::__detail::__log_gamma_sign (const _Tp__x)
       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 248 of file gamma.tcc.

       References std::sin().

       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 112 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)
       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 70 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 244 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)
       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 127 of file poly_laguerre.tcc.

       References std::abs().

       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)
       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 72 of file poly_laguerre.tcc.

       References __log_gamma(), std::tr1::__detail::__numeric_constants< _Tp >::__pi_2(), std::exp(),
       std::log(), std::sin(), and std::sqrt().

       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)
       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 184 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)
       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 76 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 _Tp__x)
       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 415 of file gamma.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__pi(), __psi_asymp(), __psi_series(),
       std::abs(), std::cos(), std::numeric_limits< _Tp >::epsilon(), std::numeric_limits< _Tp >::quiet_NaN(),
       and std::sin().

       Referenced by __expint_En_series(), __hyperg_reflect(), and __psi().

   template<typename _Tp > _Tp std::tr1::__detail::__psi (const unsigned int__n, const _Tp__x)
       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 444 of file gamma.tcc.

       References __hurwitz_zeta(), __log_gamma(), __psi(), and std::exp().

   template<typename _Tp > _Tp std::tr1::__detail::__psi_asymp (const _Tp__x)
       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 384 of file gamma.tcc.

       References std::abs(), and std::log().

       Referenced by __psi().

   template<typename _Tp > _Tp std::tr1::__detail::__psi_series (const _Tp__x)
       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 354 of file gamma.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__gamma_e(), std::abs(), and
       std::numeric_limits< _Tp >::epsilon().

       Referenced by __psi().

   template<typename _Tp > _Tp std::tr1::__detail::__riemann_zeta (const _Tp__s)
       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 289 of file riemann_zeta.tcc.

       References __log_gamma(), std::tr1::__detail::__numeric_constants< _Tp >::__pi(), __riemann_zeta_glob(),
       __riemann_zeta_product(), __riemann_zeta_sum(), std::exp(), std::numeric_limits< _Tp >::infinity(),
       std::pow(), std::numeric_limits< _Tp >::quiet_NaN(), and std::sin().

   template<typename _Tp > _Tp std::tr1::__detail::__riemann_zeta_alt (const _Tp__s)
       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 111 of file riemann_zeta.tcc.

       References std::abs(), and std::pow().

   template<typename _Tp > _Tp std::tr1::__detail::__riemann_zeta_glob (const _Tp__s)
       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 153 of file riemann_zeta.tcc.

       References __log_gamma(), std::tr1::__detail::__numeric_constants< _Tp >::__pi(), std::abs(),
       std::numeric_limits< _Tp >::epsilon(), std::exp(), std::log(), std::pow(), and std::sin().

       Referenced by __riemann_zeta().

   template<typename _Tp > _Tp std::tr1::__detail::__riemann_zeta_product (const _Tp__s)
       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 248 of file riemann_zeta.tcc.

       References std::pow().

       Referenced by __riemann_zeta().

   template<typename _Tp > _Tp std::tr1::__detail::__riemann_zeta_sum (const _Tp__s)
       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 74 of file riemann_zeta.tcc.

       References std::pow().

       Referenced by __riemann_zeta().

   template<typename _Tp > _Tp std::tr1::__detail::__sph_bessel (const unsigned int__n, const _Tp__x)
       Return the spherical Bessel function $ j_n(x) $ of order n. The spherical Bessel function is defined by:
       ight))^{1/2}aJ{{n+1/2}(x) ]

       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 568 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)
       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 335 of file modified_bessel_func.tcc.

       References __bessel_ik(), std::tr1::__detail::__numeric_constants< _Tp >::__sqrtpio2(), and std::sqrt().

   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)
       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 533 of file bessel_function.tcc.

       References __bessel_jn(), std::tr1::__detail::__numeric_constants< _Tp >::__sqrtpio2(), and std::sqrt().

       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)
       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 213 of file legendre_function.tcc.

       References std::tr1::__detail::__numeric_constants< _Tp >::__lnpi(), __log_gamma(), __poly_legendre_p(),
       std::cos(), std::exp(), std::log(), std::numeric_limits< _Tp >::quiet_NaN(), and std::sqrt().

   template<typename _Tp > _Tp std::tr1::__detail::__sph_neumann (const unsigned int__n, const _Tp__x)
       Return the spherical Neumann function $ n_n(x) $. The spherical Neumann function is defined by: n_n(x) =
       ight){^{1/2} N_{n+1/2}(x) ]

       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 606 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.