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