diff options
Diffstat (limited to 'libstdc++-v3/testsuite/util/specfun_testcase.h')
-rw-r--r-- | libstdc++-v3/testsuite/util/specfun_testcase.h | 699 |
1 files changed, 652 insertions, 47 deletions
diff --git a/libstdc++-v3/testsuite/util/specfun_testcase.h b/libstdc++-v3/testsuite/util/specfun_testcase.h index d73b0ab031c..b1a434bb2d2 100644 --- a/libstdc++-v3/testsuite/util/specfun_testcase.h +++ b/libstdc++-v3/testsuite/util/specfun_testcase.h @@ -1,4 +1,4 @@ -// Copyright (C) 2015 Free Software Foundation, Inc. +// Copyright (C) 2015-2016 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the @@ -15,17 +15,19 @@ // with this library; see the file COPYING3. If not see // <http://www.gnu.org/licenses/>. -// testcase.h +// specfun_testcase.h // -// These are little PODs for special function inputs and -// expexted results for the testsuite. +// These are little PODs for special function inputs and +// expexted results for the testsuite. // #ifndef _GLIBCXX_SPECFUN_TESTCASE_H #define _GLIBCXX_SPECFUN_TESTCASE_H -// Associated Laguerre polynomials. +#include <complex> + +// Associated Laguerre polynomials. template<typename _Tp> struct testcase_assoc_laguerre { @@ -36,7 +38,7 @@ template<typename _Tp> _Tp f; }; -// Associated Legendre functions. +// Associated Legendre functions. template<typename _Tp> struct testcase_assoc_legendre { @@ -47,7 +49,7 @@ template<typename _Tp> _Tp f; }; -// Beta function. +// Beta function. template<typename _Tp> struct testcase_beta { @@ -57,7 +59,7 @@ template<typename _Tp> _Tp f; }; -// Complete elliptic integrals of the first kind. +// Complete elliptic integrals of the first kind. template<typename _Tp> struct testcase_comp_ellint_1 { @@ -66,7 +68,7 @@ template<typename _Tp> _Tp f; }; -// Complete elliptic integrals of the second kind. +// Complete elliptic integrals of the second kind. template<typename _Tp> struct testcase_comp_ellint_2 { @@ -75,7 +77,7 @@ template<typename _Tp> _Tp f; }; -// Complete elliptic integrals of the third kind. +// Complete elliptic integrals of the third kind. template<typename _Tp> struct testcase_comp_ellint_3 { @@ -85,7 +87,16 @@ template<typename _Tp> _Tp f; }; -// Confluent hypergeometric functions. +// Complete elliptic D integrals. +template<typename _Tp> + struct testcase_comp_ellint_d + { + _Tp f0; + _Tp k; + _Tp f; + }; + +// Confluent hypergeometric functions. template<typename _Tp> struct testcase_conf_hyperg { @@ -96,7 +107,17 @@ template<typename _Tp> _Tp f; }; -// Generic cylindrical Bessel functions. +// Confluent hypergeometric functions. +template<typename _Tp> + struct testcase_conf_hyperg_lim + { + _Tp f0; + _Tp c; + _Tp x; + _Tp f; + }; + +// Generic cylindrical Bessel functions. template<typename _Tp> struct testcase_cyl_bessel { @@ -106,7 +127,7 @@ template<typename _Tp> _Tp f; }; -// Regular modified cylindrical Bessel functions. +// Regular modified cylindrical Bessel functions. template<typename _Tp> struct testcase_cyl_bessel_i { @@ -116,7 +137,7 @@ template<typename _Tp> _Tp f; }; -// Cylindrical Bessel functions (of the first kind). +// Cylindrical Bessel functions (of the first kind). template<typename _Tp> struct testcase_cyl_bessel_j { @@ -126,7 +147,7 @@ template<typename _Tp> _Tp f; }; -// Irregular modified cylindrical Bessel functions. +// Irregular modified cylindrical Bessel functions. template<typename _Tp> struct testcase_cyl_bessel_k { @@ -136,7 +157,7 @@ template<typename _Tp> _Tp f; }; -// Cylindrical Neumann functions. +// Cylindrical Neumann functions. template<typename _Tp> struct testcase_cyl_neumann { @@ -146,7 +167,7 @@ template<typename _Tp> _Tp f; }; -// Elliptic integrals of the first kind. +// Elliptic integrals of the first kind. template<typename _Tp> struct testcase_ellint_1 { @@ -156,7 +177,7 @@ template<typename _Tp> _Tp f; }; -// Elliptic integrals of the second kind. +// Elliptic integrals of the second kind. template<typename _Tp> struct testcase_ellint_2 { @@ -166,7 +187,7 @@ template<typename _Tp> _Tp f; }; -// Elliptic integrals of the third kind. +// Elliptic integrals of the third kind. template<typename _Tp> struct testcase_ellint_3 { @@ -177,7 +198,37 @@ template<typename _Tp> _Tp f; }; -// Exponential integral. +// Elliptic D integrals. +template<typename _Tp> + struct testcase_ellint_d + { + _Tp f0; + _Tp k; + _Tp phi; + _Tp f; + }; + +// Heuman lambda functions. +template<typename _Tp> + struct testcase_heuman_lambda + { + _Tp f0; + _Tp k; + _Tp phi; + _Tp f; + }; + +// Jacobi zeta functions. +template<typename _Tp> + struct testcase_jacobi_zeta + { + _Tp f0; + _Tp k; + _Tp phi; + _Tp f; + }; + +// Exponential integral. template<typename _Tp> struct testcase_expint { @@ -186,7 +237,7 @@ template<typename _Tp> _Tp f; }; -// Hermite polynomials +// Hermite polynomials template<typename _Tp> struct testcase_hermite { @@ -196,7 +247,7 @@ template<typename _Tp> _Tp f; }; -// Hypergeometric functions. +// Hypergeometric functions. template<typename _Tp> struct testcase_hyperg { @@ -208,7 +259,7 @@ template<typename _Tp> _Tp f; }; -// Laguerre polynomials. +// Laguerre polynomials. template<typename _Tp> struct testcase_laguerre { @@ -218,7 +269,7 @@ template<typename _Tp> _Tp f; }; -// Legendre polynomials. +// Legendre polynomials. template<typename _Tp> struct testcase_legendre { @@ -228,7 +279,7 @@ template<typename _Tp> _Tp f; }; -// Riemann zeta function. +// Riemann zeta function. template<typename _Tp> struct testcase_riemann_zeta { @@ -237,7 +288,7 @@ template<typename _Tp> _Tp f; }; -// Hurwitz zeta function. +// Hurwitz zeta function. template<typename _Tp> struct testcase_hurwitz_zeta { @@ -247,7 +298,7 @@ template<typename _Tp> _Tp f; }; -// Spherical Bessel functions. +// Spherical Bessel functions. template<typename _Tp> struct testcase_sph_bessel { @@ -257,7 +308,7 @@ template<typename _Tp> _Tp f; }; -// Regular modified spherical Bessel functions. +// Regular modified spherical Bessel functions. template<typename _Tp> struct testcase_sph_bessel_i { @@ -267,7 +318,7 @@ template<typename _Tp> _Tp f; }; -// Irregular modified spherical Bessel functions. +// Irregular modified spherical Bessel functions. template<typename _Tp> struct testcase_sph_bessel_k { @@ -277,7 +328,7 @@ template<typename _Tp> _Tp f; }; -// Spherical Legendre functions. +// Spherical Legendre functions. template<typename _Tp> struct testcase_sph_legendre { @@ -288,7 +339,7 @@ template<typename _Tp> _Tp f; }; -// Spherical Neumann functions. +// Spherical Neumann functions. template<typename _Tp> struct testcase_sph_neumann { @@ -298,7 +349,7 @@ template<typename _Tp> _Tp f; }; -// Airy Ai functions. +// Airy Ai functions. template<typename _Tp> struct testcase_airy_ai { @@ -307,7 +358,7 @@ template<typename _Tp> _Tp f; }; -// Airy Bi functions. +// Airy Bi functions. template<typename _Tp> struct testcase_airy_bi { @@ -316,27 +367,47 @@ template<typename _Tp> _Tp f; }; -// Upper incomplete gamma functions. +// Upper incomplete gamma functions. +template<typename _Tp> + struct testcase_tgamma + { + _Tp f0; + _Tp a; + _Tp x; + _Tp f; + }; + +// Lower incomplete gamma functions. template<typename _Tp> - struct testcase_gamma_u + struct testcase_tgamma_lower { _Tp f0; - _Tp n; + _Tp a; _Tp x; _Tp f; }; -// Lower incomplete gamma functions. +// Regularized upper incomplete gamma functions. template<typename _Tp> - struct testcase_gamma_l + struct testcase_qgamma { _Tp f0; - _Tp n; + _Tp a; _Tp x; _Tp f; }; -// Dilogarithm functions. +// Regularized lower incomplete gamma functions. +template<typename _Tp> + struct testcase_pgamma + { + _Tp f0; + _Tp a; + _Tp x; + _Tp f; + }; + +// Dilogarithm functions. template<typename _Tp> struct testcase_dilog { @@ -345,7 +416,7 @@ template<typename _Tp> _Tp f; }; -// Digamma functions. +// Digamma functions. template<typename _Tp> struct testcase_gamma { @@ -355,7 +426,7 @@ template<typename _Tp> }; template<typename _Tp> - struct testcase_comp_ellint_rf + struct testcase_ellint_rc { _Tp f0; _Tp x; @@ -364,7 +435,7 @@ template<typename _Tp> }; template<typename _Tp> - struct testcase_ellint_rf + struct testcase_ellint_rd { _Tp f0; _Tp x; @@ -374,18 +445,16 @@ template<typename _Tp> }; template<typename _Tp> - struct testcase_ellint_rj + struct testcase_comp_ellint_rf { _Tp f0; _Tp x; _Tp y; - _Tp z; - _Tp p; _Tp f; }; template<typename _Tp> - struct testcase_ellint_rd + struct testcase_ellint_rf { _Tp f0; _Tp x; @@ -413,4 +482,540 @@ template<typename _Tp> _Tp f; }; +template<typename _Tp> + struct testcase_ellint_rj + { + _Tp f0; + _Tp x; + _Tp y; + _Tp z; + _Tp p; + _Tp f; + }; + +template<typename _Tp> + struct testcase_psi + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_sinint + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_cosint + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_sinhint + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_coshint + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_dawson + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_jacobi_sn + { + _Tp f0; + _Tp k; + _Tp u; + _Tp f; + }; + +template<typename _Tp> + struct testcase_jacobi_cn + { + _Tp f0; + _Tp k; + _Tp u; + _Tp f; + }; + +template<typename _Tp> + struct testcase_jacobi_dn + { + _Tp f0; + _Tp k; + _Tp u; + _Tp f; + }; + +template<typename _Tp> + struct testcase_expint_en + { + _Tp f0; + unsigned int n; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_fresnel_c + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_fresnel_s + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_sinc + { + _Tp f0; + _Tp x; + _Tp f; + }; + +template<typename _Tp> + struct testcase_sinc_pi + { + _Tp f0; + _Tp x; + _Tp f; + }; + +// Log upper Pochhammer symbol. +template<typename _Tp> + struct testcase_lpochhammer + { + _Tp f0; + _Tp a; + _Tp x; + _Tp f; + }; + +// Upper Pochhammer symbols. +template<typename _Tp> + struct testcase_pochhammer + { + _Tp f0; + _Tp a; + _Tp x; + _Tp f; + }; + +// Log lower Pochhammer symbol. +template<typename _Tp> + struct testcase_lpochhammer_lower + { + _Tp f0; + _Tp a; + _Tp x; + _Tp f; + }; + +// Lower Pochhammer symbol. +template<typename _Tp> + struct testcase_pochhammer_lower + { + _Tp f0; + _Tp a; + _Tp x; + _Tp f; + }; + +// Legendre functions of the second kind. +template<typename _Tp> + struct testcase_legendre_q + { + _Tp f0; + unsigned int l; + _Tp x; + _Tp f; + }; + +// Factorial. +template<typename _Tp> + struct testcase_factorial + { + _Tp f0; + unsigned int n; + _Tp f; + }; + +// Log factorial. +template<typename _Tp> + struct testcase_lfactorial + { + _Tp f0; + unsigned int n; + _Tp f; + }; + +// Double factorial. +template<typename _Tp> + struct testcase_double_factorial + { + _Tp f0; + unsigned int n; + _Tp f; + }; + +// Log double factorial. +template<typename _Tp> + struct testcase_ldouble_factorial + { + _Tp f0; + unsigned int n; + _Tp f; + }; + +// Binomial coefficient. +template<typename _Tp> + struct testcase_bincoef + { + _Tp f0; + unsigned int n; + unsigned int k; + _Tp f; + }; + +// Log binomial coefficient. +template<typename _Tp> + struct testcase_lbincoef + { + _Tp f0; + unsigned int n; + unsigned int k; + _Tp f; + }; + +// Gegenbauer polynomials. +template<typename _Tp> + struct testcase_gegenbauer + { + _Tp f0; + unsigned int n; + _Tp alpha; + _Tp x; + _Tp f; + }; + +// Chebyshev polynomials of the first kind. +template<typename _Tp> + struct testcase_chebyshev_t + { + _Tp f0; + unsigned int n; + _Tp x; + _Tp f; + }; + +// Chebyshev polynomials of the second kind. +template<typename _Tp> + struct testcase_chebyshev_u + { + _Tp f0; + unsigned int n; + _Tp x; + _Tp f; + }; + +// Chebyshev polynomials of the third kind. +template<typename _Tp> + struct testcase_chebyshev_v + { + _Tp f0; + unsigned int n; + _Tp x; + _Tp f; + }; + +// Chebyshev polynomials of the fourth kind. +template<typename _Tp> + struct testcase_chebyshev_w + { + _Tp f0; + unsigned int n; + _Tp x; + _Tp f; + }; + +// Zernike polynomials. +template<typename _Tp> + struct testcase_zernike + { + _Tp f0; + unsigned int n; + int m; + _Tp rho; + _Tp phi; + _Tp f; + }; + +// Radial polynomials. +template<typename _Tp> + struct testcase_radpoly + { + _Tp f0; + unsigned int n; + int m; + _Tp rho; + _Tp f; + }; + +// Incomplete beta function. +template<typename _Tp> + struct testcase_ibeta + { + _Tp f0; + _Tp a; + _Tp b; + _Tp x; + _Tp f; + }; + +// Complementary beta function. +template<typename _Tp> + struct testcase_ibetac + { + _Tp f0; + _Tp a; + _Tp b; + _Tp x; + _Tp f; + }; + +// Cylindrical Hankel functions. +template<typename _Tp> + struct testcase_cyl_hankel_1 + { + std::complex<_Tp> f0; + _Tp nu; + _Tp x; + std::complex<_Tp> f; + }; + +// Cylindrical Hankel functions. +template<typename _Tp> + struct testcase_cyl_hankel_2 + { + std::complex<_Tp> f0; + _Tp nu; + _Tp x; + std::complex<_Tp> f; + }; + +// Spherical Hankel functions. +template<typename _Tp> + struct testcase_sph_hankel_1 + { + std::complex<_Tp> f0; + unsigned int n; + _Tp x; + std::complex<_Tp> f; + }; + +// Spherical Hankel functions. +template<typename _Tp> + struct testcase_sph_hankel_2 + { + std::complex<_Tp> f0; + unsigned int n; + _Tp x; + std::complex<_Tp> f; + }; + +// Spherical Harmonic functions. +template<typename _Tp> + struct testcase_sph_harmonic + { + std::complex<_Tp> f0; + unsigned int l; + int m; + _Tp theta; + _Tp phi; + std::complex<_Tp> f; + }; + +// Jacobi polynomials. +template<typename _Tp> + struct testcase_jacobi + { + _Tp f0; + unsigned int n; + _Tp alpha; + _Tp beta; + _Tp x; + _Tp f; + }; + +// Polylogarithm functions. +template<typename _Tp> + struct testcase_polylog + { + std::complex<_Tp> f0; + _Tp s; + std::complex<_Tp> w; + std::complex<_Tp> f; + }; + +// Clausen functions. +template<typename _Tp> + struct testcase_clausen + { + std::complex<_Tp> f0; + unsigned int m; + std::complex<_Tp> w; + std::complex<_Tp> f; + }; + +// Dirichlet eta function. +template<typename _Tp> + struct testcase_dirichlet_eta + { + _Tp f0; + _Tp s; + _Tp f; + }; + +// Dirichlet beta function. +template<typename _Tp> + struct testcase_dirichlet_beta + { + _Tp f0; + _Tp s; + _Tp f; + }; + +// Dirichlet lambda function. +template<typename _Tp> + struct testcase_dirichlet_lambda + { + _Tp f0; + _Tp s; + _Tp f; + }; + +// Owens T functions. +template<typename _Tp> + struct testcase_owens_t + { + _Tp f0; + _Tp h; + _Tp a; + _Tp f; + }; + +// Clausen Cl_2 function. +template<typename _Tp> + struct testcase_clausen_c + { + _Tp f0; + unsigned int m; + _Tp w; + _Tp f; + }; + +// Exponential theta_1 functions. +template<typename _Tp> + struct testcase_theta_1 + { + _Tp f0; + _Tp nu; + _Tp x; + _Tp f; + }; + +// Exponential theta_2 functions. +template<typename _Tp> + struct testcase_theta_2 + { + _Tp f0; + _Tp nu; + _Tp x; + _Tp f; + }; + +// Exponential theta_3 functions. +template<typename _Tp> + struct testcase_theta_3 + { + _Tp f0; + _Tp nu; + _Tp x; + _Tp f; + }; + +// Exponential theta_4 functions. +template<typename _Tp> + struct testcase_theta_4 + { + _Tp f0; + _Tp nu; + _Tp x; + _Tp f; + }; + +// Elliptic nome. +template<typename _Tp> + struct testcase_ellnome + { + _Tp f0; + _Tp k; + _Tp f; + }; + +// Reperiodized sine function. +template<typename _Tp> + struct testcase_sin_pi + { + _Tp f0; + _Tp x; + _Tp f; + }; + +// Reperiodized cosine function. +template<typename _Tp> + struct testcase_cos_pi + { + _Tp f0; + _Tp x; + _Tp f; + }; + +// Reperiodized tangent function. +template<typename _Tp> + struct testcase_tan_pi + { + _Tp f0; + _Tp x; + _Tp f; + }; + #endif // _GLIBCXX_SPECFUN_TESTCASE_H |