aboutsummaryrefslogtreecommitdiff
path: root/libstdc++-v3/testsuite/util/specfun_testcase.h
diff options
context:
space:
mode:
Diffstat (limited to 'libstdc++-v3/testsuite/util/specfun_testcase.h')
-rw-r--r--libstdc++-v3/testsuite/util/specfun_testcase.h699
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