2018-03-08 Richard Biener <rguenther@suse.de>
[official-gcc.git] / libstdc++-v3 / testsuite / util / specfun_testcase.h
blob1998c39921286815485065e87b910c67079e7abd
1 // Copyright (C) 2015-2018 Free Software Foundation, Inc.
2 //
3 // This file is part of the GNU ISO C++ Library. This library is free
4 // software; you can redistribute it and/or modify it under the
5 // terms of the GNU General Public License as published by the
6 // Free Software Foundation; either version 2, or (at your option)
7 // any later version.
8 //
9 // This library is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 // GNU General Public License for more details.
14 // You should have received a copy of the GNU General Public License along
15 // with this library; see the file COPYING3. If not see
16 // <http://www.gnu.org/licenses/>.
18 // testcase.h
21 // These are little PODs for special function inputs and
22 // expexted results for the testsuite.
25 #ifndef _GLIBCXX_SPECFUN_TESTCASE_H
26 #define _GLIBCXX_SPECFUN_TESTCASE_H
28 // Associated Laguerre polynomials.
29 template<typename _Tp>
30 struct testcase_assoc_laguerre
32 _Tp f0;
33 unsigned int n;
34 unsigned int m;
35 _Tp x;
36 _Tp f;
39 // Associated Legendre functions.
40 template<typename _Tp>
41 struct testcase_assoc_legendre
43 _Tp f0;
44 unsigned int l;
45 unsigned int m;
46 _Tp x;
47 _Tp f;
50 // Beta function.
51 template<typename _Tp>
52 struct testcase_beta
54 _Tp f0;
55 _Tp x;
56 _Tp y;
57 _Tp f;
60 // Complete elliptic integrals of the first kind.
61 template<typename _Tp>
62 struct testcase_comp_ellint_1
64 _Tp f0;
65 _Tp k;
66 _Tp f;
69 // Complete elliptic integrals of the second kind.
70 template<typename _Tp>
71 struct testcase_comp_ellint_2
73 _Tp f0;
74 _Tp k;
75 _Tp f;
78 // Complete elliptic integrals of the third kind.
79 template<typename _Tp>
80 struct testcase_comp_ellint_3
82 _Tp f0;
83 _Tp k;
84 _Tp nu;
85 _Tp f;
88 // Confluent hypergeometric functions.
89 template<typename _Tp>
90 struct testcase_conf_hyperg
92 _Tp f0;
93 _Tp a;
94 _Tp c;
95 _Tp x;
96 _Tp f;
99 // Generic cylindrical Bessel functions.
100 template<typename _Tp>
101 struct testcase_cyl_bessel
103 _Tp f0;
104 _Tp nu;
105 _Tp x;
106 _Tp f;
109 // Regular modified cylindrical Bessel functions.
110 template<typename _Tp>
111 struct testcase_cyl_bessel_i
113 _Tp f0;
114 _Tp nu;
115 _Tp x;
116 _Tp f;
119 // Cylindrical Bessel functions (of the first kind).
120 template<typename _Tp>
121 struct testcase_cyl_bessel_j
123 _Tp f0;
124 _Tp nu;
125 _Tp x;
126 _Tp f;
129 // Irregular modified cylindrical Bessel functions.
130 template<typename _Tp>
131 struct testcase_cyl_bessel_k
133 _Tp f0;
134 _Tp nu;
135 _Tp x;
136 _Tp f;
139 // Cylindrical Neumann functions.
140 template<typename _Tp>
141 struct testcase_cyl_neumann
143 _Tp f0;
144 _Tp nu;
145 _Tp x;
146 _Tp f;
149 // Elliptic integrals of the first kind.
150 template<typename _Tp>
151 struct testcase_ellint_1
153 _Tp f0;
154 _Tp k;
155 _Tp phi;
156 _Tp f;
159 // Elliptic integrals of the second kind.
160 template<typename _Tp>
161 struct testcase_ellint_2
163 _Tp f0;
164 _Tp k;
165 _Tp phi;
166 _Tp f;
169 // Elliptic integrals of the third kind.
170 template<typename _Tp>
171 struct testcase_ellint_3
173 _Tp f0;
174 _Tp k;
175 _Tp nu;
176 _Tp phi;
177 _Tp f;
180 // Exponential integral.
181 template<typename _Tp>
182 struct testcase_expint
184 _Tp f0;
185 _Tp x;
186 _Tp f;
189 // Hermite polynomials
190 template<typename _Tp>
191 struct testcase_hermite
193 _Tp f0;
194 unsigned int n;
195 _Tp x;
196 _Tp f;
199 // Hypergeometric functions.
200 template<typename _Tp>
201 struct testcase_hyperg
203 _Tp f0;
204 _Tp a;
205 _Tp b;
206 _Tp c;
207 _Tp x;
208 _Tp f;
211 // Laguerre polynomials.
212 template<typename _Tp>
213 struct testcase_laguerre
215 _Tp f0;
216 unsigned int n;
217 _Tp x;
218 _Tp f;
221 // Legendre polynomials.
222 template<typename _Tp>
223 struct testcase_legendre
225 _Tp f0;
226 unsigned int l;
227 _Tp x;
228 _Tp f;
231 // Riemann zeta function.
232 template<typename _Tp>
233 struct testcase_riemann_zeta
235 _Tp f0;
236 _Tp s;
237 _Tp f;
240 // Hurwitz zeta function.
241 template<typename _Tp>
242 struct testcase_hurwitz_zeta
244 _Tp f0;
245 _Tp s;
246 _Tp a;
247 _Tp f;
250 // Spherical Bessel functions.
251 template<typename _Tp>
252 struct testcase_sph_bessel
254 _Tp f0;
255 unsigned int n;
256 _Tp x;
257 _Tp f;
260 // Regular modified spherical Bessel functions.
261 template<typename _Tp>
262 struct testcase_sph_bessel_i
264 _Tp f0;
265 unsigned int n;
266 _Tp x;
267 _Tp f;
270 // Irregular modified spherical Bessel functions.
271 template<typename _Tp>
272 struct testcase_sph_bessel_k
274 _Tp f0;
275 unsigned int n;
276 _Tp x;
277 _Tp f;
280 // Spherical Legendre functions.
281 template<typename _Tp>
282 struct testcase_sph_legendre
284 _Tp f0;
285 unsigned int l;
286 unsigned int m;
287 _Tp theta;
288 _Tp f;
291 // Spherical Neumann functions.
292 template<typename _Tp>
293 struct testcase_sph_neumann
295 _Tp f0;
296 unsigned int n;
297 _Tp x;
298 _Tp f;
301 // Airy Ai functions.
302 template<typename _Tp>
303 struct testcase_airy_ai
305 _Tp f0;
306 _Tp x;
307 _Tp f;
310 // Airy Bi functions.
311 template<typename _Tp>
312 struct testcase_airy_bi
314 _Tp f0;
315 _Tp x;
316 _Tp f;
319 // Upper incomplete gamma functions.
320 template<typename _Tp>
321 struct testcase_gamma_u
323 _Tp f0;
324 _Tp n;
325 _Tp x;
326 _Tp f;
329 // Lower incomplete gamma functions.
330 template<typename _Tp>
331 struct testcase_gamma_l
333 _Tp f0;
334 _Tp n;
335 _Tp x;
336 _Tp f;
339 // Dilogarithm functions.
340 template<typename _Tp>
341 struct testcase_dilog
343 _Tp f0;
344 _Tp x;
345 _Tp f;
348 // Digamma functions.
349 template<typename _Tp>
350 struct testcase_gamma
352 _Tp f0;
353 _Tp x;
354 _Tp f;
357 template<typename _Tp>
358 struct testcase_comp_ellint_rf
360 _Tp f0;
361 _Tp x;
362 _Tp y;
363 _Tp f;
366 template<typename _Tp>
367 struct testcase_ellint_rf
369 _Tp f0;
370 _Tp x;
371 _Tp y;
372 _Tp z;
373 _Tp f;
376 template<typename _Tp>
377 struct testcase_ellint_rj
379 _Tp f0;
380 _Tp x;
381 _Tp y;
382 _Tp z;
383 _Tp p;
384 _Tp f;
387 template<typename _Tp>
388 struct testcase_ellint_rd
390 _Tp f0;
391 _Tp x;
392 _Tp y;
393 _Tp z;
394 _Tp f;
397 template<typename _Tp>
398 struct testcase_comp_ellint_rg
400 _Tp f0;
401 _Tp x;
402 _Tp y;
403 _Tp f;
406 template<typename _Tp>
407 struct testcase_ellint_rg
409 _Tp f0;
410 _Tp x;
411 _Tp y;
412 _Tp z;
413 _Tp f;
416 #endif // _GLIBCXX_SPECFUN_TESTCASE_H