#endif
#include <cmath>
-#include <ext/type_traits.h>
-#include <tr1/type_traits>
#if defined(_GLIBCXX_INCLUDE_AS_TR1)
# include <tr1_impl/cmath>
* A collection of advanced mathematical special functions.
* @{
*/
-#ifndef __GXX_EXPERIMENTAL_CXX0X__
#include <bits/stl_algobase.h>
#include <limits>
+#include <tr1/type_traits>
#include <tr1/gamma.tcc>
#include <tr1/bessel_function.tcc>
#include <tr1/beta_function.tcc>
namespace tr1
{
// 5.2.1.1 Associated Laguerre polynomials.
-
inline float
assoc_laguerref(unsigned int __n, unsigned int __m, float __x)
{ return __detail::__assoc_laguerre<float>(__n, __m, __x); }
return __detail::__assoc_laguerre<__type>(__n, __m, __x);
}
-
// 5.2.1.2 Associated Legendre functions.
-
inline float
assoc_legendref(unsigned int __l, unsigned int __m, float __x)
{ return __detail::__assoc_legendre_p<float>(__l, __m, __x); }
return __detail::__assoc_legendre_p<__type>(__l, __m, __x);
}
-
// 5.2.1.3 Beta functions.
-
inline float
betaf(float __x, float __y)
{ return __detail::__beta<float>(__x, __y); }
return __detail::__beta<__type>(__x, __y);
}
-
// 5.2.1.4 Complete elliptic interals of the first kind.
-
inline float
comp_ellint_1f(float __k)
{ return __detail::__comp_ellint_1<float>(__k); }
return __detail::__comp_ellint_1<__type>(__k);
}
-
// 5.2.1.5 Complete elliptic interals of the second kind.
-
inline float
comp_ellint_2f(float __k)
{ return __detail::__comp_ellint_2<float>(__k); }
return __detail::__comp_ellint_2<__type>(__k);
}
-
// 5.2.1.6 Complete elliptic interals of the third kind.
-
inline float
comp_ellint_3f(float __k, float __nu)
{ return __detail::__comp_ellint_3<float>(__k, __nu); }
return __detail::__comp_ellint_3<__type>(__k, __nu);
}
-
// 5.2.1.7 Confluent hypergeometric functions.
-
inline float
conf_hypergf(float __a, float __c, float __x)
{ return __detail::__conf_hyperg<float>(__a, __c, __x); }
return __detail::__conf_hyperg<__type>(__a, __c, __x);
}
-
// 5.2.1.8 Regular modified cylindrical Bessel functions.
-
inline float
cyl_bessel_if(float __nu, float __x)
{ return __detail::__cyl_bessel_i<float>(__nu, __x); }
return __detail::__cyl_bessel_i<__type>(__nu, __x);
}
-
// 5.2.1.9 Cylindrical Bessel functions (of the first kind).
-
inline float
cyl_bessel_jf(float __nu, float __x)
{ return __detail::__cyl_bessel_j<float>(__nu, __x); }
return __detail::__cyl_bessel_j<__type>(__nu, __x);
}
-
// 5.2.1.10 Irregular modified cylindrical Bessel functions.
-
inline float
cyl_bessel_kf(float __nu, float __x)
{ return __detail::__cyl_bessel_k<float>(__nu, __x); }
return __detail::__cyl_bessel_k<__type>(__nu, __x);
}
-
// 5.2.1.11 Cylindrical Neumann functions.
-
inline float
cyl_neumannf(float __nu, float __x)
{ return __detail::__cyl_neumann_n<float>(__nu, __x); }
return __detail::__cyl_neumann_n<__type>(__nu, __x);
}
-
// 5.2.1.12 Incomplete elliptic interals of the first kind.
-
inline float
ellint_1f(float __k, float __phi)
{ return __detail::__ellint_1<float>(__k, __phi); }
return __detail::__ellint_1<__type>(__k, __phi);
}
-
// 5.2.1.13 Incomplete elliptic interals of the second kind.
-
inline float
ellint_2f(float __k, float __phi)
{ return __detail::__ellint_2<float>(__k, __phi); }
return __detail::__ellint_2<__type>(__k, __phi);
}
-
// 5.2.1.14 Incomplete elliptic interals of the third kind.
-
inline float
ellint_3f(float __k, float __nu, float __phi)
{ return __detail::__ellint_3<float>(__k, __nu, __phi); }
return __detail::__ellint_3<__type>(__k, __nu, __phi);
}
-
// 5.2.1.15 Exponential integrals.
-
inline float
expintf(float __x)
{ return __detail::__expint<float>(__x); }
return __detail::__expint<__type>(__x);
}
-
// 5.2.1.16 Hermite polynomials.
-
inline float
hermitef(unsigned int __n, float __x)
{ return __detail::__poly_hermite<float>(__n, __x); }
return __detail::__poly_hermite<__type>(__n, __x);
}
-
// 5.2.1.17 Hypergeometric functions.
-
inline float
hypergf(float __a, float __b, float __c, float __x)
{ return __detail::__hyperg<float>(__a, __b, __c, __x); }
return __detail::__hyperg<__type>(__a, __b, __c, __x);
}
-
// 5.2.1.18 Laguerre polynomials.
-
inline float
laguerref(unsigned int __n, float __x)
{ return __detail::__laguerre<float>(__n, __x); }
return __detail::__laguerre<__type>(__n, __x);
}
-
// 5.2.1.19 Legendre polynomials.
-
inline float
legendref(unsigned int __n, float __x)
{ return __detail::__poly_legendre_p<float>(__n, __x); }
return __detail::__poly_legendre_p<__type>(__n, __x);
}
-
// 5.2.1.20 Riemann zeta function.
-
inline float
riemann_zetaf(float __x)
{ return __detail::__riemann_zeta<float>(__x); }
return __detail::__riemann_zeta<__type>(__x);
}
-
// 5.2.1.21 Spherical Bessel functions.
-
inline float
sph_besself(unsigned int __n, float __x)
{ return __detail::__sph_bessel<float>(__n, __x); }
return __detail::__sph_bessel<__type>(__n, __x);
}
-
// 5.2.1.22 Spherical associated Legendre functions.
-
inline float
sph_legendref(unsigned int __l, unsigned int __m, float __theta)
{ return __detail::__sph_legendre<float>(__l, __m, __theta); }
return __detail::__sph_legendre<__type>(__l, __m, __theta);
}
-
// 5.2.1.23 Spherical Neumann functions.
-
inline float
sph_neumannf(unsigned int __n, float __x)
{ return __detail::__sph_neumann<float>(__n, __x); }
}
/* @} */ // group tr1_math_spec_func
-
}
}
-#endif // __GXX_EXPERIMENTAL_CXX0X__
-
#endif // _GLIBCXX_TR1_CMATH