Daily bump.
[official-gcc.git] / libstdc++-v3 / testsuite / special_functions / 01_assoc_laguerre / check_value.cc
blob96618f2b7946897ad863b74404831f9bcf75e112
1 // { dg-do run { target c++11 } }
2 // { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
3 //
4 // Copyright (C) 2016-2017 Free Software Foundation, Inc.
5 //
6 // This file is part of the GNU ISO C++ Library. This library is free
7 // software; you can redistribute it and/or modify it under the
8 // terms of the GNU General Public License as published by the
9 // Free Software Foundation; either version 3, or (at your option)
10 // any later version.
12 // This library is distributed in the hope that it will be useful,
13 // but WITHOUT ANY WARRANTY; without even the implied warranty of
14 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 // GNU General Public License for more details.
17 // You should have received a copy of the GNU General Public License along
18 // with this library; see the file COPYING3. If not see
19 // <http://www.gnu.org/licenses/>.
21 // assoc_laguerre
22 // Compare against values generated by the GNU Scientific Library.
23 // The GSL can be found on the web: http://www.gnu.org/software/gsl/
24 #include <limits>
25 #include <cmath>
26 #if defined(__TEST_DEBUG)
27 # include <iostream>
28 # define VERIFY(A) \
29 if (!(A)) \
30 { \
31 std::cout << "line " << __LINE__ \
32 << " max_abs_frac = " << max_abs_frac \
33 << std::endl; \
35 #else
36 # include <testsuite_hooks.h>
37 #endif
38 #include <specfun_testcase.h>
41 // Test data for n=0, m=0.
42 // max(|f - f_GSL|): 0.0000000000000000
43 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
44 const testcase_assoc_laguerre<double>
45 data001[11] =
47 { 1.0000000000000000, 0, 0,
48 0.0000000000000000 },
49 { 1.0000000000000000, 0, 0,
50 10.000000000000000 },
51 { 1.0000000000000000, 0, 0,
52 20.000000000000000 },
53 { 1.0000000000000000, 0, 0,
54 30.000000000000000 },
55 { 1.0000000000000000, 0, 0,
56 40.000000000000000 },
57 { 1.0000000000000000, 0, 0,
58 50.000000000000000 },
59 { 1.0000000000000000, 0, 0,
60 60.000000000000000 },
61 { 1.0000000000000000, 0, 0,
62 70.000000000000000 },
63 { 1.0000000000000000, 0, 0,
64 80.000000000000000 },
65 { 1.0000000000000000, 0, 0,
66 90.000000000000000 },
67 { 1.0000000000000000, 0, 0,
68 100.00000000000000 },
70 const double toler001 = 2.5000000000000020e-13;
72 // Test data for n=0, m=1.
73 // max(|f - f_GSL|): 0.0000000000000000
74 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
75 const testcase_assoc_laguerre<double>
76 data002[11] =
78 { 1.0000000000000000, 0, 1,
79 0.0000000000000000 },
80 { 1.0000000000000000, 0, 1,
81 10.000000000000000 },
82 { 1.0000000000000000, 0, 1,
83 20.000000000000000 },
84 { 1.0000000000000000, 0, 1,
85 30.000000000000000 },
86 { 1.0000000000000000, 0, 1,
87 40.000000000000000 },
88 { 1.0000000000000000, 0, 1,
89 50.000000000000000 },
90 { 1.0000000000000000, 0, 1,
91 60.000000000000000 },
92 { 1.0000000000000000, 0, 1,
93 70.000000000000000 },
94 { 1.0000000000000000, 0, 1,
95 80.000000000000000 },
96 { 1.0000000000000000, 0, 1,
97 90.000000000000000 },
98 { 1.0000000000000000, 0, 1,
99 100.00000000000000 },
101 const double toler002 = 2.5000000000000020e-13;
103 // Test data for n=0, m=2.
104 // max(|f - f_GSL|): 0.0000000000000000
105 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
106 const testcase_assoc_laguerre<double>
107 data003[11] =
109 { 1.0000000000000000, 0, 2,
110 0.0000000000000000 },
111 { 1.0000000000000000, 0, 2,
112 10.000000000000000 },
113 { 1.0000000000000000, 0, 2,
114 20.000000000000000 },
115 { 1.0000000000000000, 0, 2,
116 30.000000000000000 },
117 { 1.0000000000000000, 0, 2,
118 40.000000000000000 },
119 { 1.0000000000000000, 0, 2,
120 50.000000000000000 },
121 { 1.0000000000000000, 0, 2,
122 60.000000000000000 },
123 { 1.0000000000000000, 0, 2,
124 70.000000000000000 },
125 { 1.0000000000000000, 0, 2,
126 80.000000000000000 },
127 { 1.0000000000000000, 0, 2,
128 90.000000000000000 },
129 { 1.0000000000000000, 0, 2,
130 100.00000000000000 },
132 const double toler003 = 2.5000000000000020e-13;
134 // Test data for n=0, m=5.
135 // max(|f - f_GSL|): 0.0000000000000000
136 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
137 const testcase_assoc_laguerre<double>
138 data004[11] =
140 { 1.0000000000000000, 0, 5,
141 0.0000000000000000 },
142 { 1.0000000000000000, 0, 5,
143 10.000000000000000 },
144 { 1.0000000000000000, 0, 5,
145 20.000000000000000 },
146 { 1.0000000000000000, 0, 5,
147 30.000000000000000 },
148 { 1.0000000000000000, 0, 5,
149 40.000000000000000 },
150 { 1.0000000000000000, 0, 5,
151 50.000000000000000 },
152 { 1.0000000000000000, 0, 5,
153 60.000000000000000 },
154 { 1.0000000000000000, 0, 5,
155 70.000000000000000 },
156 { 1.0000000000000000, 0, 5,
157 80.000000000000000 },
158 { 1.0000000000000000, 0, 5,
159 90.000000000000000 },
160 { 1.0000000000000000, 0, 5,
161 100.00000000000000 },
163 const double toler004 = 2.5000000000000020e-13;
165 // Test data for n=0, m=10.
166 // max(|f - f_GSL|): 0.0000000000000000
167 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
168 const testcase_assoc_laguerre<double>
169 data005[11] =
171 { 1.0000000000000000, 0, 10,
172 0.0000000000000000 },
173 { 1.0000000000000000, 0, 10,
174 10.000000000000000 },
175 { 1.0000000000000000, 0, 10,
176 20.000000000000000 },
177 { 1.0000000000000000, 0, 10,
178 30.000000000000000 },
179 { 1.0000000000000000, 0, 10,
180 40.000000000000000 },
181 { 1.0000000000000000, 0, 10,
182 50.000000000000000 },
183 { 1.0000000000000000, 0, 10,
184 60.000000000000000 },
185 { 1.0000000000000000, 0, 10,
186 70.000000000000000 },
187 { 1.0000000000000000, 0, 10,
188 80.000000000000000 },
189 { 1.0000000000000000, 0, 10,
190 90.000000000000000 },
191 { 1.0000000000000000, 0, 10,
192 100.00000000000000 },
194 const double toler005 = 2.5000000000000020e-13;
196 // Test data for n=0, m=20.
197 // max(|f - f_GSL|): 0.0000000000000000
198 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
199 const testcase_assoc_laguerre<double>
200 data006[11] =
202 { 1.0000000000000000, 0, 20,
203 0.0000000000000000 },
204 { 1.0000000000000000, 0, 20,
205 10.000000000000000 },
206 { 1.0000000000000000, 0, 20,
207 20.000000000000000 },
208 { 1.0000000000000000, 0, 20,
209 30.000000000000000 },
210 { 1.0000000000000000, 0, 20,
211 40.000000000000000 },
212 { 1.0000000000000000, 0, 20,
213 50.000000000000000 },
214 { 1.0000000000000000, 0, 20,
215 60.000000000000000 },
216 { 1.0000000000000000, 0, 20,
217 70.000000000000000 },
218 { 1.0000000000000000, 0, 20,
219 80.000000000000000 },
220 { 1.0000000000000000, 0, 20,
221 90.000000000000000 },
222 { 1.0000000000000000, 0, 20,
223 100.00000000000000 },
225 const double toler006 = 2.5000000000000020e-13;
227 // Test data for n=0, m=50.
228 // max(|f - f_GSL|): 0.0000000000000000
229 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
230 const testcase_assoc_laguerre<double>
231 data007[11] =
233 { 1.0000000000000000, 0, 50,
234 0.0000000000000000 },
235 { 1.0000000000000000, 0, 50,
236 10.000000000000000 },
237 { 1.0000000000000000, 0, 50,
238 20.000000000000000 },
239 { 1.0000000000000000, 0, 50,
240 30.000000000000000 },
241 { 1.0000000000000000, 0, 50,
242 40.000000000000000 },
243 { 1.0000000000000000, 0, 50,
244 50.000000000000000 },
245 { 1.0000000000000000, 0, 50,
246 60.000000000000000 },
247 { 1.0000000000000000, 0, 50,
248 70.000000000000000 },
249 { 1.0000000000000000, 0, 50,
250 80.000000000000000 },
251 { 1.0000000000000000, 0, 50,
252 90.000000000000000 },
253 { 1.0000000000000000, 0, 50,
254 100.00000000000000 },
256 const double toler007 = 2.5000000000000020e-13;
258 // Test data for n=0, m=100.
259 // max(|f - f_GSL|): 0.0000000000000000
260 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
261 const testcase_assoc_laguerre<double>
262 data008[11] =
264 { 1.0000000000000000, 0, 100,
265 0.0000000000000000 },
266 { 1.0000000000000000, 0, 100,
267 10.000000000000000 },
268 { 1.0000000000000000, 0, 100,
269 20.000000000000000 },
270 { 1.0000000000000000, 0, 100,
271 30.000000000000000 },
272 { 1.0000000000000000, 0, 100,
273 40.000000000000000 },
274 { 1.0000000000000000, 0, 100,
275 50.000000000000000 },
276 { 1.0000000000000000, 0, 100,
277 60.000000000000000 },
278 { 1.0000000000000000, 0, 100,
279 70.000000000000000 },
280 { 1.0000000000000000, 0, 100,
281 80.000000000000000 },
282 { 1.0000000000000000, 0, 100,
283 90.000000000000000 },
284 { 1.0000000000000000, 0, 100,
285 100.00000000000000 },
287 const double toler008 = 2.5000000000000020e-13;
289 // Test data for n=1, m=0.
290 // max(|f - f_GSL|): 0.0000000000000000
291 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
292 const testcase_assoc_laguerre<double>
293 data009[11] =
295 { 1.0000000000000000, 1, 0,
296 0.0000000000000000 },
297 { -9.0000000000000000, 1, 0,
298 10.000000000000000 },
299 { -19.000000000000000, 1, 0,
300 20.000000000000000 },
301 { -29.000000000000000, 1, 0,
302 30.000000000000000 },
303 { -39.000000000000000, 1, 0,
304 40.000000000000000 },
305 { -49.000000000000000, 1, 0,
306 50.000000000000000 },
307 { -59.000000000000000, 1, 0,
308 60.000000000000000 },
309 { -69.000000000000000, 1, 0,
310 70.000000000000000 },
311 { -79.000000000000000, 1, 0,
312 80.000000000000000 },
313 { -89.000000000000000, 1, 0,
314 90.000000000000000 },
315 { -99.000000000000000, 1, 0,
316 100.00000000000000 },
318 const double toler009 = 2.5000000000000020e-13;
320 // Test data for n=1, m=1.
321 // max(|f - f_GSL|): 0.0000000000000000
322 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
323 const testcase_assoc_laguerre<double>
324 data010[11] =
326 { 2.0000000000000000, 1, 1,
327 0.0000000000000000 },
328 { -8.0000000000000000, 1, 1,
329 10.000000000000000 },
330 { -18.000000000000000, 1, 1,
331 20.000000000000000 },
332 { -28.000000000000000, 1, 1,
333 30.000000000000000 },
334 { -38.000000000000000, 1, 1,
335 40.000000000000000 },
336 { -48.000000000000000, 1, 1,
337 50.000000000000000 },
338 { -58.000000000000000, 1, 1,
339 60.000000000000000 },
340 { -68.000000000000000, 1, 1,
341 70.000000000000000 },
342 { -78.000000000000000, 1, 1,
343 80.000000000000000 },
344 { -88.000000000000000, 1, 1,
345 90.000000000000000 },
346 { -98.000000000000000, 1, 1,
347 100.00000000000000 },
349 const double toler010 = 2.5000000000000020e-13;
351 // Test data for n=1, m=2.
352 // max(|f - f_GSL|): 0.0000000000000000
353 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
354 const testcase_assoc_laguerre<double>
355 data011[11] =
357 { 3.0000000000000000, 1, 2,
358 0.0000000000000000 },
359 { -7.0000000000000000, 1, 2,
360 10.000000000000000 },
361 { -17.000000000000000, 1, 2,
362 20.000000000000000 },
363 { -27.000000000000000, 1, 2,
364 30.000000000000000 },
365 { -37.000000000000000, 1, 2,
366 40.000000000000000 },
367 { -47.000000000000000, 1, 2,
368 50.000000000000000 },
369 { -57.000000000000000, 1, 2,
370 60.000000000000000 },
371 { -67.000000000000000, 1, 2,
372 70.000000000000000 },
373 { -77.000000000000000, 1, 2,
374 80.000000000000000 },
375 { -87.000000000000000, 1, 2,
376 90.000000000000000 },
377 { -97.000000000000000, 1, 2,
378 100.00000000000000 },
380 const double toler011 = 2.5000000000000020e-13;
382 // Test data for n=1, m=5.
383 // max(|f - f_GSL|): 0.0000000000000000
384 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
385 const testcase_assoc_laguerre<double>
386 data012[11] =
388 { 6.0000000000000000, 1, 5,
389 0.0000000000000000 },
390 { -4.0000000000000000, 1, 5,
391 10.000000000000000 },
392 { -14.000000000000000, 1, 5,
393 20.000000000000000 },
394 { -24.000000000000000, 1, 5,
395 30.000000000000000 },
396 { -34.000000000000000, 1, 5,
397 40.000000000000000 },
398 { -44.000000000000000, 1, 5,
399 50.000000000000000 },
400 { -54.000000000000000, 1, 5,
401 60.000000000000000 },
402 { -64.000000000000000, 1, 5,
403 70.000000000000000 },
404 { -74.000000000000000, 1, 5,
405 80.000000000000000 },
406 { -84.000000000000000, 1, 5,
407 90.000000000000000 },
408 { -94.000000000000000, 1, 5,
409 100.00000000000000 },
411 const double toler012 = 2.5000000000000020e-13;
413 // Test data for n=1, m=10.
414 // max(|f - f_GSL|): 0.0000000000000000
415 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
416 const testcase_assoc_laguerre<double>
417 data013[11] =
419 { 11.000000000000000, 1, 10,
420 0.0000000000000000 },
421 { 1.0000000000000000, 1, 10,
422 10.000000000000000 },
423 { -9.0000000000000000, 1, 10,
424 20.000000000000000 },
425 { -19.000000000000000, 1, 10,
426 30.000000000000000 },
427 { -29.000000000000000, 1, 10,
428 40.000000000000000 },
429 { -39.000000000000000, 1, 10,
430 50.000000000000000 },
431 { -49.000000000000000, 1, 10,
432 60.000000000000000 },
433 { -59.000000000000000, 1, 10,
434 70.000000000000000 },
435 { -69.000000000000000, 1, 10,
436 80.000000000000000 },
437 { -79.000000000000000, 1, 10,
438 90.000000000000000 },
439 { -89.000000000000000, 1, 10,
440 100.00000000000000 },
442 const double toler013 = 2.5000000000000020e-13;
444 // Test data for n=1, m=20.
445 // max(|f - f_GSL|): 0.0000000000000000
446 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
447 const testcase_assoc_laguerre<double>
448 data014[11] =
450 { 21.000000000000000, 1, 20,
451 0.0000000000000000 },
452 { 11.000000000000000, 1, 20,
453 10.000000000000000 },
454 { 1.0000000000000000, 1, 20,
455 20.000000000000000 },
456 { -9.0000000000000000, 1, 20,
457 30.000000000000000 },
458 { -19.000000000000000, 1, 20,
459 40.000000000000000 },
460 { -29.000000000000000, 1, 20,
461 50.000000000000000 },
462 { -39.000000000000000, 1, 20,
463 60.000000000000000 },
464 { -49.000000000000000, 1, 20,
465 70.000000000000000 },
466 { -59.000000000000000, 1, 20,
467 80.000000000000000 },
468 { -69.000000000000000, 1, 20,
469 90.000000000000000 },
470 { -79.000000000000000, 1, 20,
471 100.00000000000000 },
473 const double toler014 = 2.5000000000000020e-13;
475 // Test data for n=1, m=50.
476 // max(|f - f_GSL|): 0.0000000000000000
477 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
478 const testcase_assoc_laguerre<double>
479 data015[11] =
481 { 51.000000000000000, 1, 50,
482 0.0000000000000000 },
483 { 41.000000000000000, 1, 50,
484 10.000000000000000 },
485 { 31.000000000000000, 1, 50,
486 20.000000000000000 },
487 { 21.000000000000000, 1, 50,
488 30.000000000000000 },
489 { 11.000000000000000, 1, 50,
490 40.000000000000000 },
491 { 1.0000000000000000, 1, 50,
492 50.000000000000000 },
493 { -9.0000000000000000, 1, 50,
494 60.000000000000000 },
495 { -19.000000000000000, 1, 50,
496 70.000000000000000 },
497 { -29.000000000000000, 1, 50,
498 80.000000000000000 },
499 { -39.000000000000000, 1, 50,
500 90.000000000000000 },
501 { -49.000000000000000, 1, 50,
502 100.00000000000000 },
504 const double toler015 = 2.5000000000000020e-13;
506 // Test data for n=1, m=100.
507 // max(|f - f_GSL|): 0.0000000000000000
508 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
509 const testcase_assoc_laguerre<double>
510 data016[11] =
512 { 101.00000000000000, 1, 100,
513 0.0000000000000000 },
514 { 91.000000000000000, 1, 100,
515 10.000000000000000 },
516 { 81.000000000000000, 1, 100,
517 20.000000000000000 },
518 { 71.000000000000000, 1, 100,
519 30.000000000000000 },
520 { 61.000000000000000, 1, 100,
521 40.000000000000000 },
522 { 51.000000000000000, 1, 100,
523 50.000000000000000 },
524 { 41.000000000000000, 1, 100,
525 60.000000000000000 },
526 { 31.000000000000000, 1, 100,
527 70.000000000000000 },
528 { 21.000000000000000, 1, 100,
529 80.000000000000000 },
530 { 11.000000000000000, 1, 100,
531 90.000000000000000 },
532 { 1.0000000000000000, 1, 100,
533 100.00000000000000 },
535 const double toler016 = 2.5000000000000020e-13;
537 // Test data for n=2, m=0.
538 // max(|f - f_GSL|): 0.0000000000000000
539 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
540 const testcase_assoc_laguerre<double>
541 data017[11] =
543 { 1.0000000000000000, 2, 0,
544 0.0000000000000000 },
545 { 31.000000000000000, 2, 0,
546 10.000000000000000 },
547 { 161.00000000000000, 2, 0,
548 20.000000000000000 },
549 { 391.00000000000000, 2, 0,
550 30.000000000000000 },
551 { 721.00000000000000, 2, 0,
552 40.000000000000000 },
553 { 1151.0000000000000, 2, 0,
554 50.000000000000000 },
555 { 1681.0000000000000, 2, 0,
556 60.000000000000000 },
557 { 2311.0000000000000, 2, 0,
558 70.000000000000000 },
559 { 3041.0000000000000, 2, 0,
560 80.000000000000000 },
561 { 3871.0000000000000, 2, 0,
562 90.000000000000000 },
563 { 4801.0000000000000, 2, 0,
564 100.00000000000000 },
566 const double toler017 = 2.5000000000000020e-13;
568 // Test data for n=2, m=1.
569 // max(|f - f_GSL|): 0.0000000000000000
570 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
571 const testcase_assoc_laguerre<double>
572 data018[11] =
574 { 3.0000000000000000, 2, 1,
575 0.0000000000000000 },
576 { 23.000000000000000, 2, 1,
577 10.000000000000000 },
578 { 143.00000000000000, 2, 1,
579 20.000000000000000 },
580 { 363.00000000000000, 2, 1,
581 30.000000000000000 },
582 { 683.00000000000000, 2, 1,
583 40.000000000000000 },
584 { 1103.0000000000000, 2, 1,
585 50.000000000000000 },
586 { 1623.0000000000000, 2, 1,
587 60.000000000000000 },
588 { 2243.0000000000000, 2, 1,
589 70.000000000000000 },
590 { 2963.0000000000000, 2, 1,
591 80.000000000000000 },
592 { 3783.0000000000000, 2, 1,
593 90.000000000000000 },
594 { 4703.0000000000000, 2, 1,
595 100.00000000000000 },
597 const double toler018 = 2.5000000000000020e-13;
599 // Test data for n=2, m=2.
600 // max(|f - f_GSL|): 0.0000000000000000
601 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
602 const testcase_assoc_laguerre<double>
603 data019[11] =
605 { 6.0000000000000000, 2, 2,
606 0.0000000000000000 },
607 { 16.000000000000000, 2, 2,
608 10.000000000000000 },
609 { 126.00000000000000, 2, 2,
610 20.000000000000000 },
611 { 336.00000000000000, 2, 2,
612 30.000000000000000 },
613 { 646.00000000000000, 2, 2,
614 40.000000000000000 },
615 { 1056.0000000000000, 2, 2,
616 50.000000000000000 },
617 { 1566.0000000000000, 2, 2,
618 60.000000000000000 },
619 { 2176.0000000000000, 2, 2,
620 70.000000000000000 },
621 { 2886.0000000000000, 2, 2,
622 80.000000000000000 },
623 { 3696.0000000000000, 2, 2,
624 90.000000000000000 },
625 { 4606.0000000000000, 2, 2,
626 100.00000000000000 },
628 const double toler019 = 2.5000000000000020e-13;
630 // Test data for n=2, m=5.
631 // max(|f - f_GSL|): 4.5519144009631418e-15
632 // max(|f - f_GSL| / |f_GSL|): 4.5519144009631623e-15
633 const testcase_assoc_laguerre<double>
634 data020[11] =
636 { 21.000000000000000, 2, 5,
637 0.0000000000000000 },
638 { 0.99999999999999545, 2, 5,
639 10.000000000000000 },
640 { 81.000000000000000, 2, 5,
641 20.000000000000000 },
642 { 261.00000000000000, 2, 5,
643 30.000000000000000 },
644 { 541.00000000000000, 2, 5,
645 40.000000000000000 },
646 { 921.00000000000000, 2, 5,
647 50.000000000000000 },
648 { 1401.0000000000000, 2, 5,
649 60.000000000000000 },
650 { 1981.0000000000000, 2, 5,
651 70.000000000000000 },
652 { 2661.0000000000000, 2, 5,
653 80.000000000000000 },
654 { 3441.0000000000000, 2, 5,
655 90.000000000000000 },
656 { 4321.0000000000000, 2, 5,
657 100.00000000000000 },
659 const double toler020 = 2.5000000000000020e-13;
661 // Test data for n=2, m=10.
662 // max(|f - f_GSL|): 3.5527136788005009e-14
663 // max(|f - f_GSL| / |f_GSL|): 2.4424906541753385e-15
664 const testcase_assoc_laguerre<double>
665 data021[11] =
667 { 66.000000000000000, 2, 10,
668 0.0000000000000000 },
669 { -4.0000000000000098, 2, 10,
670 10.000000000000000 },
671 { 25.999999999999964, 2, 10,
672 20.000000000000000 },
673 { 156.00000000000000, 2, 10,
674 30.000000000000000 },
675 { 386.00000000000000, 2, 10,
676 40.000000000000000 },
677 { 716.00000000000000, 2, 10,
678 50.000000000000000 },
679 { 1146.0000000000000, 2, 10,
680 60.000000000000000 },
681 { 1676.0000000000000, 2, 10,
682 70.000000000000000 },
683 { 2306.0000000000000, 2, 10,
684 80.000000000000000 },
685 { 3036.0000000000000, 2, 10,
686 90.000000000000000 },
687 { 3866.0000000000000, 2, 10,
688 100.00000000000000 },
690 const double toler021 = 2.5000000000000020e-13;
692 // Test data for n=2, m=20.
693 // max(|f - f_GSL|): 5.6843418860808015e-13
694 // max(|f - f_GSL| / |f_GSL|): 5.9211894646674663e-15
695 const testcase_assoc_laguerre<double>
696 data022[11] =
698 { 231.00000000000000, 2, 20,
699 0.0000000000000000 },
700 { 61.000000000000206, 2, 20,
701 10.000000000000000 },
702 { -9.0000000000000053, 2, 20,
703 20.000000000000000 },
704 { 21.000000000000124, 2, 20,
705 30.000000000000000 },
706 { 151.00000000000057, 2, 20,
707 40.000000000000000 },
708 { 381.00000000000000, 2, 20,
709 50.000000000000000 },
710 { 711.00000000000000, 2, 20,
711 60.000000000000000 },
712 { 1141.0000000000000, 2, 20,
713 70.000000000000000 },
714 { 1670.9999999999998, 2, 20,
715 80.000000000000000 },
716 { 2301.0000000000000, 2, 20,
717 90.000000000000000 },
718 { 3031.0000000000000, 2, 20,
719 100.00000000000000 },
721 const double toler022 = 5.0000000000000039e-13;
723 // Test data for n=2, m=50.
724 // max(|f - f_GSL|): 3.6379788070917130e-12
725 // max(|f - f_GSL| / |f_GSL|): 1.9243865760169750e-14
726 const testcase_assoc_laguerre<double>
727 data023[11] =
729 { 1326.0000000000000, 2, 50,
730 0.0000000000000000 },
731 { 855.99999999999693, 2, 50,
732 10.000000000000000 },
733 { 485.99999999999835, 2, 50,
734 20.000000000000000 },
735 { 215.99999999999937, 2, 50,
736 30.000000000000000 },
737 { 45.999999999999829, 2, 50,
738 40.000000000000000 },
739 { -23.999999999999538, 2, 50,
740 50.000000000000000 },
741 { 6.0000000000001057, 2, 50,
742 60.000000000000000 },
743 { 135.99999999999963, 2, 50,
744 70.000000000000000 },
745 { 365.99999999999892, 2, 50,
746 80.000000000000000 },
747 { 695.99999999999784, 2, 50,
748 90.000000000000000 },
749 { 1125.9999999999964, 2, 50,
750 100.00000000000000 },
752 const double toler023 = 1.0000000000000008e-12;
754 // Test data for n=2, m=100.
755 // max(|f - f_GSL|): 6.5483618527650833e-11
756 // max(|f - f_GSL| / |f_GSL|): 1.6416871873157281e-14
757 const testcase_assoc_laguerre<double>
758 data024[11] =
760 { 5151.0000000000000, 2, 100,
761 0.0000000000000000 },
762 { 4181.0000000000655, 2, 100,
763 10.000000000000000 },
764 { 3311.0000000000518, 2, 100,
765 20.000000000000000 },
766 { 2541.0000000000400, 2, 100,
767 30.000000000000000 },
768 { 1871.0000000000291, 2, 100,
769 40.000000000000000 },
770 { 1301.0000000000207, 2, 100,
771 50.000000000000000 },
772 { 831.00000000001364, 2, 100,
773 60.000000000000000 },
774 { 461.00000000000682, 2, 100,
775 70.000000000000000 },
776 { 191.00000000000250, 2, 100,
777 80.000000000000000 },
778 { 21.000000000000046, 2, 100,
779 90.000000000000000 },
780 { -48.999999999999915, 2, 100,
781 100.00000000000000 },
783 const double toler024 = 1.0000000000000008e-12;
785 // Test data for n=5, m=0.
786 // max(|f - f_GSL|): 7.4505805969238281e-09
787 // max(|f - f_GSL| / |f_GSL|): 1.9501553136894460e-16
788 const testcase_assoc_laguerre<double>
789 data025[11] =
791 { 1.0000000000000000, 5, 0,
792 0.0000000000000000 },
793 { 34.333333333333329, 5, 0,
794 10.000000000000000 },
795 { -4765.6666666666670, 5, 0,
796 20.000000000000000 },
797 { -74399.000000000000, 5, 0,
798 30.000000000000000 },
799 { -418865.66666666663, 5, 0,
800 40.000000000000000 },
801 { -1498165.6666666665, 5, 0,
802 50.000000000000000 },
803 { -4122299.0000000000, 5, 0,
804 60.000000000000000 },
805 { -9551265.6666666679, 5, 0,
806 70.000000000000000 },
807 { -19595065.666666664, 5, 0,
808 80.000000000000000 },
809 { -36713699.000000000, 5, 0,
810 90.000000000000000 },
811 { -64117165.666666664, 5, 0,
812 100.00000000000000 },
814 const double toler025 = 2.5000000000000020e-13;
816 // Test data for n=5, m=1.
817 // max(|f - f_GSL|): 3.7252902984619141e-09
818 // max(|f - f_GSL| / |f_GSL|): 3.1347473636475015e-16
819 const testcase_assoc_laguerre<double>
820 data026[11] =
822 { 6.0000000000000000, 5, 1,
823 0.0000000000000000 },
824 { 22.666666666666661, 5, 1,
825 10.000000000000000 },
826 { -2960.6666666666661, 5, 1,
827 20.000000000000000 },
828 { -58944.000000000000, 5, 1,
829 30.000000000000000 },
830 { -357927.33333333326, 5, 1,
831 40.000000000000000 },
832 { -1329910.6666666665, 5, 1,
833 50.000000000000000 },
834 { -3744894.0000000000, 5, 1,
835 60.000000000000000 },
836 { -8812877.3333333321, 5, 1,
837 70.000000000000000 },
838 { -18283860.666666664, 5, 1,
839 80.000000000000000 },
840 { -34547844.000000000, 5, 1,
841 90.000000000000000 },
842 { -60734827.333333336, 5, 1,
843 100.00000000000000 },
845 const double toler026 = 2.5000000000000020e-13;
847 // Test data for n=5, m=2.
848 // max(|f - f_GSL|): 0.0000000000000000
849 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
850 const testcase_assoc_laguerre<double>
851 data027[11] =
853 { 21.000000000000000, 5, 2,
854 0.0000000000000000 },
855 { 4.3333333333333339, 5, 2,
856 10.000000000000000 },
857 { -1679.0000000000000, 5, 2,
858 20.000000000000000 },
859 { -46029.000000000000, 5, 2,
860 30.000000000000000 },
861 { -304045.66666666669, 5, 2,
862 40.000000000000000 },
863 { -1176729.0000000002, 5, 2,
864 50.000000000000000 },
865 { -3395079.0000000000, 5, 2,
866 60.000000000000000 },
867 { -8120095.6666666660, 5, 2,
868 70.000000000000000 },
869 { -17042778.999999996, 5, 2,
870 80.000000000000000 },
871 { -32484129.000000000, 5, 2,
872 90.000000000000000 },
873 { -57495145.666666664, 5, 2,
874 100.00000000000000 },
876 const double toler027 = 2.5000000000000020e-13;
878 // Test data for n=5, m=5.
879 // max(|f - f_GSL|): 7.4505805969238281e-09
880 // max(|f - f_GSL| / |f_GSL|): 1.7763568394002536e-15
881 const testcase_assoc_laguerre<double>
882 data028[11] =
884 { 252.00000000000000, 5, 5,
885 0.0000000000000000 },
886 { -14.666666666666654, 5, 5,
887 10.000000000000000 },
888 { 51.999999999999908, 5, 5,
889 20.000000000000000 },
890 { -19548.000000000000, 5, 5,
891 30.000000000000000 },
892 { -178814.66666666660, 5, 5,
893 40.000000000000000 },
894 { -797747.99999999977, 5, 5,
895 50.000000000000000 },
896 { -2496348.0000000000, 5, 5,
897 60.000000000000000 },
898 { -6294614.6666666660, 5, 5,
899 70.000000000000000 },
900 { -13712547.999999996, 5, 5,
901 80.000000000000000 },
902 { -26870147.999999993, 5, 5,
903 90.000000000000000 },
904 { -48587414.666666672, 5, 5,
905 100.00000000000000 },
907 const double toler028 = 2.5000000000000020e-13;
909 // Test data for n=5, m=10.
910 // max(|f - f_GSL|): 7.4505805969238281e-09
911 // max(|f - f_GSL| / |f_GSL|): 1.9556222085140405e-15
912 const testcase_assoc_laguerre<double>
913 data029[11] =
915 { 3003.0000000000000, 5, 10,
916 0.0000000000000000 },
917 { 19.666666666666668, 5, 10,
918 10.000000000000000 },
919 { 36.333333333333272, 5, 10,
920 20.000000000000000 },
921 { -1947.0000000000000, 5, 10,
922 30.000000000000000 },
923 { -60930.333333333314, 5, 10,
924 40.000000000000000 },
925 { -381913.66666666651, 5, 10,
926 50.000000000000000 },
927 { -1419897.0000000000, 5, 10,
928 60.000000000000000 },
929 { -3979880.3333333330, 5, 10,
930 70.000000000000000 },
931 { -9316863.6666666642, 5, 10,
932 80.000000000000000 },
933 { -19235847.000000000, 5, 10,
934 90.000000000000000 },
935 { -36191830.333333328, 5, 10,
936 100.00000000000000 },
938 const double toler029 = 2.5000000000000020e-13;
940 // Test data for n=5, m=20.
941 // max(|f - f_GSL|): 1.8626451492309570e-09
942 // max(|f - f_GSL| / |f_GSL|): 2.8421709430404088e-15
943 const testcase_assoc_laguerre<double>
944 data030[11] =
946 { 53130.000000000000, 5, 20,
947 0.0000000000000000 },
948 { 1213.3333333333335, 5, 20,
949 10.000000000000000 },
950 { 129.99999999999963, 5, 20,
951 20.000000000000000 },
952 { -119.99999999999974, 5, 20,
953 30.000000000000000 },
954 { 463.33333333333320, 5, 20,
955 40.000000000000000 },
956 { -48120.000000000015, 5, 20,
957 50.000000000000000 },
958 { -345870.00000000017, 5, 20,
959 60.000000000000000 },
960 { -1342786.6666666667, 5, 20,
961 70.000000000000000 },
962 { -3838870.0000000009, 5, 20,
963 80.000000000000000 },
964 { -9084120.0000000000, 5, 20,
965 90.000000000000000 },
966 { -18878536.666666668, 5, 20,
967 100.00000000000000 },
969 const double toler030 = 2.5000000000000020e-13;
971 // Test data for n=5, m=50.
972 // max(|f - f_GSL|): 5.8207660913467407e-11
973 // max(|f - f_GSL| / |f_GSL|): 8.3212917817998576e-15
974 const testcase_assoc_laguerre<double>
975 data031[11] =
977 { 3478761.0000000000, 5, 50,
978 0.0000000000000000 },
979 { 1154544.3333333335, 5, 50,
980 10.000000000000000 },
981 { 264661.00000000006, 5, 50,
982 20.000000000000000 },
983 { 24111.000000000033, 5, 50,
984 30.000000000000000 },
985 { -2105.6666666666665, 5, 50,
986 40.000000000000000 },
987 { 1010.9999999999916, 5, 50,
988 50.000000000000000 },
989 { -1538.9999999999955, 5, 50,
990 60.000000000000000 },
991 { 5244.3333333333449, 5, 50,
992 70.000000000000000 },
993 { -13639.000000000011, 5, 50,
994 80.000000000000000 },
995 { -243189.00000000006, 5, 50,
996 90.000000000000000 },
997 { -1118405.6666666667, 5, 50,
998 100.00000000000000 },
1000 const double toler031 = 5.0000000000000039e-13;
1002 // Test data for n=5, m=100.
1003 // max(|f - f_GSL|): 1.4901161193847656e-08
1004 // max(|f - f_GSL| / |f_GSL|): 4.3934583843896481e-16
1005 const testcase_assoc_laguerre<double>
1006 data032[11] =
1008 { 96560646.000000000, 5, 100,
1009 0.0000000000000000 },
1010 { 57264262.666666649, 5, 100,
1011 10.000000000000000 },
1012 { 31841379.333333332, 5, 100,
1013 20.000000000000000 },
1014 { 16281996.000000000, 5, 100,
1015 30.000000000000000 },
1016 { 7426112.6666666670, 5, 100,
1017 40.000000000000000 },
1018 { 2863729.3333333330, 5, 100,
1019 50.000000000000000 },
1020 { 834846.00000000000, 5, 100,
1021 60.000000000000000 },
1022 { 129462.66666666663, 5, 100,
1023 70.000000000000000 },
1024 { -12420.666666666668, 5, 100,
1025 80.000000000000000 },
1026 { -804.00000000000000, 5, 100,
1027 90.000000000000000 },
1028 { 4312.6666666666670, 5, 100,
1029 100.00000000000000 },
1031 const double toler032 = 2.5000000000000020e-13;
1033 // Test data for n=10, m=0.
1034 // max(|f - f_GSL|): 6.1035156250000000e-05
1035 // max(|f - f_GSL| / |f_GSL|): 6.1315986390500118e-15
1036 const testcase_assoc_laguerre<double>
1037 data033[11] =
1039 { 1.0000000000000000, 10, 0,
1040 0.0000000000000000 },
1041 { 27.984126984126977, 10, 0,
1042 10.000000000000000 },
1043 { 3227.8077601410932, 10, 0,
1044 20.000000000000000 },
1045 { 15129.571428571455, 10, 0,
1046 30.000000000000000 },
1047 { 79724066.608465582, 10, 0,
1048 40.000000000000000 },
1049 { 2037190065.3738980, 10, 0,
1050 50.000000000000000 },
1051 { 21804200401.000000, 10, 0,
1052 60.000000000000000 },
1053 { 144688291819.51855, 10, 0,
1054 70.000000000000000 },
1055 { 703324772760.08276, 10, 0,
1056 80.000000000000000 },
1057 { 2741055412243.8569, 10, 0,
1058 90.000000000000000 },
1059 { 9051283795429.5723, 10, 0,
1060 100.00000000000000 },
1062 const double toler033 = 5.0000000000000039e-13;
1064 // Test data for n=10, m=1.
1065 // max(|f - f_GSL|): 0.0019531250000000000
1066 // max(|f - f_GSL| / |f_GSL|): 3.2082933888884751e-16
1067 const testcase_assoc_laguerre<double>
1068 data034[11] =
1070 { 11.000000000000000, 10, 1,
1071 0.0000000000000000 },
1072 { 14.791887125220455, 10, 1,
1073 10.000000000000000 },
1074 { 2704.6507936507933, 10, 1,
1075 20.000000000000000 },
1076 { -182924.71428571423, 10, 1,
1077 30.000000000000000 },
1078 { 48066036.749559075, 10, 1,
1079 40.000000000000000 },
1080 { 1486264192.2169311, 10, 1,
1081 50.000000000000000 },
1082 { 17239562282.428574, 10, 1,
1083 60.000000000000000 },
1084 { 119837491630.13579, 10, 1,
1085 70.000000000000000 },
1086 { 600681375251.21167, 10, 1,
1087 80.000000000000000 },
1088 { 2392908405632.4287, 10, 1,
1089 90.000000000000000 },
1090 { 8033035722509.2373, 10, 1,
1091 100.00000000000000 },
1093 const double toler034 = 2.5000000000000020e-13;
1095 // Test data for n=10, m=2.
1096 // max(|f - f_GSL|): 0.00012207031250000000
1097 // max(|f - f_GSL| / |f_GSL|): 3.0884259455918855e-16
1098 const testcase_assoc_laguerre<double>
1099 data035[11] =
1101 { 66.000000000000000, 10, 2,
1102 0.0000000000000000 },
1103 { -14.511463844797181, 10, 2,
1104 10.000000000000000 },
1105 { 1064.5890652557316, 10, 2,
1106 20.000000000000000 },
1107 { -194569.71428571429, 10, 2,
1108 30.000000000000000 },
1109 { 27343569.350970022, 10, 2,
1110 40.000000000000000 },
1111 { 1067807661.6790125, 10, 2,
1112 50.000000000000000 },
1113 { 13529451580.285711, 10, 2,
1114 60.000000000000000 },
1115 { 98812724224.641937, 10, 2,
1116 70.000000000000000 },
1117 { 511482736187.34021, 10, 2,
1118 80.000000000000000 },
1119 { 2084478393087.4285, 10, 2,
1120 90.000000000000000 },
1121 { 7117724862237.0752, 10, 2,
1122 100.00000000000000 },
1124 const double toler035 = 2.5000000000000020e-13;
1126 // Test data for n=10, m=5.
1127 // max(|f - f_GSL|): 0.0019531250000000000
1128 // max(|f - f_GSL| / |f_GSL|): 5.4929549774030811e-15
1129 const testcase_assoc_laguerre<double>
1130 data036[11] =
1132 { 3003.0000000000000, 10, 5,
1133 0.0000000000000000 },
1134 { 11.641975308642031, 10, 5,
1135 10.000000000000000 },
1136 { -1137.5643738977069, 10, 5,
1137 20.000000000000000 },
1138 { -9254.1428571428605, 10, 5,
1139 30.000000000000000 },
1140 { 2121878.8377425023, 10, 5,
1141 40.000000000000000 },
1142 { 352060171.43033499, 10, 5,
1143 50.000000000000000 },
1144 { 6212028560.1428576, 10, 5,
1145 60.000000000000000 },
1146 { 53782171674.604919, 10, 5,
1147 70.000000000000000 },
1148 { 309720255837.56775, 10, 5,
1149 80.000000000000000 },
1150 { 1359043035731.5713, 10, 5,
1151 90.000000000000000 },
1152 { 4900625954398.9434, 10, 5,
1153 100.00000000000000 },
1155 const double toler036 = 5.0000000000000039e-13;
1157 // Test data for n=10, m=10.
1158 // max(|f - f_GSL|): 0.00048828125000000000
1159 // max(|f - f_GSL| / |f_GSL|): 1.2999856205575476e-15
1160 const testcase_assoc_laguerre<double>
1161 data037[11] =
1163 { 184756.00000000000, 10, 10,
1164 0.0000000000000000 },
1165 { -210.84303350970018, 10, 10,
1166 10.000000000000000 },
1167 { 508.38095238095184, 10, 10,
1168 20.000000000000000 },
1169 { 2098.8571428571431, 10, 10,
1170 30.000000000000000 },
1171 { -536338.88536155177, 10, 10,
1172 40.000000000000000 },
1173 { 24865988.804232784, 10, 10,
1174 50.000000000000000 },
1175 { 1343756013.1428571, 10, 10,
1176 60.000000000000000 },
1177 { 17298791247.358025, 10, 10,
1178 70.000000000000000 },
1179 { 124528450897.79892, 10, 10,
1180 80.000000000000000 },
1181 { 632674413641.71423, 10, 10,
1182 90.000000000000000 },
1183 { 2533008935405.0298, 10, 10,
1184 100.00000000000000 },
1186 const double toler037 = 2.5000000000000020e-13;
1188 // Test data for n=10, m=20.
1189 // max(|f - f_GSL|): 1.1444091796875000e-05
1190 // max(|f - f_GSL| / |f_GSL|): 1.3165826881543491e-14
1191 const testcase_assoc_laguerre<double>
1192 data038[11] =
1194 { 30045014.999999993, 10, 20,
1195 0.0000000000000000 },
1196 { -23087.733686067022, 10, 20,
1197 10.000000000000000 },
1198 { 207.23985890652330, 10, 20,
1199 20.000000000000000 },
1200 { 1407.8571428571508, 10, 20,
1201 30.000000000000000 },
1202 { -44618.156966490322, 10, 20,
1203 40.000000000000000 },
1204 { 158690.04409171100, 10, 20,
1205 50.000000000000000 },
1206 { -6870413.5714285728, 10, 20,
1207 60.000000000000000 },
1208 { 793841351.41975331, 10, 20,
1209 70.000000000000000 },
1210 { 13358288958.562618, 10, 20,
1211 80.000000000000000 },
1212 { 106073722407.85715, 10, 20,
1213 90.000000000000000 },
1214 { 566337213392.42493, 10, 20,
1215 100.00000000000000 },
1217 const double toler038 = 1.0000000000000008e-12;
1219 // Test data for n=10, m=50.
1220 // max(|f - f_GSL|): 1.7881393432617188e-07
1221 // max(|f - f_GSL| / |f_GSL|): 1.9220038158581863e-14
1222 const testcase_assoc_laguerre<double>
1223 data039[11] =
1225 { 75394027566.000000, 10, 50,
1226 0.0000000000000000 },
1227 { 8048106183.3721361, 10, 50,
1228 10.000000000000000 },
1229 { 328045023.84832460, 10, 50,
1230 20.000000000000000 },
1231 { -2568769.7142857178, 10, 50,
1232 30.000000000000000 },
1233 { 6971.9964726631533, 10, 50,
1234 40.000000000000000 },
1235 { 136111.41446207993, 10, 50,
1236 50.000000000000000 },
1237 { -62462.571428570242, 10, 50,
1238 60.000000000000000 },
1239 { -248167.95061728527, 10, 50,
1240 70.000000000000000 },
1241 { 1941270.4091710770, 10, 50,
1242 80.000000000000000 },
1243 { -8643512.5714285765, 10, 50,
1244 90.000000000000000 },
1245 { -140863522.18342152, 10, 50,
1246 100.00000000000000 },
1248 const double toler039 = 1.0000000000000008e-12;
1250 // Test data for n=10, m=100.
1251 // max(|f - f_GSL|): 0.0019531250000000000
1252 // max(|f - f_GSL| / |f_GSL|): 8.5796208358610616e-15
1253 const testcase_assoc_laguerre<double>
1254 data040[11] =
1256 { 46897636623981.000, 10, 100,
1257 0.0000000000000000 },
1258 { 16444031323272.084, 10, 100,
1259 10.000000000000000 },
1260 { 5020343986463.5391, 10, 100,
1261 20.000000000000000 },
1262 { 1270977490645.2859, 10, 100,
1263 30.000000000000000 },
1264 { 244835756822.62262, 10, 100,
1265 40.000000000000000 },
1266 { 29786827693.962959, 10, 100,
1267 50.000000000000000 },
1268 { 1127612095.2857144, 10, 100,
1269 60.000000000000000 },
1270 { -66370555.419753075, 10, 100,
1271 70.000000000000000 },
1272 { 10420852.957671870, 10, 100,
1273 80.000000000000000 },
1274 { -3373097.5714285718, 10, 100,
1275 90.000000000000000 },
1276 { 2065423.6807760145, 10, 100,
1277 100.00000000000000 },
1279 const double toler040 = 5.0000000000000039e-13;
1281 // Test data for n=20, m=0.
1282 // max(|f - f_GSL|): 20.000000000000000
1283 // max(|f - f_GSL| / |f_GSL|): 4.7350442720305269e-15
1284 const testcase_assoc_laguerre<double>
1285 data041[11] =
1287 { 1.0000000000000000, 20, 0,
1288 0.0000000000000000 },
1289 { -11.961333867812119, 20, 0,
1290 10.000000000000000 },
1291 { 2829.4728613531743, 20, 0,
1292 20.000000000000000 },
1293 { -18439.424502520938, 20, 0,
1294 30.000000000000000 },
1295 { 24799805.877530713, 20, 0,
1296 40.000000000000000 },
1297 { 7551960453.7672548, 20, 0,
1298 50.000000000000000 },
1299 { -1379223608444.9155, 20, 0,
1300 60.000000000000000 },
1301 { 165423821874449.94, 20, 0,
1302 70.000000000000000 },
1303 { 29500368536981676., 20, 0,
1304 80.000000000000000 },
1305 { 1.1292309514432901e+18, 20, 0,
1306 90.000000000000000 },
1307 { 2.2061882785931735e+19, 20, 0,
1308 100.00000000000000 },
1310 const double toler041 = 2.5000000000000020e-13;
1312 // Test data for n=20, m=1.
1313 // max(|f - f_GSL|): 8192.0000000000000
1314 // max(|f - f_GSL| / |f_GSL|): 2.0583579235866667e-15
1315 const testcase_assoc_laguerre<double>
1316 data042[11] =
1318 { 21.000000000000000, 20, 1,
1319 0.0000000000000000 },
1320 { 19.900488129734079, 20, 1,
1321 10.000000000000000 },
1322 { 2208.0318569557585, 20, 1,
1323 20.000000000000000 },
1324 { 263690.96303121914, 20, 1,
1325 30.000000000000000 },
1326 { 40667285.630564235, 20, 1,
1327 40.000000000000000 },
1328 { 1737442572.8115399, 20, 1,
1329 50.000000000000000 },
1330 { -588280953643.28125, 20, 1,
1331 60.000000000000000 },
1332 { 45617733778241.328, 20, 1,
1333 70.000000000000000 },
1334 { 17293487114876864., 20, 1,
1335 80.000000000000000 },
1336 { 7.6219135858585062e+17, 20, 1,
1337 90.000000000000000 },
1338 { 1.6037288204336759e+19, 20, 1,
1339 100.00000000000000 },
1341 const double toler042 = 2.5000000000000020e-13;
1343 // Test data for n=20, m=2.
1344 // max(|f - f_GSL|): 6144.0000000000000
1345 // max(|f - f_GSL| / |f_GSL|): 9.3068805041852228e-15
1346 const testcase_assoc_laguerre<double>
1347 data043[11] =
1349 { 231.00000000000003, 20, 2,
1350 0.0000000000000000 },
1351 { 47.009338065112921, 20, 2,
1352 10.000000000000000 },
1353 { -652.51305461728589, 20, 2,
1354 20.000000000000000 },
1355 { 285388.25895069109, 20, 2,
1356 30.000000000000000 },
1357 { 28664069.685624730, 20, 2,
1358 40.000000000000000 },
1359 { -1399631966.3144732, 20, 2,
1360 50.000000000000000 },
1361 { -115357373248.28194, 20, 2,
1362 60.000000000000000 },
1363 { -3357730872975.8750, 20, 2,
1364 70.000000000000000 },
1365 { 9765808962855122.0, 20, 2,
1366 80.000000000000000 },
1367 { 5.0717292945559181e+17, 20, 2,
1368 90.000000000000000 },
1369 { 1.1564665701334456e+19, 20, 2,
1370 100.00000000000000 },
1372 const double toler043 = 5.0000000000000039e-13;
1374 // Test data for n=20, m=5.
1375 // max(|f - f_GSL|): 16.000000000000000
1376 // max(|f - f_GSL| / |f_GSL|): 3.5731302592472765e-15
1377 const testcase_assoc_laguerre<double>
1378 data044[11] =
1380 { 53130.000000000000, 20, 5,
1381 0.0000000000000000 },
1382 { -158.69554500944142, 20, 5,
1383 10.000000000000000 },
1384 { 334.08012288038952, 20, 5,
1385 20.000000000000000 },
1386 { -198372.47662554163, 20, 5,
1387 30.000000000000000 },
1388 { -13627144.088579426, 20, 5,
1389 40.000000000000000 },
1390 { -780579985.44731510, 20, 5,
1391 50.000000000000000 },
1392 { 116648634237.73535, 20, 5,
1393 60.000000000000000 },
1394 { -12347348707739.742, 20, 5,
1395 70.000000000000000 },
1396 { 1199516248034090.8, 20, 5,
1397 80.000000000000000 },
1398 { 1.3451503195078531e+17, 20, 5,
1399 90.000000000000000 },
1400 { 4.1058904276111483e+18, 20, 5,
1401 100.00000000000000 },
1403 const double toler044 = 2.5000000000000020e-13;
1405 // Test data for n=20, m=10.
1406 // max(|f - f_GSL|): 64.000000000000000
1407 // max(|f - f_GSL| / |f_GSL|): 1.0709209504860220e-15
1408 const testcase_assoc_laguerre<double>
1409 data045[11] =
1411 { 30045015.000000000, 20, 10,
1412 0.0000000000000000 },
1413 { -1755.6226861258601, 20, 10,
1414 10.000000000000000 },
1415 { -9081.6726644737901, 20, 10,
1416 20.000000000000000 },
1417 { 95771.650912113109, 20, 10,
1418 30.000000000000000 },
1419 { 5089151.9272779236, 20, 10,
1420 40.000000000000000 },
1421 { 97400399.450206712, 20, 10,
1422 50.000000000000000 },
1423 { -16009352450.477026, 20, 10,
1424 60.000000000000000 },
1425 { 842271286905.01050, 20, 10,
1426 70.000000000000000 },
1427 { -79901725466796.938, 20, 10,
1428 80.000000000000000 },
1429 { 7944103675858637.0, 20, 10,
1430 90.000000000000000 },
1431 { 5.7429821893388288e+17, 20, 10,
1432 100.00000000000000 },
1434 const double toler045 = 2.5000000000000020e-13;
1436 // Test data for n=20, m=20.
1437 // max(|f - f_GSL|): 2.1250000000000000
1438 // max(|f - f_GSL| / |f_GSL|): 1.1968937782285294e-14
1439 const testcase_assoc_laguerre<double>
1440 data046[11] =
1442 { 137846528819.99994, 20, 20,
1443 0.0000000000000000 },
1444 { -136976.49571333229, 20, 20,
1445 10.000000000000000 },
1446 { 113878.49908041643, 20, 20,
1447 20.000000000000000 },
1448 { -342529.21778796182, 20, 20,
1449 30.000000000000000 },
1450 { -350112.66981443466, 20, 20,
1451 40.000000000000000 },
1452 { -10791735.172977809, 20, 20,
1453 50.000000000000000 },
1454 { -1038073940.0811402, 20, 20,
1455 60.000000000000000 },
1456 { 667312550.63616335, 20, 20,
1457 70.000000000000000 },
1458 { 741537869902.29028, 20, 20,
1459 80.000000000000000 },
1460 { -32378376755737.418, 20, 20,
1461 90.000000000000000 },
1462 { -601760332167937.62, 20, 20,
1463 100.00000000000000 },
1465 const double toler046 = 1.0000000000000008e-12;
1467 // Test data for n=20, m=50.
1468 // max(|f - f_GSL|): 0.25000000000000000
1469 // max(|f - f_GSL| / |f_GSL|): 1.2103144092558234e-14
1470 const testcase_assoc_laguerre<double>
1471 data047[11] =
1473 { 1.6188460366265789e+17, 20, 50,
1474 0.0000000000000000 },
1475 { 1599011936804291.5, 20, 50,
1476 10.000000000000000 },
1477 { -131273880831.42432, 20, 50,
1478 20.000000000000000 },
1479 { -3133213093.6903548, 20, 50,
1480 30.000000000000000 },
1481 { -213935628.04985175, 20, 50,
1482 40.000000000000000 },
1483 { -47375578.495921060, 20, 50,
1484 50.000000000000000 },
1485 { -115731015.14034876, 20, 50,
1486 60.000000000000000 },
1487 { -737415147.29420292, 20, 50,
1488 70.000000000000000 },
1489 { -2123455626.8621769, 20, 50,
1490 80.000000000000000 },
1491 { 29801266858.608929, 20, 50,
1492 90.000000000000000 },
1493 { -132886631026.82553, 20, 50,
1494 100.00000000000000 },
1496 const double toler047 = 1.0000000000000008e-12;
1498 // Test data for n=20, m=100.
1499 // max(|f - f_GSL|): 1572864.0000000000
1500 // max(|f - f_GSL| / |f_GSL|): 3.6621229371267356e-14
1501 const testcase_assoc_laguerre<double>
1502 data048[11] =
1504 { 2.9462227291176643e+22, 20, 100,
1505 0.0000000000000000 },
1506 { 3.5777890748701244e+21, 20, 100,
1507 10.000000000000000 },
1508 { 3.1584925521456759e+20, 20, 100,
1509 20.000000000000000 },
1510 { 1.7389599388424864e+19, 20, 100,
1511 30.000000000000000 },
1512 { 4.1401342745980634e+17, 20, 100,
1513 40.000000000000000 },
1514 { -79359706102062.594, 20, 100,
1515 50.000000000000000 },
1516 { 22736203650743.145, 20, 100,
1517 60.000000000000000 },
1518 { 65679006380.095703, 20, 100,
1519 70.000000000000000 },
1520 { -236263257610.77792, 20, 100,
1521 80.000000000000000 },
1522 { -38072644585.303101, 20, 100,
1523 90.000000000000000 },
1524 { 68236474365.173973, 20, 100,
1525 100.00000000000000 },
1527 const double toler048 = 2.5000000000000015e-12;
1529 // Test data for n=50, m=0.
1530 // max(|f - f_GSL|): 196608.00000000000
1531 // max(|f - f_GSL| / |f_GSL|): 4.2910775919271532e-15
1532 const testcase_assoc_laguerre<double>
1533 data049[11] =
1535 { 1.0000000000000000, 50, 0,
1536 0.0000000000000000 },
1537 { 17.534183446338233, 50, 0,
1538 10.000000000000000 },
1539 { 980.26961889791028, 50, 0,
1540 20.000000000000000 },
1541 { 293000.50735962362, 50, 0,
1542 30.000000000000000 },
1543 { -14896937.968694873, 50, 0,
1544 40.000000000000000 },
1545 { 2513677852.6916871, 50, 0,
1546 50.000000000000000 },
1547 { -883876565337.99219, 50, 0,
1548 60.000000000000000 },
1549 { -80967880733583.234, 50, 0,
1550 70.000000000000000 },
1551 { -8217471769564841.0, 50, 0,
1552 80.000000000000000 },
1553 { -2.1140031308048891e+18, 50, 0,
1554 90.000000000000000 },
1555 { -3.9710103487094692e+20, 50, 0,
1556 100.00000000000000 },
1558 const double toler049 = 2.5000000000000020e-13;
1560 // Test data for n=50, m=1.
1561 // max(|f - f_GSL|): 311296.00000000000
1562 // max(|f - f_GSL| / |f_GSL|): 4.3113718426975911e-14
1563 const testcase_assoc_laguerre<double>
1564 data050[11] =
1566 { 51.000000000000021, 50, 1,
1567 0.0000000000000000 },
1568 { 1.4214573271639575, 50, 1,
1569 10.000000000000000 },
1570 { -2574.8072295127827, 50, 1,
1571 20.000000000000000 },
1572 { 35846.479728359205, 50, 1,
1573 30.000000000000000 },
1574 { -48263698.768318526, 50, 1,
1575 40.000000000000000 },
1576 { 6161525870.2738533, 50, 1,
1577 50.000000000000000 },
1578 { -382655486658.47125, 50, 1,
1579 60.000000000000000 },
1580 { -109635579833241.72, 50, 1,
1581 70.000000000000000 },
1582 { -14623805817283490., 50, 1,
1583 80.000000000000000 },
1584 { -2.0666847190878152e+18, 50, 1,
1585 90.000000000000000 },
1586 { -1.4385187953997626e+20, 50, 1,
1587 100.00000000000000 },
1589 const double toler050 = 2.5000000000000015e-12;
1591 // Test data for n=50, m=2.
1592 // max(|f - f_GSL|): 139264.00000000000
1593 // max(|f - f_GSL| / |f_GSL|): 2.5437687254653283e-15
1594 const testcase_assoc_laguerre<double>
1595 data051[11] =
1597 { 1326.0000000000000, 50, 2,
1598 0.0000000000000000 },
1599 { -87.860732516444529, 50, 2,
1600 10.000000000000000 },
1601 { -5203.2351191780917, 50, 2,
1602 20.000000000000000 },
1603 { -461059.50012538867, 50, 2,
1604 30.000000000000000 },
1605 { -30476695.327440590, 50, 2,
1606 40.000000000000000 },
1607 { 3720804977.9338136, 50, 2,
1608 50.000000000000000 },
1609 { 362262002434.51453, 50, 2,
1610 60.000000000000000 },
1611 { -52210917867820.227, 50, 2,
1612 70.000000000000000 },
1613 { -9567965136901914.0, 50, 2,
1614 80.000000000000000 },
1615 { -8.9171277517712883e+17, 50, 2,
1616 90.000000000000000 },
1617 { 5.7231129448806982e+19, 50, 2,
1618 100.00000000000000 },
1620 const double toler051 = 2.5000000000000020e-13;
1622 // Test data for n=50, m=5.
1623 // max(|f - f_GSL|): 81920.000000000000
1624 // max(|f - f_GSL| / |f_GSL|): 2.6215979818234617e-15
1625 const testcase_assoc_laguerre<double>
1626 data052[11] =
1628 { 3478761.0000000000, 50, 5,
1629 0.0000000000000000 },
1630 { 1055.8381917651498, 50, 5,
1631 10.000000000000000 },
1632 { 15264.646660345055, 50, 5,
1633 20.000000000000000 },
1634 { 1229651.8966600848, 50, 5,
1635 30.000000000000000 },
1636 { 39270451.823656842, 50, 5,
1637 40.000000000000000 },
1638 { -4424062601.1152029, 50, 5,
1639 50.000000000000000 },
1640 { -186017434284.19223, 50, 5,
1641 60.000000000000000 },
1642 { 50972853949302.609, 50, 5,
1643 70.000000000000000 },
1644 { 6530702754012517.0, 50, 5,
1645 80.000000000000000 },
1646 { 6.8387592714678029e+17, 50, 5,
1647 90.000000000000000 },
1648 { 3.9198742504338391e+19, 50, 5,
1649 100.00000000000000 },
1651 const double toler052 = 2.5000000000000020e-13;
1653 // Test data for n=50, m=10.
1654 // max(|f - f_GSL|): 192.00000000000000
1655 // max(|f - f_GSL| / |f_GSL|): 3.6229303412867937e-15
1656 const testcase_assoc_laguerre<double>
1657 data053[11] =
1659 { 75394027565.999985, 50, 10,
1660 0.0000000000000000 },
1661 { 91833.924098770178, 50, 10,
1662 10.000000000000000 },
1663 { 330501.87929778261, 50, 10,
1664 20.000000000000000 },
1665 { 3625088.1635972536, 50, 10,
1666 30.000000000000000 },
1667 { 213954727.28632012, 50, 10,
1668 40.000000000000000 },
1669 { -9381006937.7517681, 50, 10,
1670 50.000000000000000 },
1671 { 535333683777.48615, 50, 10,
1672 60.000000000000000 },
1673 { 18824406573722.172, 50, 10,
1674 70.000000000000000 },
1675 { -533858276780013.12, 50, 10,
1676 80.000000000000000 },
1677 { -52995774666704016., 50, 10,
1678 90.000000000000000 },
1679 { 6.0504182862448783e+18, 50, 10,
1680 100.00000000000000 },
1682 const double toler053 = 2.5000000000000020e-13;
1684 // Test data for n=50, m=20.
1685 // max(|f - f_GSL|): 512.00000000000000
1686 // max(|f - f_GSL| / |f_GSL|): 9.6616871455409171e-14
1687 const testcase_assoc_laguerre<double>
1688 data054[11] =
1690 { 1.6188460366265779e+17, 50, 20,
1691 0.0000000000000000 },
1692 { -307637087.25169408, 50, 20,
1693 10.000000000000000 },
1694 { 12524651.102974586, 50, 20,
1695 20.000000000000000 },
1696 { -315460483.86210561, 50, 20,
1697 30.000000000000000 },
1698 { -1889683587.3459988, 50, 20,
1699 40.000000000000000 },
1700 { 37457044404.200348, 50, 20,
1701 50.000000000000000 },
1702 { -843831858224.71802, 50, 20,
1703 60.000000000000000 },
1704 { -92231643172.307495, 50, 20,
1705 70.000000000000000 },
1706 { 904211757769501.00, 50, 20,
1707 80.000000000000000 },
1708 { 46508193600283272., 50, 20,
1709 90.000000000000000 },
1710 { 2.3216887928162719e+18, 50, 20,
1711 100.00000000000000 },
1713 const double toler054 = 5.0000000000000029e-12;
1715 // Test data for n=50, m=50.
1716 // max(|f - f_GSL|): 989855744.00000000
1717 // max(|f - f_GSL| / |f_GSL|): 1.1139535389485780e-14
1718 const testcase_assoc_laguerre<double>
1719 data055[11] =
1721 { 1.0089134454556417e+29, 50, 50,
1722 0.0000000000000000 },
1723 { 1.3822795753070493e+23, 50, 50,
1724 10.000000000000000 },
1725 { 95817260381628336., 50, 50,
1726 20.000000000000000 },
1727 { -910798580856015.38, 50, 50,
1728 30.000000000000000 },
1729 { 50513254049166.922, 50, 50,
1730 40.000000000000000 },
1731 { 84159703903348.938, 50, 50,
1732 50.000000000000000 },
1733 { -138805244691822.72, 50, 50,
1734 60.000000000000000 },
1735 { 181046391269246.25, 50, 50,
1736 70.000000000000000 },
1737 { 2086884905317107.5, 50, 50,
1738 80.000000000000000 },
1739 { -2765620139862428.0, 50, 50,
1740 90.000000000000000 },
1741 { -1.3706751678146290e+17, 50, 50,
1742 100.00000000000000 },
1744 const double toler055 = 1.0000000000000008e-12;
1746 // Test data for n=50, m=100.
1747 // max(|f - f_GSL|): 1.8889465931478581e+22
1748 // max(|f - f_GSL| / |f_GSL|): 2.2737143709403468e-14
1749 const testcase_assoc_laguerre<double>
1750 data056[11] =
1752 { 2.0128660909731929e+40, 50, 100,
1753 0.0000000000000000 },
1754 { 9.3675094807695474e+37, 50, 100,
1755 10.000000000000000 },
1756 { 1.3009321481877196e+35, 50, 100,
1757 20.000000000000000 },
1758 { 7.3720026893233823e+30, 50, 100,
1759 30.000000000000000 },
1760 { -6.0824679079634667e+25, 50, 100,
1761 40.000000000000000 },
1762 { -6.0053188793543450e+23, 50, 100,
1763 50.000000000000000 },
1764 { 1.4178129287264692e+22, 50, 100,
1765 60.000000000000000 },
1766 { -5.4652099341566706e+20, 50, 100,
1767 70.000000000000000 },
1768 { -1.0817271759263274e+20, 50, 100,
1769 80.000000000000000 },
1770 { 3.8058734007924195e+19, 50, 100,
1771 90.000000000000000 },
1772 { 4.7439240848028344e+19, 50, 100,
1773 100.00000000000000 },
1775 const double toler056 = 2.5000000000000015e-12;
1777 // Test data for n=100, m=0.
1778 // max(|f - f_GSL|): 98304.000000000000
1779 // max(|f - f_GSL| / |f_GSL|): 3.8776197831393928e-15
1780 const testcase_assoc_laguerre<double>
1781 data057[11] =
1783 { 1.0000000000000000, 100, 0,
1784 0.0000000000000000 },
1785 { 13.277662844303450, 100, 0,
1786 10.000000000000000 },
1787 { 1854.0367283243388, 100, 0,
1788 20.000000000000000 },
1789 { 170141.86987046551, 100, 0,
1790 30.000000000000000 },
1791 { -7272442.3156006960, 100, 0,
1792 40.000000000000000 },
1793 { 4847420871.2690506, 100, 0,
1794 50.000000000000000 },
1795 { 693492765740.29688, 100, 0,
1796 60.000000000000000 },
1797 { 17125518672239.770, 100, 0,
1798 70.000000000000000 },
1799 { -13763178176383768., 100, 0,
1800 80.000000000000000 },
1801 { 2.1307220490380173e+18, 100, 0,
1802 90.000000000000000 },
1803 { -2.6292260693068916e+20, 100, 0,
1804 100.00000000000000 },
1806 const double toler057 = 2.5000000000000020e-13;
1808 // Test data for n=100, m=1.
1809 // max(|f - f_GSL|): 245760.00000000000
1810 // max(|f - f_GSL| / |f_GSL|): 1.4500034612453474e-14
1811 const testcase_assoc_laguerre<double>
1812 data058[11] =
1814 { 101.00000000000003, 100, 1,
1815 0.0000000000000000 },
1816 { -14.650661983680420, 100, 1,
1817 10.000000000000000 },
1818 { 1626.5010939361582, 100, 1,
1819 20.000000000000000 },
1820 { 417884.77658268728, 100, 1,
1821 30.000000000000000 },
1822 { -55617646.951649837, 100, 1,
1823 40.000000000000000 },
1824 { 884829874.26626217, 100, 1,
1825 50.000000000000000 },
1826 { 154466082750.32202, 100, 1,
1827 60.000000000000000 },
1828 { -101423973484646.00, 100, 1,
1829 70.000000000000000 },
1830 { -1388352348671756.8, 100, 1,
1831 80.000000000000000 },
1832 { 7.8048705513268582e+17, 100, 1,
1833 90.000000000000000 },
1834 { 1.6948925059042755e+19, 100, 1,
1835 100.00000000000000 },
1837 const double toler058 = 1.0000000000000008e-12;
1839 // Test data for n=100, m=2.
1840 // max(|f - f_GSL|): 557056.00000000000
1841 // max(|f - f_GSL| / |f_GSL|): 5.1603746667135714e-15
1842 const testcase_assoc_laguerre<double>
1843 data059[11] =
1845 { 5151.0000000000055, 100, 2,
1846 0.0000000000000000 },
1847 { -150.22012290951324, 100, 2,
1848 10.000000000000000 },
1849 { -7655.0593294049449, 100, 2,
1850 20.000000000000000 },
1851 { -140996.69276179091, 100, 2,
1852 30.000000000000000 },
1853 { -38645171.278549351, 100, 2,
1854 40.000000000000000 },
1855 { -8889263688.2118931, 100, 2,
1856 50.000000000000000 },
1857 { -1010338971533.3400, 100, 2,
1858 60.000000000000000 },
1859 { -127582564332943.91, 100, 2,
1860 70.000000000000000 },
1861 { 15970305694654312., 100, 2,
1862 80.000000000000000 },
1863 { -1.6019844992862820e+18, 100, 2,
1864 90.000000000000000 },
1865 { 2.8267024730962955e+20, 100, 2,
1866 100.00000000000000 },
1868 const double toler059 = 5.0000000000000039e-13;
1870 // Test data for n=100, m=5.
1871 // max(|f - f_GSL|): 393216.00000000000
1872 // max(|f - f_GSL| / |f_GSL|): 8.0946565190235238e-15
1873 const testcase_assoc_laguerre<double>
1874 data060[11] =
1876 { 96560646.000000030, 100, 5,
1877 0.0000000000000000 },
1878 { 2430.6732236677612, 100, 5,
1879 10.000000000000000 },
1880 { 111162.32026994647, 100, 5,
1881 20.000000000000000 },
1882 { 4036708.2599413628, 100, 5,
1883 30.000000000000000 },
1884 { -34055982.664405443, 100, 5,
1885 40.000000000000000 },
1886 { 30110688343.562328, 100, 5,
1887 50.000000000000000 },
1888 { 2651429940558.2974, 100, 5,
1889 60.000000000000000 },
1890 { 192108556058943.09, 100, 5,
1891 70.000000000000000 },
1892 { -25410533973455528., 100, 5,
1893 80.000000000000000 },
1894 { 2.1072955633564431e+18, 100, 5,
1895 90.000000000000000 },
1896 { -2.9434005355877289e+20, 100, 5,
1897 100.00000000000000 },
1899 const double toler060 = 5.0000000000000039e-13;
1901 // Test data for n=100, m=10.
1902 // max(|f - f_GSL|): 155648.00000000000
1903 // max(|f - f_GSL| / |f_GSL|): 5.1685581852917721e-15
1904 const testcase_assoc_laguerre<double>
1905 data061[11] =
1907 { 46897636623981.039, 100, 10,
1908 0.0000000000000000 },
1909 { 529208.11550990329, 100, 10,
1910 10.000000000000000 },
1911 { 7402892.1748803817, 100, 10,
1912 20.000000000000000 },
1913 { 88369632.083243579, 100, 10,
1914 30.000000000000000 },
1915 { 822187797.59096563, 100, 10,
1916 40.000000000000000 },
1917 { 180231446033.06866, 100, 10,
1918 50.000000000000000 },
1919 { 7922942703798.1309, 100, 10,
1920 60.000000000000000 },
1921 { 784424250559042.12, 100, 10,
1922 70.000000000000000 },
1923 { -16325634720239370., 100, 10,
1924 80.000000000000000 },
1925 { -1.0879588307443162e+18, 100, 10,
1926 90.000000000000000 },
1927 { 3.0114394463610642e+19, 100, 10,
1928 100.00000000000000 },
1930 const double toler061 = 5.0000000000000039e-13;
1932 // Test data for n=100, m=20.
1933 // max(|f - f_GSL|): 524288.00000000000
1934 // max(|f - f_GSL| / |f_GSL|): 3.7005989410347388e-14
1935 const testcase_assoc_laguerre<double>
1936 data062[11] =
1938 { 2.9462227291176614e+22, 100, 20,
1939 0.0000000000000000 },
1940 { 313694958939.90405, 100, 20,
1941 10.000000000000000 },
1942 { 45396489338.096191, 100, 20,
1943 20.000000000000000 },
1944 { -7215826758.0081253, 100, 20,
1945 30.000000000000000 },
1946 { 825949194005.88855, 100, 20,
1947 40.000000000000000 },
1948 { -2764742119971.0811, 100, 20,
1949 50.000000000000000 },
1950 { -219802198273516.03, 100, 20,
1951 60.000000000000000 },
1952 { -1699053306145262.0, 100, 20,
1953 70.000000000000000 },
1954 { 3.5495709345023846e+17, 100, 20,
1955 80.000000000000000 },
1956 { -9.6128675110292419e+18, 100, 20,
1957 90.000000000000000 },
1958 { 4.3619868422072212e+20, 100, 20,
1959 100.00000000000000 },
1961 const double toler062 = 2.5000000000000015e-12;
1963 // Test data for n=100, m=50.
1964 // max(|f - f_GSL|): 316659348799488.00
1965 // max(|f - f_GSL| / |f_GSL|): 1.1554040570270351e-14
1966 const testcase_assoc_laguerre<double>
1967 data063[11] =
1969 { 2.0128660909731931e+40, 100, 50,
1970 0.0000000000000000 },
1971 { -4.0151443913473373e+28, 100, 50,
1972 10.000000000000000 },
1973 { 3.2199632594551924e+22, 100, 50,
1974 20.000000000000000 },
1975 { -2.7568702092659756e+20, 100, 50,
1976 30.000000000000000 },
1977 { 7.5553066015421563e+19, 100, 50,
1978 40.000000000000000 },
1979 { -2.7651625252387734e+19, 100, 50,
1980 50.000000000000000 },
1981 { -5.8963680147283804e+19, 100, 50,
1982 60.000000000000000 },
1983 { -1.8082798163033106e+20, 100, 50,
1984 70.000000000000000 },
1985 { -3.9044276986817249e+20, 100, 50,
1986 80.000000000000000 },
1987 { 6.9926310700401904e+21, 100, 50,
1988 90.000000000000000 },
1989 { -5.5727272809923646e+22, 100, 50,
1990 100.00000000000000 },
1992 const double toler063 = 1.0000000000000008e-12;
1994 // Test data for n=100, m=100.
1995 // max(|f - f_GSL|): 2.3819765684465692e+39
1996 // max(|f - f_GSL| / |f_GSL|): 1.9897039067343855e-14
1997 const testcase_assoc_laguerre<double>
1998 data064[11] =
2000 { 9.0548514656103225e+58, 100, 100,
2001 0.0000000000000000 },
2002 { 1.3334078033060556e+54, 100, 100,
2003 10.000000000000000 },
2004 { 2.1002639254211340e+46, 100, 100,
2005 20.000000000000000 },
2006 { -1.1073158068796292e+39, 100, 100,
2007 30.000000000000000 },
2008 { -8.3640937363981346e+35, 100, 100,
2009 40.000000000000000 },
2010 { -6.5879339429312686e+32, 100, 100,
2011 50.000000000000000 },
2012 { -2.4190645077698771e+30, 100, 100,
2013 60.000000000000000 },
2014 { -7.9224960465662171e+29, 100, 100,
2015 70.000000000000000 },
2016 { -2.8605772478408694e+29, 100, 100,
2017 80.000000000000000 },
2018 { 2.4149589189609957e+28, 100, 100,
2019 90.000000000000000 },
2020 { 5.1146476014859021e+28, 100, 100,
2021 100.00000000000000 },
2023 const double toler064 = 1.0000000000000008e-12;
2025 template<typename Tp, unsigned int Num>
2026 void
2027 test(const testcase_assoc_laguerre<Tp> (&data)[Num], Tp toler)
2029 const Tp eps = std::numeric_limits<Tp>::epsilon();
2030 Tp max_abs_diff = -Tp(1);
2031 Tp max_abs_frac = -Tp(1);
2032 unsigned int num_datum = Num;
2033 for (unsigned int i = 0; i < num_datum; ++i)
2035 const Tp f = std::assoc_laguerre(data[i].n, data[i].m,
2036 data[i].x);
2037 const Tp f0 = data[i].f0;
2038 const Tp diff = f - f0;
2039 if (std::abs(diff) > max_abs_diff)
2040 max_abs_diff = std::abs(diff);
2041 if (std::abs(f0) > Tp(10) * eps
2042 && std::abs(f) > Tp(10) * eps)
2044 const Tp frac = diff / f0;
2045 if (std::abs(frac) > max_abs_frac)
2046 max_abs_frac = std::abs(frac);
2049 VERIFY(max_abs_frac < toler);
2053 main()
2055 test(data001, toler001);
2056 test(data002, toler002);
2057 test(data003, toler003);
2058 test(data004, toler004);
2059 test(data005, toler005);
2060 test(data006, toler006);
2061 test(data007, toler007);
2062 test(data008, toler008);
2063 test(data009, toler009);
2064 test(data010, toler010);
2065 test(data011, toler011);
2066 test(data012, toler012);
2067 test(data013, toler013);
2068 test(data014, toler014);
2069 test(data015, toler015);
2070 test(data016, toler016);
2071 test(data017, toler017);
2072 test(data018, toler018);
2073 test(data019, toler019);
2074 test(data020, toler020);
2075 test(data021, toler021);
2076 test(data022, toler022);
2077 test(data023, toler023);
2078 test(data024, toler024);
2079 test(data025, toler025);
2080 test(data026, toler026);
2081 test(data027, toler027);
2082 test(data028, toler028);
2083 test(data029, toler029);
2084 test(data030, toler030);
2085 test(data031, toler031);
2086 test(data032, toler032);
2087 test(data033, toler033);
2088 test(data034, toler034);
2089 test(data035, toler035);
2090 test(data036, toler036);
2091 test(data037, toler037);
2092 test(data038, toler038);
2093 test(data039, toler039);
2094 test(data040, toler040);
2095 test(data041, toler041);
2096 test(data042, toler042);
2097 test(data043, toler043);
2098 test(data044, toler044);
2099 test(data045, toler045);
2100 test(data046, toler046);
2101 test(data047, toler047);
2102 test(data048, toler048);
2103 test(data049, toler049);
2104 test(data050, toler050);
2105 test(data051, toler051);
2106 test(data052, toler052);
2107 test(data053, toler053);
2108 test(data054, toler054);
2109 test(data055, toler055);
2110 test(data056, toler056);
2111 test(data057, toler057);
2112 test(data058, toler058);
2113 test(data059, toler059);
2114 test(data060, toler060);
2115 test(data061, toler061);
2116 test(data062, toler062);
2117 test(data063, toler063);
2118 test(data064, toler064);
2119 return 0;