]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/util/specfun_testcase.h
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / util / specfun_testcase.h
1 // Copyright (C) 2015-2023 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.
13 //
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/>.
17
18 // testcase.h
19
20 //
21 // These are little PODs for special function inputs and
22 // expexted results for the testsuite.
23 //
24
25 #ifndef _GLIBCXX_SPECFUN_TESTCASE_H
26 #define _GLIBCXX_SPECFUN_TESTCASE_H
27
28 // Associated Laguerre polynomials.
29 template<typename _Tp>
30 struct testcase_assoc_laguerre
31 {
32 _Tp f0;
33 unsigned int n;
34 unsigned int m;
35 _Tp x;
36 _Tp f;
37 };
38
39 // Associated Legendre functions.
40 template<typename _Tp>
41 struct testcase_assoc_legendre
42 {
43 _Tp f0;
44 unsigned int l;
45 unsigned int m;
46 _Tp x;
47 _Tp f;
48 };
49
50 // Beta function.
51 template<typename _Tp>
52 struct testcase_beta
53 {
54 _Tp f0;
55 _Tp x;
56 _Tp y;
57 _Tp f;
58 };
59
60 // Complete elliptic integrals of the first kind.
61 template<typename _Tp>
62 struct testcase_comp_ellint_1
63 {
64 _Tp f0;
65 _Tp k;
66 _Tp f;
67 };
68
69 // Complete elliptic integrals of the second kind.
70 template<typename _Tp>
71 struct testcase_comp_ellint_2
72 {
73 _Tp f0;
74 _Tp k;
75 _Tp f;
76 };
77
78 // Complete elliptic integrals of the third kind.
79 template<typename _Tp>
80 struct testcase_comp_ellint_3
81 {
82 _Tp f0;
83 _Tp k;
84 _Tp nu;
85 _Tp f;
86 };
87
88 // Confluent hypergeometric functions.
89 template<typename _Tp>
90 struct testcase_conf_hyperg
91 {
92 _Tp f0;
93 _Tp a;
94 _Tp c;
95 _Tp x;
96 _Tp f;
97 };
98
99 // Generic cylindrical Bessel functions.
100 template<typename _Tp>
101 struct testcase_cyl_bessel
102 {
103 _Tp f0;
104 _Tp nu;
105 _Tp x;
106 _Tp f;
107 };
108
109 // Regular modified cylindrical Bessel functions.
110 template<typename _Tp>
111 struct testcase_cyl_bessel_i
112 {
113 _Tp f0;
114 _Tp nu;
115 _Tp x;
116 _Tp f;
117 };
118
119 // Cylindrical Bessel functions (of the first kind).
120 template<typename _Tp>
121 struct testcase_cyl_bessel_j
122 {
123 _Tp f0;
124 _Tp nu;
125 _Tp x;
126 _Tp f;
127 };
128
129 // Irregular modified cylindrical Bessel functions.
130 template<typename _Tp>
131 struct testcase_cyl_bessel_k
132 {
133 _Tp f0;
134 _Tp nu;
135 _Tp x;
136 _Tp f;
137 };
138
139 // Cylindrical Neumann functions.
140 template<typename _Tp>
141 struct testcase_cyl_neumann
142 {
143 _Tp f0;
144 _Tp nu;
145 _Tp x;
146 _Tp f;
147 };
148
149 // Elliptic integrals of the first kind.
150 template<typename _Tp>
151 struct testcase_ellint_1
152 {
153 _Tp f0;
154 _Tp k;
155 _Tp phi;
156 _Tp f;
157 };
158
159 // Elliptic integrals of the second kind.
160 template<typename _Tp>
161 struct testcase_ellint_2
162 {
163 _Tp f0;
164 _Tp k;
165 _Tp phi;
166 _Tp f;
167 };
168
169 // Elliptic integrals of the third kind.
170 template<typename _Tp>
171 struct testcase_ellint_3
172 {
173 _Tp f0;
174 _Tp k;
175 _Tp nu;
176 _Tp phi;
177 _Tp f;
178 };
179
180 // Exponential integral.
181 template<typename _Tp>
182 struct testcase_expint
183 {
184 _Tp f0;
185 _Tp x;
186 _Tp f;
187 };
188
189 // Hermite polynomials
190 template<typename _Tp>
191 struct testcase_hermite
192 {
193 _Tp f0;
194 unsigned int n;
195 _Tp x;
196 _Tp f;
197 };
198
199 // Hypergeometric functions.
200 template<typename _Tp>
201 struct testcase_hyperg
202 {
203 _Tp f0;
204 _Tp a;
205 _Tp b;
206 _Tp c;
207 _Tp x;
208 _Tp f;
209 };
210
211 // Laguerre polynomials.
212 template<typename _Tp>
213 struct testcase_laguerre
214 {
215 _Tp f0;
216 unsigned int n;
217 _Tp x;
218 _Tp f;
219 };
220
221 // Legendre polynomials.
222 template<typename _Tp>
223 struct testcase_legendre
224 {
225 _Tp f0;
226 unsigned int l;
227 _Tp x;
228 _Tp f;
229 };
230
231 // Riemann zeta function.
232 template<typename _Tp>
233 struct testcase_riemann_zeta
234 {
235 _Tp f0;
236 _Tp s;
237 _Tp f;
238 };
239
240 // Hurwitz zeta function.
241 template<typename _Tp>
242 struct testcase_hurwitz_zeta
243 {
244 _Tp f0;
245 _Tp s;
246 _Tp a;
247 _Tp f;
248 };
249
250 // Spherical Bessel functions.
251 template<typename _Tp>
252 struct testcase_sph_bessel
253 {
254 _Tp f0;
255 unsigned int n;
256 _Tp x;
257 _Tp f;
258 };
259
260 // Regular modified spherical Bessel functions.
261 template<typename _Tp>
262 struct testcase_sph_bessel_i
263 {
264 _Tp f0;
265 unsigned int n;
266 _Tp x;
267 _Tp f;
268 };
269
270 // Irregular modified spherical Bessel functions.
271 template<typename _Tp>
272 struct testcase_sph_bessel_k
273 {
274 _Tp f0;
275 unsigned int n;
276 _Tp x;
277 _Tp f;
278 };
279
280 // Spherical Legendre functions.
281 template<typename _Tp>
282 struct testcase_sph_legendre
283 {
284 _Tp f0;
285 unsigned int l;
286 unsigned int m;
287 _Tp theta;
288 _Tp f;
289 };
290
291 // Spherical Neumann functions.
292 template<typename _Tp>
293 struct testcase_sph_neumann
294 {
295 _Tp f0;
296 unsigned int n;
297 _Tp x;
298 _Tp f;
299 };
300
301 // Airy Ai functions.
302 template<typename _Tp>
303 struct testcase_airy_ai
304 {
305 _Tp f0;
306 _Tp x;
307 _Tp f;
308 };
309
310 // Airy Bi functions.
311 template<typename _Tp>
312 struct testcase_airy_bi
313 {
314 _Tp f0;
315 _Tp x;
316 _Tp f;
317 };
318
319 // Upper incomplete gamma functions.
320 template<typename _Tp>
321 struct testcase_gamma_u
322 {
323 _Tp f0;
324 _Tp n;
325 _Tp x;
326 _Tp f;
327 };
328
329 // Lower incomplete gamma functions.
330 template<typename _Tp>
331 struct testcase_gamma_l
332 {
333 _Tp f0;
334 _Tp n;
335 _Tp x;
336 _Tp f;
337 };
338
339 // Dilogarithm functions.
340 template<typename _Tp>
341 struct testcase_dilog
342 {
343 _Tp f0;
344 _Tp x;
345 _Tp f;
346 };
347
348 // Digamma functions.
349 template<typename _Tp>
350 struct testcase_gamma
351 {
352 _Tp f0;
353 _Tp x;
354 _Tp f;
355 };
356
357 template<typename _Tp>
358 struct testcase_comp_ellint_rf
359 {
360 _Tp f0;
361 _Tp x;
362 _Tp y;
363 _Tp f;
364 };
365
366 template<typename _Tp>
367 struct testcase_ellint_rf
368 {
369 _Tp f0;
370 _Tp x;
371 _Tp y;
372 _Tp z;
373 _Tp f;
374 };
375
376 template<typename _Tp>
377 struct testcase_ellint_rj
378 {
379 _Tp f0;
380 _Tp x;
381 _Tp y;
382 _Tp z;
383 _Tp p;
384 _Tp f;
385 };
386
387 template<typename _Tp>
388 struct testcase_ellint_rd
389 {
390 _Tp f0;
391 _Tp x;
392 _Tp y;
393 _Tp z;
394 _Tp f;
395 };
396
397 template<typename _Tp>
398 struct testcase_comp_ellint_rg
399 {
400 _Tp f0;
401 _Tp x;
402 _Tp y;
403 _Tp f;
404 };
405
406 template<typename _Tp>
407 struct testcase_ellint_rg
408 {
409 _Tp f0;
410 _Tp x;
411 _Tp y;
412 _Tp z;
413 _Tp f;
414 };
415
416 #endif // _GLIBCXX_SPECFUN_TESTCASE_H