]> git.ipfire.org Git - thirdparty/gcc.git/blob - libstdc++-v3/testsuite/ext/special_functions/conf_hyperg/check_value.cc
Update copyright years.
[thirdparty/gcc.git] / libstdc++-v3 / testsuite / ext / special_functions / conf_hyperg / check_value.cc
1 // { dg-do run { target c++11 } }
2 // { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
3 // { dg-skip-if "no extensions in strict dialects" { *-*-* } { "-std=c++*" } }
4 //
5 // Copyright (C) 2016-2021 Free Software Foundation, Inc.
6 //
7 // This file is part of the GNU ISO C++ Library. This library is free
8 // software; you can redistribute it and/or modify it under the
9 // terms of the GNU General Public License as published by the
10 // Free Software Foundation; either version 3, or (at your option)
11 // any later version.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License along
19 // with this library; see the file COPYING3. If not see
20 // <http://www.gnu.org/licenses/>.
21
22 // conf_hyperg
23 // Compare against values generated by the GNU Scientific Library.
24 // The GSL can be found on the web: http://www.gnu.org/software/gsl/
25 #include <limits>
26 #include <cmath>
27 #if defined(__TEST_DEBUG)
28 # include <iostream>
29 # define VERIFY(A) \
30 if (!(A)) \
31 { \
32 std::cout << "line " << __LINE__ \
33 << " max_abs_frac = " << max_abs_frac \
34 << std::endl; \
35 }
36 #else
37 # include <testsuite_hooks.h>
38 #endif
39 #include <specfun_testcase.h>
40
41 // Test data for a=0.0000000000000000, c=1.0000000000000000.
42 // max(|f - f_GSL|): 0.0000000000000000 at index 0
43 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
44 // mean(f - f_GSL): 0.0000000000000000
45 // variance(f - f_GSL): 0.0000000000000000
46 // stddev(f - f_GSL): 0.0000000000000000
47 const testcase_conf_hyperg<double>
48 data001[21] =
49 {
50 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
51 -10.000000000000000, 0.0 },
52 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
53 -9.0000000000000000, 0.0 },
54 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
55 -8.0000000000000000, 0.0 },
56 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
57 -7.0000000000000000, 0.0 },
58 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
59 -6.0000000000000000, 0.0 },
60 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
61 -5.0000000000000000, 0.0 },
62 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
63 -4.0000000000000000, 0.0 },
64 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
65 -3.0000000000000000, 0.0 },
66 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
67 -2.0000000000000000, 0.0 },
68 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
69 -1.0000000000000000, 0.0 },
70 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
71 0.0000000000000000, 0.0 },
72 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
73 1.0000000000000000, 0.0 },
74 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
75 2.0000000000000000, 0.0 },
76 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
77 3.0000000000000000, 0.0 },
78 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
79 4.0000000000000000, 0.0 },
80 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
81 5.0000000000000000, 0.0 },
82 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
83 6.0000000000000000, 0.0 },
84 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
85 7.0000000000000000, 0.0 },
86 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
87 8.0000000000000000, 0.0 },
88 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
89 9.0000000000000000, 0.0 },
90 { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
91 10.000000000000000, 0.0 },
92 };
93 const double toler001 = 2.5000000000000020e-13;
94
95 // Test data for a=0.0000000000000000, c=2.0000000000000000.
96 // max(|f - f_GSL|): 0.0000000000000000 at index 0
97 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
98 // mean(f - f_GSL): 0.0000000000000000
99 // variance(f - f_GSL): 0.0000000000000000
100 // stddev(f - f_GSL): 0.0000000000000000
101 const testcase_conf_hyperg<double>
102 data002[21] =
103 {
104 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
105 -10.000000000000000, 0.0 },
106 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
107 -9.0000000000000000, 0.0 },
108 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
109 -8.0000000000000000, 0.0 },
110 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
111 -7.0000000000000000, 0.0 },
112 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
113 -6.0000000000000000, 0.0 },
114 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
115 -5.0000000000000000, 0.0 },
116 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
117 -4.0000000000000000, 0.0 },
118 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
119 -3.0000000000000000, 0.0 },
120 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
121 -2.0000000000000000, 0.0 },
122 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
123 -1.0000000000000000, 0.0 },
124 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
125 0.0000000000000000, 0.0 },
126 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
127 1.0000000000000000, 0.0 },
128 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
129 2.0000000000000000, 0.0 },
130 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
131 3.0000000000000000, 0.0 },
132 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
133 4.0000000000000000, 0.0 },
134 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
135 5.0000000000000000, 0.0 },
136 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
137 6.0000000000000000, 0.0 },
138 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
139 7.0000000000000000, 0.0 },
140 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
141 8.0000000000000000, 0.0 },
142 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
143 9.0000000000000000, 0.0 },
144 { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
145 10.000000000000000, 0.0 },
146 };
147 const double toler002 = 2.5000000000000020e-13;
148
149 // Test data for a=0.0000000000000000, c=3.0000000000000000.
150 // max(|f - f_GSL|): 0.0000000000000000 at index 0
151 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
152 // mean(f - f_GSL): 0.0000000000000000
153 // variance(f - f_GSL): 0.0000000000000000
154 // stddev(f - f_GSL): 0.0000000000000000
155 const testcase_conf_hyperg<double>
156 data003[21] =
157 {
158 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
159 -10.000000000000000, 0.0 },
160 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
161 -9.0000000000000000, 0.0 },
162 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
163 -8.0000000000000000, 0.0 },
164 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
165 -7.0000000000000000, 0.0 },
166 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
167 -6.0000000000000000, 0.0 },
168 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
169 -5.0000000000000000, 0.0 },
170 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
171 -4.0000000000000000, 0.0 },
172 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
173 -3.0000000000000000, 0.0 },
174 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
175 -2.0000000000000000, 0.0 },
176 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
177 -1.0000000000000000, 0.0 },
178 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
179 0.0000000000000000, 0.0 },
180 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
181 1.0000000000000000, 0.0 },
182 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
183 2.0000000000000000, 0.0 },
184 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
185 3.0000000000000000, 0.0 },
186 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
187 4.0000000000000000, 0.0 },
188 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
189 5.0000000000000000, 0.0 },
190 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
191 6.0000000000000000, 0.0 },
192 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
193 7.0000000000000000, 0.0 },
194 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
195 8.0000000000000000, 0.0 },
196 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
197 9.0000000000000000, 0.0 },
198 { 1.0000000000000000, 0.0000000000000000, 3.0000000000000000,
199 10.000000000000000, 0.0 },
200 };
201 const double toler003 = 2.5000000000000020e-13;
202
203 // Test data for a=0.0000000000000000, c=4.0000000000000000.
204 // max(|f - f_GSL|): 0.0000000000000000 at index 0
205 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
206 // mean(f - f_GSL): 0.0000000000000000
207 // variance(f - f_GSL): 0.0000000000000000
208 // stddev(f - f_GSL): 0.0000000000000000
209 const testcase_conf_hyperg<double>
210 data004[21] =
211 {
212 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
213 -10.000000000000000, 0.0 },
214 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
215 -9.0000000000000000, 0.0 },
216 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
217 -8.0000000000000000, 0.0 },
218 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
219 -7.0000000000000000, 0.0 },
220 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
221 -6.0000000000000000, 0.0 },
222 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
223 -5.0000000000000000, 0.0 },
224 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
225 -4.0000000000000000, 0.0 },
226 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
227 -3.0000000000000000, 0.0 },
228 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
229 -2.0000000000000000, 0.0 },
230 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
231 -1.0000000000000000, 0.0 },
232 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
233 0.0000000000000000, 0.0 },
234 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
235 1.0000000000000000, 0.0 },
236 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
237 2.0000000000000000, 0.0 },
238 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
239 3.0000000000000000, 0.0 },
240 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
241 4.0000000000000000, 0.0 },
242 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
243 5.0000000000000000, 0.0 },
244 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
245 6.0000000000000000, 0.0 },
246 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
247 7.0000000000000000, 0.0 },
248 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
249 8.0000000000000000, 0.0 },
250 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
251 9.0000000000000000, 0.0 },
252 { 1.0000000000000000, 0.0000000000000000, 4.0000000000000000,
253 10.000000000000000, 0.0 },
254 };
255 const double toler004 = 2.5000000000000020e-13;
256
257 // Test data for a=0.0000000000000000, c=5.0000000000000000.
258 // max(|f - f_GSL|): 0.0000000000000000 at index 0
259 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
260 // mean(f - f_GSL): 0.0000000000000000
261 // variance(f - f_GSL): 0.0000000000000000
262 // stddev(f - f_GSL): 0.0000000000000000
263 const testcase_conf_hyperg<double>
264 data005[21] =
265 {
266 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
267 -10.000000000000000, 0.0 },
268 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
269 -9.0000000000000000, 0.0 },
270 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
271 -8.0000000000000000, 0.0 },
272 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
273 -7.0000000000000000, 0.0 },
274 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
275 -6.0000000000000000, 0.0 },
276 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
277 -5.0000000000000000, 0.0 },
278 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
279 -4.0000000000000000, 0.0 },
280 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
281 -3.0000000000000000, 0.0 },
282 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
283 -2.0000000000000000, 0.0 },
284 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
285 -1.0000000000000000, 0.0 },
286 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
287 0.0000000000000000, 0.0 },
288 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
289 1.0000000000000000, 0.0 },
290 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
291 2.0000000000000000, 0.0 },
292 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
293 3.0000000000000000, 0.0 },
294 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
295 4.0000000000000000, 0.0 },
296 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
297 5.0000000000000000, 0.0 },
298 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
299 6.0000000000000000, 0.0 },
300 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
301 7.0000000000000000, 0.0 },
302 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
303 8.0000000000000000, 0.0 },
304 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
305 9.0000000000000000, 0.0 },
306 { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
307 10.000000000000000, 0.0 },
308 };
309 const double toler005 = 2.5000000000000020e-13;
310
311 // Test data for a=0.0000000000000000, c=6.0000000000000000.
312 // max(|f - f_GSL|): 0.0000000000000000 at index 0
313 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
314 // mean(f - f_GSL): 0.0000000000000000
315 // variance(f - f_GSL): 0.0000000000000000
316 // stddev(f - f_GSL): 0.0000000000000000
317 const testcase_conf_hyperg<double>
318 data006[21] =
319 {
320 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
321 -10.000000000000000, 0.0 },
322 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
323 -9.0000000000000000, 0.0 },
324 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
325 -8.0000000000000000, 0.0 },
326 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
327 -7.0000000000000000, 0.0 },
328 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
329 -6.0000000000000000, 0.0 },
330 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
331 -5.0000000000000000, 0.0 },
332 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
333 -4.0000000000000000, 0.0 },
334 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
335 -3.0000000000000000, 0.0 },
336 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
337 -2.0000000000000000, 0.0 },
338 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
339 -1.0000000000000000, 0.0 },
340 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
341 0.0000000000000000, 0.0 },
342 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
343 1.0000000000000000, 0.0 },
344 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
345 2.0000000000000000, 0.0 },
346 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
347 3.0000000000000000, 0.0 },
348 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
349 4.0000000000000000, 0.0 },
350 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
351 5.0000000000000000, 0.0 },
352 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
353 6.0000000000000000, 0.0 },
354 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
355 7.0000000000000000, 0.0 },
356 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
357 8.0000000000000000, 0.0 },
358 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
359 9.0000000000000000, 0.0 },
360 { 1.0000000000000000, 0.0000000000000000, 6.0000000000000000,
361 10.000000000000000, 0.0 },
362 };
363 const double toler006 = 2.5000000000000020e-13;
364
365 // Test data for a=0.0000000000000000, c=7.0000000000000000.
366 // max(|f - f_GSL|): 0.0000000000000000 at index 0
367 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
368 // mean(f - f_GSL): 0.0000000000000000
369 // variance(f - f_GSL): 0.0000000000000000
370 // stddev(f - f_GSL): 0.0000000000000000
371 const testcase_conf_hyperg<double>
372 data007[21] =
373 {
374 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
375 -10.000000000000000, 0.0 },
376 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
377 -9.0000000000000000, 0.0 },
378 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
379 -8.0000000000000000, 0.0 },
380 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
381 -7.0000000000000000, 0.0 },
382 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
383 -6.0000000000000000, 0.0 },
384 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
385 -5.0000000000000000, 0.0 },
386 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
387 -4.0000000000000000, 0.0 },
388 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
389 -3.0000000000000000, 0.0 },
390 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
391 -2.0000000000000000, 0.0 },
392 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
393 -1.0000000000000000, 0.0 },
394 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
395 0.0000000000000000, 0.0 },
396 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
397 1.0000000000000000, 0.0 },
398 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
399 2.0000000000000000, 0.0 },
400 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
401 3.0000000000000000, 0.0 },
402 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
403 4.0000000000000000, 0.0 },
404 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
405 5.0000000000000000, 0.0 },
406 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
407 6.0000000000000000, 0.0 },
408 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
409 7.0000000000000000, 0.0 },
410 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
411 8.0000000000000000, 0.0 },
412 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
413 9.0000000000000000, 0.0 },
414 { 1.0000000000000000, 0.0000000000000000, 7.0000000000000000,
415 10.000000000000000, 0.0 },
416 };
417 const double toler007 = 2.5000000000000020e-13;
418
419 // Test data for a=0.0000000000000000, c=8.0000000000000000.
420 // max(|f - f_GSL|): 0.0000000000000000 at index 0
421 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
422 // mean(f - f_GSL): 0.0000000000000000
423 // variance(f - f_GSL): 0.0000000000000000
424 // stddev(f - f_GSL): 0.0000000000000000
425 const testcase_conf_hyperg<double>
426 data008[21] =
427 {
428 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
429 -10.000000000000000, 0.0 },
430 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
431 -9.0000000000000000, 0.0 },
432 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
433 -8.0000000000000000, 0.0 },
434 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
435 -7.0000000000000000, 0.0 },
436 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
437 -6.0000000000000000, 0.0 },
438 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
439 -5.0000000000000000, 0.0 },
440 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
441 -4.0000000000000000, 0.0 },
442 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
443 -3.0000000000000000, 0.0 },
444 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
445 -2.0000000000000000, 0.0 },
446 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
447 -1.0000000000000000, 0.0 },
448 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
449 0.0000000000000000, 0.0 },
450 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
451 1.0000000000000000, 0.0 },
452 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
453 2.0000000000000000, 0.0 },
454 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
455 3.0000000000000000, 0.0 },
456 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
457 4.0000000000000000, 0.0 },
458 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
459 5.0000000000000000, 0.0 },
460 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
461 6.0000000000000000, 0.0 },
462 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
463 7.0000000000000000, 0.0 },
464 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
465 8.0000000000000000, 0.0 },
466 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
467 9.0000000000000000, 0.0 },
468 { 1.0000000000000000, 0.0000000000000000, 8.0000000000000000,
469 10.000000000000000, 0.0 },
470 };
471 const double toler008 = 2.5000000000000020e-13;
472
473 // Test data for a=0.0000000000000000, c=9.0000000000000000.
474 // max(|f - f_GSL|): 0.0000000000000000 at index 0
475 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
476 // mean(f - f_GSL): 0.0000000000000000
477 // variance(f - f_GSL): 0.0000000000000000
478 // stddev(f - f_GSL): 0.0000000000000000
479 const testcase_conf_hyperg<double>
480 data009[21] =
481 {
482 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
483 -10.000000000000000, 0.0 },
484 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
485 -9.0000000000000000, 0.0 },
486 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
487 -8.0000000000000000, 0.0 },
488 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
489 -7.0000000000000000, 0.0 },
490 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
491 -6.0000000000000000, 0.0 },
492 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
493 -5.0000000000000000, 0.0 },
494 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
495 -4.0000000000000000, 0.0 },
496 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
497 -3.0000000000000000, 0.0 },
498 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
499 -2.0000000000000000, 0.0 },
500 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
501 -1.0000000000000000, 0.0 },
502 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
503 0.0000000000000000, 0.0 },
504 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
505 1.0000000000000000, 0.0 },
506 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
507 2.0000000000000000, 0.0 },
508 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
509 3.0000000000000000, 0.0 },
510 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
511 4.0000000000000000, 0.0 },
512 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
513 5.0000000000000000, 0.0 },
514 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
515 6.0000000000000000, 0.0 },
516 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
517 7.0000000000000000, 0.0 },
518 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
519 8.0000000000000000, 0.0 },
520 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
521 9.0000000000000000, 0.0 },
522 { 1.0000000000000000, 0.0000000000000000, 9.0000000000000000,
523 10.000000000000000, 0.0 },
524 };
525 const double toler009 = 2.5000000000000020e-13;
526
527 // Test data for a=0.0000000000000000, c=10.000000000000000.
528 // max(|f - f_GSL|): 0.0000000000000000 at index 0
529 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
530 // mean(f - f_GSL): 0.0000000000000000
531 // variance(f - f_GSL): 0.0000000000000000
532 // stddev(f - f_GSL): 0.0000000000000000
533 const testcase_conf_hyperg<double>
534 data010[21] =
535 {
536 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
537 -10.000000000000000, 0.0 },
538 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
539 -9.0000000000000000, 0.0 },
540 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
541 -8.0000000000000000, 0.0 },
542 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
543 -7.0000000000000000, 0.0 },
544 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
545 -6.0000000000000000, 0.0 },
546 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
547 -5.0000000000000000, 0.0 },
548 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
549 -4.0000000000000000, 0.0 },
550 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
551 -3.0000000000000000, 0.0 },
552 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
553 -2.0000000000000000, 0.0 },
554 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
555 -1.0000000000000000, 0.0 },
556 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
557 0.0000000000000000, 0.0 },
558 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
559 1.0000000000000000, 0.0 },
560 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
561 2.0000000000000000, 0.0 },
562 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
563 3.0000000000000000, 0.0 },
564 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
565 4.0000000000000000, 0.0 },
566 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
567 5.0000000000000000, 0.0 },
568 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
569 6.0000000000000000, 0.0 },
570 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
571 7.0000000000000000, 0.0 },
572 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
573 8.0000000000000000, 0.0 },
574 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
575 9.0000000000000000, 0.0 },
576 { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
577 10.000000000000000, 0.0 },
578 };
579 const double toler010 = 2.5000000000000020e-13;
580
581 // Test data for a=0.50000000000000000, c=1.0000000000000000.
582 // max(|f - f_GSL|): 1.1823431123048067e-11 at index 20
583 // max(|f - f_GSL| / |f_GSL|): 1.8179920344425603e-13
584 // mean(f - f_GSL): -5.8836665698233256e-13
585 // variance(f - f_GSL): 6.6269003617242792e-24
586 // stddev(f - f_GSL): 2.5742766676727424e-12
587 const testcase_conf_hyperg<double>
588 data011[21] =
589 {
590 { 0.18354081260932842, 0.50000000000000000, 1.0000000000000000,
591 -10.000000000000000, 0.0 },
592 { 0.19419827762834704, 0.50000000000000000, 1.0000000000000000,
593 -9.0000000000000000, 0.0 },
594 { 0.20700192122398287, 0.50000000000000000, 1.0000000000000000,
595 -8.0000000000000000, 0.0 },
596 { 0.22280243801078498, 0.50000000000000000, 1.0000000000000000,
597 -7.0000000000000000, 0.0 },
598 { 0.24300035416182644, 0.50000000000000000, 1.0000000000000000,
599 -6.0000000000000000, 0.0 },
600 { 0.27004644161220326, 0.50000000000000000, 1.0000000000000000,
601 -5.0000000000000000, 0.0 },
602 { 0.30850832255367100, 0.50000000000000000, 1.0000000000000000,
603 -4.0000000000000000, 0.0 },
604 { 0.36743360905415834, 0.50000000000000000, 1.0000000000000000,
605 -3.0000000000000000, 0.0 },
606 { 0.46575960759364043, 0.50000000000000000, 1.0000000000000000,
607 -2.0000000000000000, 0.0 },
608 { 0.64503527044915010, 0.50000000000000000, 1.0000000000000000,
609 -1.0000000000000000, 0.0 },
610 { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
611 0.0000000000000000, 0.0 },
612 { 1.7533876543770910, 0.50000000000000000, 1.0000000000000000,
613 1.0000000000000000, 0.0 },
614 { 3.4415238691253340, 0.50000000000000000, 1.0000000000000000,
615 2.0000000000000000, 0.0 },
616 { 7.3801013214774045, 0.50000000000000000, 1.0000000000000000,
617 3.0000000000000000, 0.0 },
618 { 16.843983681258987, 0.50000000000000000, 1.0000000000000000,
619 4.0000000000000000, 0.0 },
620 { 40.078445504076420, 0.50000000000000000, 1.0000000000000000,
621 5.0000000000000000, 0.0 },
622 { 98.033339697812693, 0.50000000000000000, 1.0000000000000000,
623 6.0000000000000000, 0.0 },
624 { 244.33254130132138, 0.50000000000000000, 1.0000000000000000,
625 7.0000000000000000, 0.0 },
626 { 617.06403040562441, 0.50000000000000000, 1.0000000000000000,
627 8.0000000000000000, 0.0 },
628 { 1573.6049422133694, 0.50000000000000000, 1.0000000000000000,
629 9.0000000000000000, 0.0 },
630 { 4042.7554308904109, 0.50000000000000000, 1.0000000000000000,
631 10.000000000000000, 0.0 },
632 };
633 const double toler011 = 1.0000000000000006e-11;
634
635 // Test data for a=0.50000000000000000, c=2.0000000000000000.
636 // max(|f - f_GSL|): 1.0231815394945443e-12 at index 20
637 // max(|f - f_GSL| / |f_GSL|): 2.3738284297189904e-15
638 // mean(f - f_GSL): -5.2558486663385687e-14
639 // variance(f - f_GSL): 4.9460728311082100e-26
640 // stddev(f - f_GSL): 2.2239768054339527e-13
641 const testcase_conf_hyperg<double>
642 data012[21] =
643 {
644 { 0.34751307955387056, 0.50000000000000000, 2.0000000000000000,
645 -10.000000000000000, 0.0 },
646 { 0.36515709992587503, 0.50000000000000000, 2.0000000000000000,
647 -9.0000000000000000, 0.0 },
648 { 0.38575276072642301, 0.50000000000000000, 2.0000000000000000,
649 -8.0000000000000000, 0.0 },
650 { 0.41020241461382889, 0.50000000000000000, 2.0000000000000000,
651 -7.0000000000000000, 0.0 },
652 { 0.43982706745912625, 0.50000000000000000, 2.0000000000000000,
653 -6.0000000000000000, 0.0 },
654 { 0.47663109114346930, 0.50000000000000000, 2.0000000000000000,
655 -5.0000000000000000, 0.0 },
656 { 0.52377761180260862, 0.50000000000000000, 2.0000000000000000,
657 -4.0000000000000000, 0.0 },
658 { 0.58647299647508400, 0.50000000000000000, 2.0000000000000000,
659 -3.0000000000000000, 0.0 },
660 { 0.67367002294334866, 0.50000000000000000, 2.0000000000000000,
661 -2.0000000000000000, 0.0 },
662 { 0.80145607363402172, 0.50000000000000000, 2.0000000000000000,
663 -1.0000000000000000, 0.0 },
664 { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
665 0.0000000000000000, 0.0 },
666 { 1.3281918274866849, 0.50000000000000000, 2.0000000000000000,
667 1.0000000000000000, 0.0 },
668 { 1.9052621465543667, 0.50000000000000000, 2.0000000000000000,
669 2.0000000000000000, 0.0 },
670 { 2.9805776178019903, 0.50000000000000000, 2.0000000000000000,
671 3.0000000000000000, 0.0 },
672 { 5.0906787293171654, 0.50000000000000000, 2.0000000000000000,
673 4.0000000000000000, 0.0 },
674 { 9.4185650450425982, 0.50000000000000000, 2.0000000000000000,
675 5.0000000000000000, 0.0 },
676 { 18.627776225142014, 0.50000000000000000, 2.0000000000000000,
677 6.0000000000000000, 0.0 },
678 { 38.823513069699622, 0.50000000000000000, 2.0000000000000000,
679 7.0000000000000000, 0.0 },
680 { 84.215287700426956, 0.50000000000000000, 2.0000000000000000,
681 8.0000000000000000, 0.0 },
682 { 188.31125697734257, 0.50000000000000000, 2.0000000000000000,
683 9.0000000000000000, 0.0 },
684 { 431.02590173952319, 0.50000000000000000, 2.0000000000000000,
685 10.000000000000000, 0.0 },
686 };
687 const double toler012 = 2.5000000000000020e-13;
688
689 // Test data for a=0.50000000000000000, c=3.0000000000000000.
690 // max(|f - f_GSL|): 2.4158453015843406e-13 at index 20
691 // max(|f - f_GSL| / |f_GSL|): 2.5938546713928606e-15
692 // mean(f - f_GSL): -1.2672402809650001e-14
693 // variance(f - f_GSL): 2.7510400074856614e-27
694 // stddev(f - f_GSL): 5.2450357553458695e-14
695 const testcase_conf_hyperg<double>
696 data013[21] =
697 {
698 { 0.44148780381255504, 0.50000000000000000, 3.0000000000000000,
699 -10.000000000000000, 0.0 },
700 { 0.46154890030153722, 0.50000000000000000, 3.0000000000000000,
701 -9.0000000000000000, 0.0 },
702 { 0.48454520771815751, 0.50000000000000000, 3.0000000000000000,
703 -8.0000000000000000, 0.0 },
704 { 0.51124131917976301, 0.50000000000000000, 3.0000000000000000,
705 -7.0000000000000000, 0.0 },
706 { 0.54269682032387934, 0.50000000000000000, 3.0000000000000000,
707 -6.0000000000000000, 0.0 },
708 { 0.58041888164962119, 0.50000000000000000, 3.0000000000000000,
709 -5.0000000000000000, 0.0 },
710 { 0.62661371932049892, 0.50000000000000000, 3.0000000000000000,
711 -4.0000000000000000, 0.0 },
712 { 0.68461315644636744, 0.50000000000000000, 3.0000000000000000,
713 -3.0000000000000000, 0.0 },
714 { 0.75961975369132639, 0.50000000000000000, 3.0000000000000000,
715 -2.0000000000000000, 0.0 },
716 { 0.86004702726553350, 0.50000000000000000, 3.0000000000000000,
717 -1.0000000000000000, 0.0 },
718 { 1.0000000000000000, 0.50000000000000000, 3.0000000000000000,
719 0.0000000000000000, 0.0 },
720 { 1.2039946674617061, 0.50000000000000000, 3.0000000000000000,
721 1.0000000000000000, 0.0 },
722 { 1.5161750470251780, 0.50000000000000000, 3.0000000000000000,
723 2.0000000000000000, 0.0 },
724 { 2.0187596221024697, 0.50000000000000000, 3.0000000000000000,
725 3.0000000000000000, 0.0 },
726 { 2.8698033217756134, 0.50000000000000000, 3.0000000000000000,
727 4.0000000000000000, 0.0 },
728 { 4.3821186043144449, 0.50000000000000000, 3.0000000000000000,
729 5.0000000000000000, 0.0 },
730 { 7.1913541951514235, 0.50000000000000000, 3.0000000000000000,
731 6.0000000000000000, 0.0 },
732 { 12.620107286909638, 0.50000000000000000, 3.0000000000000000,
733 7.0000000000000000, 0.0 },
734 { 23.478926483036361, 0.50000000000000000, 3.0000000000000000,
735 8.0000000000000000, 0.0 },
736 { 45.852981860749047, 0.50000000000000000, 3.0000000000000000,
737 9.0000000000000000, 0.0 },
738 { 93.137265099245838, 0.50000000000000000, 3.0000000000000000,
739 10.000000000000000, 0.0 },
740 };
741 const double toler013 = 2.5000000000000020e-13;
742
743 // Test data for a=0.50000000000000000, c=4.0000000000000000.
744 // max(|f - f_GSL|): 9.2370555648813024e-14 at index 20
745 // max(|f - f_GSL| / |f_GSL|): 3.0116140491179400e-15
746 // mean(f - f_GSL): -4.1977003883446396e-15
747 // variance(f - f_GSL): 4.0815875125113411e-28
748 // stddev(f - f_GSL): 2.0202939173574080e-14
749 const testcase_conf_hyperg<double>
750 data014[21] =
751 {
752 { 0.50723143075298205, 0.50000000000000000, 4.0000000000000000,
753 -10.000000000000000, 0.0 },
754 { 0.52815420026166782, 0.50000000000000000, 4.0000000000000000,
755 -9.0000000000000000, 0.0 },
756 { 0.55181651516426766, 0.50000000000000000, 4.0000000000000000,
757 -8.0000000000000000, 0.0 },
758 { 0.57884767287882366, 0.50000000000000000, 4.0000000000000000,
759 -7.0000000000000000, 0.0 },
760 { 0.61008828324275399, 0.50000000000000000, 4.0000000000000000,
761 -6.0000000000000000, 0.0 },
762 { 0.64668451853659259, 0.50000000000000000, 4.0000000000000000,
763 -5.0000000000000000, 0.0 },
764 { 0.69023479867386495, 0.50000000000000000, 4.0000000000000000,
765 -4.0000000000000000, 0.0 },
766 { 0.74302365975861406, 0.50000000000000000, 4.0000000000000000,
767 -3.0000000000000000, 0.0 },
768 { 0.80840402753201868, 0.50000000000000000, 4.0000000000000000,
769 -2.0000000000000000, 0.0 },
770 { 0.89143814400301236, 0.50000000000000000, 4.0000000000000000,
771 -1.0000000000000000, 0.0 },
772 { 1.0000000000000000, 0.50000000000000000, 4.0000000000000000,
773 0.0000000000000000, 0.0 },
774 { 1.1467204168940972, 0.50000000000000000, 4.0000000000000000,
775 1.0000000000000000, 0.0 },
776 { 1.3525055369951857, 0.50000000000000000, 4.0000000000000000,
777 2.0000000000000000, 0.0 },
778 { 1.6530571499633475, 0.50000000000000000, 4.0000000000000000,
779 3.0000000000000000, 0.0 },
780 { 2.1112387416058045, 0.50000000000000000, 4.0000000000000000,
781 4.0000000000000000, 0.0 },
782 { 2.8410480336278199, 0.50000000000000000, 4.0000000000000000,
783 5.0000000000000000, 0.0 },
784 { 4.0550562221854713, 0.50000000000000000, 4.0000000000000000,
785 6.0000000000000000, 0.0 },
786 { 6.1601039044778583, 0.50000000000000000, 4.0000000000000000,
787 7.0000000000000000, 0.0 },
788 { 9.9538034144264511, 0.50000000000000000, 4.0000000000000000,
789 8.0000000000000000, 0.0 },
790 { 17.034704868473916, 0.50000000000000000, 4.0000000000000000,
791 9.0000000000000000, 0.0 },
792 { 30.671445325428429, 0.50000000000000000, 4.0000000000000000,
793 10.000000000000000, 0.0 },
794 };
795 const double toler014 = 2.5000000000000020e-13;
796
797 // Test data for a=0.50000000000000000, c=5.0000000000000000.
798 // max(|f - f_GSL|): 3.5527136788005009e-14 at index 20
799 // max(|f - f_GSL| / |f_GSL|): 2.6053493022967024e-15
800 // mean(f - f_GSL): -1.8503717077085944e-15
801 // variance(f - f_GSL): 5.9541536579357277e-29
802 // stddev(f - f_GSL): 7.7163162570851951e-15
803 const testcase_conf_hyperg<double>
804 data015[21] =
805 {
806 { 0.55715239162383312, 0.50000000000000000, 5.0000000000000000,
807 -10.000000000000000, 0.0 },
808 { 0.57823135269518977, 0.50000000000000000, 5.0000000000000000,
809 -9.0000000000000000, 0.0 },
810 { 0.60181688556797253, 0.50000000000000000, 5.0000000000000000,
811 -8.0000000000000000, 0.0 },
812 { 0.62842688147829928, 0.50000000000000000, 5.0000000000000000,
813 -7.0000000000000000, 0.0 },
814 { 0.65873434489521876, 0.50000000000000000, 5.0000000000000000,
815 -6.0000000000000000, 0.0 },
816 { 0.69362872731932568, 0.50000000000000000, 5.0000000000000000,
817 -5.0000000000000000, 0.0 },
818 { 0.73430741618153195, 0.50000000000000000, 5.0000000000000000,
819 -4.0000000000000000, 0.0 },
820 { 0.78241503593870543, 0.50000000000000000, 5.0000000000000000,
821 -3.0000000000000000, 0.0 },
822 { 0.84026013345254857, 0.50000000000000000, 5.0000000000000000,
823 -2.0000000000000000, 0.0 },
824 { 0.91115976433208690, 0.50000000000000000, 5.0000000000000000,
825 -1.0000000000000000, 0.0 },
826 { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
827 0.0000000000000000, 0.0 },
828 { 1.1141687602185972, 0.50000000000000000, 5.0000000000000000,
829 1.0000000000000000, 0.0 },
830 { 1.2651443108002267, 0.50000000000000000, 5.0000000000000000,
831 2.0000000000000000, 0.0 },
832 { 1.4712624889419719, 0.50000000000000000, 5.0000000000000000,
833 3.0000000000000000, 0.0 },
834 { 1.7626460645467978, 0.50000000000000000, 5.0000000000000000,
835 4.0000000000000000, 0.0 },
836 { 2.1901779328181084, 0.50000000000000000, 5.0000000000000000,
837 5.0000000000000000, 0.0 },
838 { 2.8421796979457090, 0.50000000000000000, 5.0000000000000000,
839 6.0000000000000000, 0.0 },
840 { 3.8760354586203540, 0.50000000000000000, 5.0000000000000000,
841 7.0000000000000000, 0.0 },
842 { 5.5792940156545541, 0.50000000000000000, 5.0000000000000000,
843 8.0000000000000000, 0.0 },
844 { 8.4898429002463303, 0.50000000000000000, 5.0000000000000000,
845 9.0000000000000000, 0.0 },
846 { 13.636227878037948, 0.50000000000000000, 5.0000000000000000,
847 10.000000000000000, 0.0 },
848 };
849 const double toler015 = 2.5000000000000020e-13;
850
851 // Test data for a=0.50000000000000000, c=6.0000000000000000.
852 // max(|f - f_GSL|): 2.1316282072803006e-14 at index 20
853 // max(|f - f_GSL| / |f_GSL|): 2.8121163355193836e-15
854 // mean(f - f_GSL): -1.1525172350870673e-15
855 // variance(f - f_GSL): 2.1345314152612258e-29
856 // stddev(f - f_GSL): 4.6200989332061126e-15
857 const testcase_conf_hyperg<double>
858 data016[21] =
859 {
860 { 0.59687111919499192, 0.50000000000000000, 6.0000000000000000,
861 -10.000000000000000, 0.0 },
862 { 0.61774982278057033, 0.50000000000000000, 6.0000000000000000,
863 -9.0000000000000000, 0.0 },
864 { 0.64090744485124451, 0.50000000000000000, 6.0000000000000000,
865 -8.0000000000000000, 0.0 },
866 { 0.66677322792860194, 0.50000000000000000, 6.0000000000000000,
867 -7.0000000000000000, 0.0 },
868 { 0.69589293014100995, 0.50000000000000000, 6.0000000000000000,
869 -6.0000000000000000, 0.0 },
870 { 0.72897040032571048, 0.50000000000000000, 6.0000000000000000,
871 -5.0000000000000000, 0.0 },
872 { 0.76692755408207181, 0.50000000000000000, 6.0000000000000000,
873 -4.0000000000000000, 0.0 },
874 { 0.81099244559101891, 0.50000000000000000, 6.0000000000000000,
875 -3.0000000000000000, 0.0 },
876 { 0.86283102401276535, 0.50000000000000000, 6.0000000000000000,
877 -2.0000000000000000, 0.0 },
878 { 0.92474809223976406, 0.50000000000000000, 6.0000000000000000,
879 -1.0000000000000000, 0.0 },
880 { 1.0000000000000000, 0.50000000000000000, 6.0000000000000000,
881 0.0000000000000000, 0.0 },
882 { 1.0932912594628821, 0.50000000000000000, 6.0000000000000000,
883 1.0000000000000000, 0.0 },
884 { 1.2115798426781204, 0.50000000000000000, 6.0000000000000000,
885 2.0000000000000000, 0.0 },
886 { 1.3654106750890422, 0.50000000000000000, 6.0000000000000000,
887 3.0000000000000000, 0.0 },
888 { 1.5711704305419896, 0.50000000000000000, 6.0000000000000000,
889 4.0000000000000000, 0.0 },
890 { 1.8549798357448213, 0.50000000000000000, 6.0000000000000000,
891 5.0000000000000000, 0.0 },
892 { 2.2595503871694826, 0.50000000000000000, 6.0000000000000000,
893 6.0000000000000000, 0.0 },
894 { 2.8565038772876932, 0.50000000000000000, 6.0000000000000000,
895 7.0000000000000000, 0.0 },
896 { 3.7689325736317838, 0.50000000000000000, 6.0000000000000000,
897 8.0000000000000000, 0.0 },
898 { 5.2134738554699531, 0.50000000000000000, 6.0000000000000000,
899 9.0000000000000000, 0.0 },
900 { 7.5801565545352858, 0.50000000000000000, 6.0000000000000000,
901 10.000000000000000, 0.0 },
902 };
903 const double toler016 = 2.5000000000000020e-13;
904
905 // Test data for a=0.50000000000000000, c=7.0000000000000000.
906 // max(|f - f_GSL|): 1.2434497875801753e-14 at index 20
907 // max(|f - f_GSL| / |f_GSL|): 2.5039514520700816e-15
908 // mean(f - f_GSL): -8.2473710400725917e-16
909 // variance(f - f_GSL): 7.0762936218606606e-30
910 // stddev(f - f_GSL): 2.6601303768538602e-15
911 const testcase_conf_hyperg<double>
912 data017[21] =
913 {
914 { 0.62946736953754079, 0.50000000000000000, 7.0000000000000000,
915 -10.000000000000000, 0.0 },
916 { 0.64995830964827050, 0.50000000000000000, 7.0000000000000000,
917 -9.0000000000000000, 0.0 },
918 { 0.67251910396276349, 0.50000000000000000, 7.0000000000000000,
919 -8.0000000000000000, 0.0 },
920 { 0.69750870596083636, 0.50000000000000000, 7.0000000000000000,
921 -7.0000000000000000, 0.0 },
922 { 0.72537539174856436, 0.50000000000000000, 7.0000000000000000,
923 -6.0000000000000000, 0.0 },
924 { 0.75668588434835504, 0.50000000000000000, 7.0000000000000000,
925 -5.0000000000000000, 0.0 },
926 { 0.79216623458879654, 0.50000000000000000, 7.0000000000000000,
927 -4.0000000000000000, 0.0 },
928 { 0.83276010491326891, 0.50000000000000000, 7.0000000000000000,
929 -3.0000000000000000, 0.0 },
930 { 0.87971323375878940, 0.50000000000000000, 7.0000000000000000,
931 -2.0000000000000000, 0.0 },
932 { 0.93469794840150233, 0.50000000000000000, 7.0000000000000000,
933 -1.0000000000000000, 0.0 },
934 { 1.0000000000000000, 0.50000000000000000, 7.0000000000000000,
935 0.0000000000000000, 0.0 },
936 { 1.0788040971101556, 0.50000000000000000, 7.0000000000000000,
937 1.0000000000000000, 0.0 },
938 { 1.1756385516794761, 0.50000000000000000, 7.0000000000000000,
939 2.0000000000000000, 0.0 },
940 { 1.2970810749099917, 0.50000000000000000, 7.0000000000000000,
941 3.0000000000000000, 0.0 },
942 { 1.4529009687665237, 0.50000000000000000, 7.0000000000000000,
943 4.0000000000000000, 0.0 },
944 { 1.6579437149144023, 0.50000000000000000, 7.0000000000000000,
945 5.0000000000000000, 0.0 },
946 { 1.9353010489337754, 0.50000000000000000, 7.0000000000000000,
947 6.0000000000000000, 0.0 },
948 { 2.3217458547039813, 0.50000000000000000, 7.0000000000000000,
949 7.0000000000000000, 0.0 },
950 { 2.8772254607646022, 0.50000000000000000, 7.0000000000000000,
951 8.0000000000000000, 0.0 },
952 { 3.7017478151936585, 0.50000000000000000, 7.0000000000000000,
953 9.0000000000000000, 0.0 },
954 { 4.9659500648552237, 0.50000000000000000, 7.0000000000000000,
955 10.000000000000000, 0.0 },
956 };
957 const double toler017 = 2.5000000000000020e-13;
958
959 // Test data for a=0.50000000000000000, c=8.0000000000000000.
960 // max(|f - f_GSL|): 1.0658141036401503e-14 at index 20
961 // max(|f - f_GSL| / |f_GSL|): 2.9130420352995081e-15
962 // mean(f - f_GSL): -6.7670736739057157e-16
963 // variance(f - f_GSL): 5.2305234496654133e-30
964 // stddev(f - f_GSL): 2.2870337666211692e-15
965 const testcase_conf_hyperg<double>
966 data018[21] =
967 {
968 { 0.65682574389601267, 0.50000000000000000, 8.0000000000000000,
969 -10.000000000000000, 0.0 },
970 { 0.67683106084440448, 0.50000000000000000, 8.0000000000000000,
971 -9.0000000000000000, 0.0 },
972 { 0.69871884883136481, 0.50000000000000000, 8.0000000000000000,
973 -8.0000000000000000, 0.0 },
974 { 0.72279201131268422, 0.50000000000000000, 8.0000000000000000,
975 -7.0000000000000000, 0.0 },
976 { 0.74942315553647221, 0.50000000000000000, 8.0000000000000000,
977 -6.0000000000000000, 0.0 },
978 { 0.77907555763819503, 0.50000000000000000, 8.0000000000000000,
979 -5.0000000000000000, 0.0 },
980 { 0.81233192258476394, 0.50000000000000000, 8.0000000000000000,
981 -4.0000000000000000, 0.0 },
982 { 0.84993438521252052, 0.50000000000000000, 8.0000000000000000,
983 -3.0000000000000000, 0.0 },
984 { 0.89284095871461888, 0.50000000000000000, 8.0000000000000000,
985 -2.0000000000000000, 0.0 },
986 { 0.94230641231038748, 0.50000000000000000, 8.0000000000000000,
987 -1.0000000000000000, 0.0 },
988 { 1.0000000000000000, 0.50000000000000000, 8.0000000000000000,
989 0.0000000000000000, 0.0 },
990 { 1.0681796709163929, 0.50000000000000000, 8.0000000000000000,
991 1.0000000000000000, 0.0 },
992 { 1.1499542693515108, 0.50000000000000000, 8.0000000000000000,
993 2.0000000000000000, 0.0 },
994 { 1.2496850956712680, 0.50000000000000000, 8.0000000000000000,
995 3.0000000000000000, 0.0 },
996 { 1.3736119127266571, 0.50000000000000000, 8.0000000000000000,
997 4.0000000000000000, 0.0 },
998 { 1.5308465522192733, 0.50000000000000000, 8.0000000000000000,
999 5.0000000000000000, 0.0 },
1000 { 1.7349787653671505, 0.50000000000000000, 8.0000000000000000,
1001 6.0000000000000000, 0.0 },
1002 { 2.0067188996039378, 0.50000000000000000, 8.0000000000000000,
1003 7.0000000000000000, 0.0 },
1004 { 2.3783255204306939, 0.50000000000000000, 8.0000000000000000,
1005 8.0000000000000000, 0.0 },
1006 { 2.9011558746255748, 0.50000000000000000, 8.0000000000000000,
1007 9.0000000000000000, 0.0 },
1008 { 3.6587666457431234, 0.50000000000000000, 8.0000000000000000,
1009 10.000000000000000, 0.0 },
1010 };
1011 const double toler018 = 2.5000000000000020e-13;
1012
1013 // Test data for a=0.50000000000000000, c=9.0000000000000000.
1014 // max(|f - f_GSL|): 7.1054273576010019e-15 at index 20
1015 // max(|f - f_GSL| / |f_GSL|): 2.4278329545502228e-15
1016 // mean(f - f_GSL): -2.7491236800241972e-16
1017 // variance(f - f_GSL): 2.4494365887143733e-30
1018 // stddev(f - f_GSL): 1.5650675987683002e-15
1019 const testcase_conf_hyperg<double>
1020 data019[21] =
1021 {
1022 { 0.68018654063475448, 0.50000000000000000, 9.0000000000000000,
1023 -10.000000000000000, 0.0 },
1024 { 0.69965870094538662, 0.50000000000000000, 9.0000000000000000,
1025 -9.0000000000000000, 0.0 },
1026 { 0.72084701020942776, 0.50000000000000000, 9.0000000000000000,
1027 -8.0000000000000000, 0.0 },
1028 { 0.74400928635822572, 0.50000000000000000, 9.0000000000000000,
1029 -7.0000000000000000, 0.0 },
1030 { 0.76945859319172982, 0.50000000000000000, 9.0000000000000000,
1031 -6.0000000000000000, 0.0 },
1032 { 0.79757868270124699, 0.50000000000000000, 9.0000000000000000,
1033 -5.0000000000000000, 0.0 },
1034 { 0.82884476649794248, 0.50000000000000000, 9.0000000000000000,
1035 -4.0000000000000000, 0.0 },
1036 { 0.86385180214855140, 0.50000000000000000, 9.0000000000000000,
1037 -3.0000000000000000, 0.0 },
1038 { 0.90335351612716308, 0.50000000000000000, 9.0000000000000000,
1039 -2.0000000000000000, 0.0 },
1040 { 0.94831697594473685, 0.50000000000000000, 9.0000000000000000,
1041 -1.0000000000000000, 0.0 },
1042 { 1.0000000000000000, 0.50000000000000000, 9.0000000000000000,
1043 0.0000000000000000, 0.0 },
1044 { 1.0600626000640645, 0.50000000000000000, 9.0000000000000000,
1045 1.0000000000000000, 0.0 },
1046 { 1.1307298999505393, 0.50000000000000000, 9.0000000000000000,
1047 2.0000000000000000, 0.0 },
1048 { 1.2150341092774180, 0.50000000000000000, 9.0000000000000000,
1049 3.0000000000000000, 0.0 },
1050 { 1.3171798023006840, 0.50000000000000000, 9.0000000000000000,
1051 4.0000000000000000, 0.0 },
1052 { 1.4431045594091672, 0.50000000000000000, 9.0000000000000000,
1053 5.0000000000000000, 0.0 },
1054 { 1.6013540635087158, 0.50000000000000000, 9.0000000000000000,
1055 6.0000000000000000, 0.0 },
1056 { 1.8044714074708206, 0.50000000000000000, 9.0000000000000000,
1057 7.0000000000000000, 0.0 },
1058 { 2.0712406108144257, 0.50000000000000000, 9.0000000000000000,
1059 8.0000000000000000, 0.0 },
1060 { 2.4303714711293143, 0.50000000000000000, 9.0000000000000000,
1061 9.0000000000000000, 0.0 },
1062 { 2.9266541358556295, 0.50000000000000000, 9.0000000000000000,
1063 10.000000000000000, 0.0 },
1064 };
1065 const double toler019 = 2.5000000000000020e-13;
1066
1067 // Test data for a=0.50000000000000000, c=10.000000000000000.
1068 // max(|f - f_GSL|): 5.3290705182007514e-15 at index 20
1069 // max(|f - f_GSL| / |f_GSL|): 2.1499735877560022e-15
1070 // mean(f - f_GSL): -3.4892723631076348e-16
1071 // variance(f - f_GSL): 1.3020959231780839e-30
1072 // stddev(f - f_GSL): 1.1410941780493336e-15
1073 const testcase_conf_hyperg<double>
1074 data020[21] =
1075 {
1076 { 0.70040954461104099, 0.50000000000000000, 10.000000000000000,
1077 -10.000000000000000, 0.0 },
1078 { 0.71933025737654444, 0.50000000000000000, 10.000000000000000,
1079 -9.0000000000000000, 0.0 },
1080 { 0.73981995758615027, 0.50000000000000000, 10.000000000000000,
1081 -8.0000000000000000, 0.0 },
1082 { 0.76209985272755054, 0.50000000000000000, 10.000000000000000,
1083 -7.0000000000000000, 0.0 },
1084 { 0.78643553963087975, 0.50000000000000000, 10.000000000000000,
1085 -6.0000000000000000, 0.0 },
1086 { 0.81314860510626796, 0.50000000000000000, 10.000000000000000,
1087 -5.0000000000000000, 0.0 },
1088 { 0.84263196565226672, 0.50000000000000000, 10.000000000000000,
1089 -4.0000000000000000, 0.0 },
1090 { 0.87537037798496642, 0.50000000000000000, 10.000000000000000,
1091 -3.0000000000000000, 0.0 },
1092 { 0.91196818568151450, 0.50000000000000000, 10.000000000000000,
1093 -2.0000000000000000, 0.0 },
1094 { 0.95318731786229316, 0.50000000000000000, 10.000000000000000,
1095 -1.0000000000000000, 0.0 },
1096 { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
1097 0.0000000000000000, 0.0 },
1098 { 1.0536628587304602, 0.50000000000000000, 10.000000000000000,
1099 1.0000000000000000, 0.0 },
1100 { 1.1158225648376323, 0.50000000000000000, 10.000000000000000,
1101 2.0000000000000000, 0.0 },
1102 { 1.1886686247111011, 0.50000000000000000, 10.000000000000000,
1103 3.0000000000000000, 0.0 },
1104 { 1.2751576744751334, 0.50000000000000000, 10.000000000000000,
1105 4.0000000000000000, 0.0 },
1106 { 1.3793478044961116, 0.50000000000000000, 10.000000000000000,
1107 5.0000000000000000, 0.0 },
1108 { 1.5069047234443802, 0.50000000000000000, 10.000000000000000,
1109 6.0000000000000000, 0.0 },
1110 { 1.6658803233122232, 0.50000000000000000, 10.000000000000000,
1111 7.0000000000000000, 0.0 },
1112 { 1.8679295659745196, 0.50000000000000000, 10.000000000000000,
1113 8.0000000000000000, 0.0 },
1114 { 2.1302432955522050, 0.50000000000000000, 10.000000000000000,
1115 9.0000000000000000, 0.0 },
1116 { 2.4786679001777303, 0.50000000000000000, 10.000000000000000,
1117 10.000000000000000, 0.0 },
1118 };
1119 const double toler020 = 2.5000000000000020e-13;
1120
1121 // Test data for a=1.0000000000000000, c=1.0000000000000000.
1122 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1123 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1124 // mean(f - f_GSL): 0.0000000000000000
1125 // variance(f - f_GSL): 0.0000000000000000
1126 // stddev(f - f_GSL): 0.0000000000000000
1127 const testcase_conf_hyperg<double>
1128 data021[21] =
1129 {
1130 { 4.5399929762484847e-05, 1.0000000000000000, 1.0000000000000000,
1131 -10.000000000000000, 0.0 },
1132 { 0.00012340980408667956, 1.0000000000000000, 1.0000000000000000,
1133 -9.0000000000000000, 0.0 },
1134 { 0.00033546262790251185, 1.0000000000000000, 1.0000000000000000,
1135 -8.0000000000000000, 0.0 },
1136 { 0.00091188196555451624, 1.0000000000000000, 1.0000000000000000,
1137 -7.0000000000000000, 0.0 },
1138 { 0.0024787521766663585, 1.0000000000000000, 1.0000000000000000,
1139 -6.0000000000000000, 0.0 },
1140 { 0.0067379469990854670, 1.0000000000000000, 1.0000000000000000,
1141 -5.0000000000000000, 0.0 },
1142 { 0.018315638888734182, 1.0000000000000000, 1.0000000000000000,
1143 -4.0000000000000000, 0.0 },
1144 { 0.049787068367863944, 1.0000000000000000, 1.0000000000000000,
1145 -3.0000000000000000, 0.0 },
1146 { 0.13533528323661270, 1.0000000000000000, 1.0000000000000000,
1147 -2.0000000000000000, 0.0 },
1148 { 0.36787944117144228, 1.0000000000000000, 1.0000000000000000,
1149 -1.0000000000000000, 0.0 },
1150 { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
1151 0.0000000000000000, 0.0 },
1152 { 2.7182818284590455, 1.0000000000000000, 1.0000000000000000,
1153 1.0000000000000000, 0.0 },
1154 { 7.3890560989306504, 1.0000000000000000, 1.0000000000000000,
1155 2.0000000000000000, 0.0 },
1156 { 20.085536923187668, 1.0000000000000000, 1.0000000000000000,
1157 3.0000000000000000, 0.0 },
1158 { 54.598150033144236, 1.0000000000000000, 1.0000000000000000,
1159 4.0000000000000000, 0.0 },
1160 { 148.41315910257660, 1.0000000000000000, 1.0000000000000000,
1161 5.0000000000000000, 0.0 },
1162 { 403.42879349273511, 1.0000000000000000, 1.0000000000000000,
1163 6.0000000000000000, 0.0 },
1164 { 1096.6331584284585, 1.0000000000000000, 1.0000000000000000,
1165 7.0000000000000000, 0.0 },
1166 { 2980.9579870417283, 1.0000000000000000, 1.0000000000000000,
1167 8.0000000000000000, 0.0 },
1168 { 8103.0839275753842, 1.0000000000000000, 1.0000000000000000,
1169 9.0000000000000000, 0.0 },
1170 { 22026.465794806718, 1.0000000000000000, 1.0000000000000000,
1171 10.000000000000000, 0.0 },
1172 };
1173 const double toler021 = 2.5000000000000020e-13;
1174
1175 // Test data for a=1.0000000000000000, c=2.0000000000000000.
1176 // max(|f - f_GSL|): 4.5474735088646412e-13 at index 20
1177 // max(|f - f_GSL| / |f_GSL|): 2.3593310407919961e-15
1178 // mean(f - f_GSL): 8.1284185731484669e-15
1179 // variance(f - f_GSL): 1.0472094711786016e-26
1180 // stddev(f - f_GSL): 1.0233325320630639e-13
1181 const testcase_conf_hyperg<double>
1182 data022[21] =
1183 {
1184 { 0.099995460007023751, 1.0000000000000000, 2.0000000000000000,
1185 -10.000000000000000, 0.0 },
1186 { 0.11109739891065704, 1.0000000000000000, 2.0000000000000000,
1187 -9.0000000000000000, 0.0 },
1188 { 0.12495806717151219, 1.0000000000000000, 2.0000000000000000,
1189 -8.0000000000000000, 0.0 },
1190 { 0.14272687400492079, 1.0000000000000000, 2.0000000000000000,
1191 -7.0000000000000000, 0.0 },
1192 { 0.16625354130388895, 1.0000000000000000, 2.0000000000000000,
1193 -6.0000000000000000, 0.0 },
1194 { 0.19865241060018290, 1.0000000000000000, 2.0000000000000000,
1195 -5.0000000000000000, 0.0 },
1196 { 0.24542109027781644, 1.0000000000000000, 2.0000000000000000,
1197 -4.0000000000000000, 0.0 },
1198 { 0.31673764387737868, 1.0000000000000000, 2.0000000000000000,
1199 -3.0000000000000000, 0.0 },
1200 { 0.43233235838169365, 1.0000000000000000, 2.0000000000000000,
1201 -2.0000000000000000, 0.0 },
1202 { 0.63212055882855767, 1.0000000000000000, 2.0000000000000000,
1203 -1.0000000000000000, 0.0 },
1204 { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
1205 0.0000000000000000, 0.0 },
1206 { 1.7182818284590455, 1.0000000000000000, 2.0000000000000000,
1207 1.0000000000000000, 0.0 },
1208 { 3.1945280494653252, 1.0000000000000000, 2.0000000000000000,
1209 2.0000000000000000, 0.0 },
1210 { 6.3618456410625557, 1.0000000000000000, 2.0000000000000000,
1211 3.0000000000000000, 0.0 },
1212 { 13.399537508286059, 1.0000000000000000, 2.0000000000000000,
1213 4.0000000000000000, 0.0 },
1214 { 29.482631820515319, 1.0000000000000000, 2.0000000000000000,
1215 5.0000000000000000, 0.0 },
1216 { 67.071465582122514, 1.0000000000000000, 2.0000000000000000,
1217 6.0000000000000000, 0.0 },
1218 { 156.51902263263693, 1.0000000000000000, 2.0000000000000000,
1219 7.0000000000000000, 0.0 },
1220 { 372.49474838021604, 1.0000000000000000, 2.0000000000000000,
1221 8.0000000000000000, 0.0 },
1222 { 900.23154750837602, 1.0000000000000000, 2.0000000000000000,
1223 9.0000000000000000, 0.0 },
1224 { 2202.5465794806719, 1.0000000000000000, 2.0000000000000000,
1225 10.000000000000000, 0.0 },
1226 };
1227 const double toler022 = 2.5000000000000020e-13;
1228
1229 // Test data for a=1.0000000000000000, c=3.0000000000000000.
1230 // max(|f - f_GSL|): 5.6843418860808015e-14 at index 18
1231 // max(|f - f_GSL| / |f_GSL|): 7.7283245979294494e-16
1232 // mean(f - f_GSL): 2.8456073476404308e-15
1233 // variance(f - f_GSL): 1.5307759153110761e-28
1234 // stddev(f - f_GSL): 1.2372452931052420e-14
1235 const testcase_conf_hyperg<double>
1236 data023[21] =
1237 {
1238 { 0.18000090799859525, 1.0000000000000000, 3.0000000000000000,
1239 -10.000000000000000, 0.0 },
1240 { 0.19753391135318732, 1.0000000000000000, 3.0000000000000000,
1241 -9.0000000000000000, 0.0 },
1242 { 0.21876048320712196, 1.0000000000000000, 3.0000000000000000,
1243 -8.0000000000000000, 0.0 },
1244 { 0.24493517885573690, 1.0000000000000000, 3.0000000000000000,
1245 -7.0000000000000000, 0.0 },
1246 { 0.27791548623203705, 1.0000000000000000, 3.0000000000000000,
1247 -6.0000000000000000, 0.0 },
1248 { 0.32053903575992687, 1.0000000000000000, 3.0000000000000000,
1249 -5.0000000000000000, 0.0 },
1250 { 0.37728945486109178, 1.0000000000000000, 3.0000000000000000,
1251 -4.0000000000000000, 0.0 },
1252 { 0.45550823741508090, 1.0000000000000000, 3.0000000000000000,
1253 -3.0000000000000000, 0.0 },
1254 { 0.56766764161830641, 1.0000000000000000, 3.0000000000000000,
1255 -2.0000000000000000, 0.0 },
1256 { 0.73575888234288467, 1.0000000000000000, 3.0000000000000000,
1257 -1.0000000000000000, 0.0 },
1258 { 1.0000000000000000, 1.0000000000000000, 3.0000000000000000,
1259 0.0000000000000000, 0.0 },
1260 { 1.4365636569180911, 1.0000000000000000, 3.0000000000000000,
1261 1.0000000000000000, 0.0 },
1262 { 2.1945280494653252, 1.0000000000000000, 3.0000000000000000,
1263 2.0000000000000000, 0.0 },
1264 { 3.5745637607083705, 1.0000000000000000, 3.0000000000000000,
1265 3.0000000000000000, 0.0 },
1266 { 6.1997687541430295, 1.0000000000000000, 3.0000000000000000,
1267 4.0000000000000000, 0.0 },
1268 { 11.393052728206127, 1.0000000000000000, 3.0000000000000000,
1269 5.0000000000000000, 0.0 },
1270 { 22.023821860707507, 1.0000000000000000, 3.0000000000000000,
1271 6.0000000000000000, 0.0 },
1272 { 44.434006466467693, 1.0000000000000000, 3.0000000000000000,
1273 7.0000000000000000, 0.0 },
1274 { 92.873687095054009, 1.0000000000000000, 3.0000000000000000,
1275 8.0000000000000000, 0.0 },
1276 { 199.82923277963911, 1.0000000000000000, 3.0000000000000000,
1277 9.0000000000000000, 0.0 },
1278 { 440.30931589613436, 1.0000000000000000, 3.0000000000000000,
1279 10.000000000000000, 0.0 },
1280 };
1281 const double toler023 = 2.5000000000000020e-13;
1282
1283 // Test data for a=1.0000000000000000, c=4.0000000000000000.
1284 // max(|f - f_GSL|): 8.5265128291212022e-14 at index 20
1285 // max(|f - f_GSL| / |f_GSL|): 8.2495029364968388e-16
1286 // mean(f - f_GSL): 4.6338594337330941e-15
1287 // variance(f - f_GSL): 3.4132357967227019e-28
1288 // stddev(f - f_GSL): 1.8474944645986633e-14
1289 const testcase_conf_hyperg<double>
1290 data024[21] =
1291 {
1292 { 0.24599972760042138, 1.0000000000000000, 4.0000000000000000,
1293 -10.000000000000000, 0.0 },
1294 { 0.26748869621560417, 1.0000000000000000, 4.0000000000000000,
1295 -9.0000000000000000, 0.0 },
1296 { 0.29296481879732927, 1.0000000000000000, 4.0000000000000000,
1297 -8.0000000000000000, 0.0 },
1298 { 0.32359920906182715, 1.0000000000000000, 4.0000000000000000,
1299 -7.0000000000000000, 0.0 },
1300 { 0.36104225688398156, 1.0000000000000000, 4.0000000000000000,
1301 -6.0000000000000000, 0.0 },
1302 { 0.40767657854404388, 1.0000000000000000, 4.0000000000000000,
1303 -5.0000000000000000, 0.0 },
1304 { 0.46703290885418114, 1.0000000000000000, 4.0000000000000000,
1305 -4.0000000000000000, 0.0 },
1306 { 0.54449176258491916, 1.0000000000000000, 4.0000000000000000,
1307 -3.0000000000000000, 0.0 },
1308 { 0.64849853757254050, 1.0000000000000000, 4.0000000000000000,
1309 -2.0000000000000000, 0.0 },
1310 { 0.79272335297134611, 1.0000000000000000, 4.0000000000000000,
1311 -1.0000000000000000, 0.0 },
1312 { 1.0000000000000000, 1.0000000000000000, 4.0000000000000000,
1313 0.0000000000000000, 0.0 },
1314 { 1.3096909707542714, 1.0000000000000000, 4.0000000000000000,
1315 1.0000000000000000, 0.0 },
1316 { 1.7917920741979876, 1.0000000000000000, 4.0000000000000000,
1317 2.0000000000000000, 0.0 },
1318 { 2.5745637607083705, 1.0000000000000000, 4.0000000000000000,
1319 3.0000000000000000, 0.0 },
1320 { 3.8998265656072717, 1.0000000000000000, 4.0000000000000000,
1321 4.0000000000000000, 0.0 },
1322 { 6.2358316369236775, 1.0000000000000000, 4.0000000000000000,
1323 5.0000000000000000, 0.0 },
1324 { 10.511910930353745, 1.0000000000000000, 4.0000000000000000,
1325 6.0000000000000000, 0.0 },
1326 { 18.614574199914728, 1.0000000000000000, 4.0000000000000000,
1327 7.0000000000000000, 0.0 },
1328 { 34.452632660645271, 1.0000000000000000, 4.0000000000000000,
1329 8.0000000000000000, 0.0 },
1330 { 66.276410926546333, 1.0000000000000000, 4.0000000000000000,
1331 9.0000000000000000, 0.0 },
1332 { 131.79279476884014, 1.0000000000000000, 4.0000000000000000,
1333 10.000000000000000, 0.0 },
1334 };
1335 const double toler024 = 2.5000000000000020e-13;
1336
1337 // Test data for a=1.0000000000000000, c=5.0000000000000000.
1338 // max(|f - f_GSL|): 6.3948846218409017e-14 at index 20
1339 // max(|f - f_GSL| / |f_GSL|): 1.3470358174143053e-15
1340 // mean(f - f_GSL): 4.1316156844979041e-15
1341 // variance(f - f_GSL): 1.8785030610922107e-28
1342 // stddev(f - f_GSL): 1.3705849339213571e-14
1343 const testcase_conf_hyperg<double>
1344 data025[21] =
1345 {
1346 { 0.30160010895983153, 1.0000000000000000, 5.0000000000000000,
1347 -10.000000000000000, 0.0 },
1348 { 0.32556057945973133, 1.0000000000000000, 5.0000000000000000,
1349 -9.0000000000000000, 0.0 },
1350 { 0.35351759060133559, 1.0000000000000000, 5.0000000000000000,
1351 -8.0000000000000000, 0.0 },
1352 { 0.38651473767895589, 1.0000000000000000, 5.0000000000000000,
1353 -7.0000000000000000, 0.0 },
1354 { 0.42597182874401246, 1.0000000000000000, 5.0000000000000000,
1355 -6.0000000000000000, 0.0 },
1356 { 0.47385873716476473, 1.0000000000000000, 5.0000000000000000,
1357 -5.0000000000000000, 0.0 },
1358 { 0.53296709114581886, 1.0000000000000000, 5.0000000000000000,
1359 -4.0000000000000000, 0.0 },
1360 { 0.60734431655344123, 1.0000000000000000, 5.0000000000000000,
1361 -3.0000000000000000, 0.0 },
1362 { 0.70300292485491900, 1.0000000000000000, 5.0000000000000000,
1363 -2.0000000000000000, 0.0 },
1364 { 0.82910658811461568, 1.0000000000000000, 5.0000000000000000,
1365 -1.0000000000000000, 0.0 },
1366 { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
1367 0.0000000000000000, 0.0 },
1368 { 1.2387638830170857, 1.0000000000000000, 5.0000000000000000,
1369 1.0000000000000000, 0.0 },
1370 { 1.5835841483959754, 1.0000000000000000, 5.0000000000000000,
1371 2.0000000000000000, 0.0 },
1372 { 2.0994183476111612, 1.0000000000000000, 5.0000000000000000,
1373 3.0000000000000000, 0.0 },
1374 { 2.8998265656072730, 1.0000000000000000, 5.0000000000000000,
1375 4.0000000000000000, 0.0 },
1376 { 4.1886653095389432, 1.0000000000000000, 5.0000000000000000,
1377 5.0000000000000000, 0.0 },
1378 { 6.3412739535691678, 1.0000000000000000, 5.0000000000000000,
1379 6.0000000000000000, 0.0 },
1380 { 10.065470971379845, 1.0000000000000000, 5.0000000000000000,
1381 7.0000000000000000, 0.0 },
1382 { 16.726316330322632, 1.0000000000000000, 5.0000000000000000,
1383 8.0000000000000000, 0.0 },
1384 { 29.011738189576135, 1.0000000000000000, 5.0000000000000000,
1385 9.0000000000000000, 0.0 },
1386 { 52.317117907536058, 1.0000000000000000, 5.0000000000000000,
1387 10.000000000000000, 0.0 },
1388 };
1389 const double toler025 = 2.5000000000000020e-13;
1390
1391 // Test data for a=1.0000000000000000, c=6.0000000000000000.
1392 // max(|f - f_GSL|): 8.1712414612411521e-14 at index 20
1393 // max(|f - f_GSL| / |f_GSL|): 3.1846065384904241e-15
1394 // mean(f - f_GSL): 5.9529101225139347e-15
1395 // variance(f - f_GSL): 3.0132388232912765e-28
1396 // stddev(f - f_GSL): 1.7358683196865125e-14
1397 const testcase_conf_hyperg<double>
1398 data026[21] =
1399 {
1400 { 0.34919994552008421, 1.0000000000000000, 6.0000000000000000,
1401 -10.000000000000000, 0.0 },
1402 { 0.37468856696681579, 1.0000000000000000, 6.0000000000000000,
1403 -9.0000000000000000, 0.0 },
1404 { 0.40405150587416555, 1.0000000000000000, 6.0000000000000000,
1405 -8.0000000000000000, 0.0 },
1406 { 0.43820375880074558, 1.0000000000000000, 6.0000000000000000,
1407 -7.0000000000000000, 0.0 },
1408 { 0.47835680937998981, 1.0000000000000000, 6.0000000000000000,
1409 -6.0000000000000000, 0.0 },
1410 { 0.52614126283523510, 1.0000000000000000, 6.0000000000000000,
1411 -5.0000000000000000, 0.0 },
1412 { 0.58379113606772659, 1.0000000000000000, 6.0000000000000000,
1413 -4.0000000000000000, 0.0 },
1414 { 0.65442613907759817, 1.0000000000000000, 6.0000000000000000,
1415 -3.0000000000000000, 0.0 },
1416 { 0.74249268786270239, 1.0000000000000000, 6.0000000000000000,
1417 -2.0000000000000000, 0.0 },
1418 { 0.85446705942692136, 1.0000000000000000, 6.0000000000000000,
1419 -1.0000000000000000, 0.0 },
1420 { 1.0000000000000000, 1.0000000000000000, 6.0000000000000000,
1421 0.0000000000000000, 0.0 },
1422 { 1.1938194150854282, 1.0000000000000000, 6.0000000000000000,
1423 1.0000000000000000, 0.0 },
1424 { 1.4589603709899384, 1.0000000000000000, 6.0000000000000000,
1425 2.0000000000000000, 0.0 },
1426 { 1.8323639126852680, 1.0000000000000000, 6.0000000000000000,
1427 3.0000000000000000, 0.0 },
1428 { 2.3747832070090902, 1.0000000000000000, 6.0000000000000000,
1429 4.0000000000000000, 0.0 },
1430 { 3.1886653095389423, 1.0000000000000000, 6.0000000000000000,
1431 5.0000000000000000, 0.0 },
1432 { 4.4510616279743056, 1.0000000000000000, 6.0000000000000000,
1433 6.0000000000000000, 0.0 },
1434 { 6.4753364081284603, 1.0000000000000000, 6.0000000000000000,
1435 7.0000000000000000, 0.0 },
1436 { 9.8289477064516362, 1.0000000000000000, 6.0000000000000000,
1437 8.0000000000000000, 0.0 },
1438 { 15.562076771986721, 1.0000000000000000, 6.0000000000000000,
1439 9.0000000000000000, 0.0 },
1440 { 25.658558953767979, 1.0000000000000000, 6.0000000000000000,
1441 10.000000000000000, 0.0 },
1442 };
1443 const double toler026 = 2.5000000000000020e-13;
1444
1445 // Test data for a=1.0000000000000000, c=7.0000000000000000.
1446 // max(|f - f_GSL|): 4.6185277824406512e-14 at index 20
1447 // max(|f - f_GSL| / |f_GSL|): 3.1216529394518888e-15
1448 // mean(f - f_GSL): 1.1710209521641532e-15
1449 // variance(f - f_GSL): 1.0637987439241148e-28
1450 // stddev(f - f_GSL): 1.0314061973461835e-14
1451 const testcase_conf_hyperg<double>
1452 data027[21] =
1453 {
1454 { 0.39048003268794934, 1.0000000000000000, 7.0000000000000000,
1455 -10.000000000000000, 0.0 },
1456 { 0.41687428868878917, 1.0000000000000000, 7.0000000000000000,
1457 -9.0000000000000000, 0.0 },
1458 { 0.44696137059437591, 1.0000000000000000, 7.0000000000000000,
1459 -8.0000000000000000, 0.0 },
1460 { 0.48153963531364674, 1.0000000000000000, 7.0000000000000000,
1461 -7.0000000000000000, 0.0 },
1462 { 0.52164319062001030, 1.0000000000000000, 7.0000000000000000,
1463 -6.0000000000000000, 0.0 },
1464 { 0.56863048459771781, 1.0000000000000000, 7.0000000000000000,
1465 -5.0000000000000000, 0.0 },
1466 { 0.62431329589841034, 1.0000000000000000, 7.0000000000000000,
1467 -4.0000000000000000, 0.0 },
1468 { 0.69114772184480389, 1.0000000000000000, 7.0000000000000000,
1469 -3.0000000000000000, 0.0 },
1470 { 0.77252193641189282, 1.0000000000000000, 7.0000000000000000,
1471 -2.0000000000000000, 0.0 },
1472 { 0.87319764343847150, 1.0000000000000000, 7.0000000000000000,
1473 -1.0000000000000000, 0.0 },
1474 { 1.0000000000000000, 1.0000000000000000, 7.0000000000000000,
1475 0.0000000000000000, 0.0 },
1476 { 1.1629164905125695, 1.0000000000000000, 7.0000000000000000,
1477 1.0000000000000000, 0.0 },
1478 { 1.3768811129698151, 1.0000000000000000, 7.0000000000000000,
1479 2.0000000000000000, 0.0 },
1480 { 1.6647278253705360, 1.0000000000000000, 7.0000000000000000,
1481 3.0000000000000000, 0.0 },
1482 { 2.0621748105136359, 1.0000000000000000, 7.0000000000000000,
1483 4.0000000000000000, 0.0 },
1484 { 2.6263983714467289, 1.0000000000000000, 7.0000000000000000,
1485 5.0000000000000000, 0.0 },
1486 { 3.4510616279743087, 1.0000000000000000, 7.0000000000000000,
1487 6.0000000000000000, 0.0 },
1488 { 4.6931454926815457, 1.0000000000000000, 7.0000000000000000,
1489 7.0000000000000000, 0.0 },
1490 { 6.6217107798387467, 1.0000000000000000, 7.0000000000000000,
1491 8.0000000000000000, 0.0 },
1492 { 9.7080511813245050, 1.0000000000000000, 7.0000000000000000,
1493 9.0000000000000000, 0.0 },
1494 { 14.795135372260791, 1.0000000000000000, 7.0000000000000000,
1495 10.000000000000000, 0.0 },
1496 };
1497 const double toler027 = 2.5000000000000020e-13;
1498
1499 // Test data for a=1.0000000000000000, c=8.0000000000000000.
1500 // max(|f - f_GSL|): 1.5099033134902129e-14 at index 18
1501 // max(|f - f_GSL| / |f_GSL|): 3.0695349768517519e-15
1502 // mean(f - f_GSL): -2.2997476938663959e-16
1503 // variance(f - f_GSL): 4.3587679517313822e-30
1504 // stddev(f - f_GSL): 2.0877662588832549e-15
1505 const testcase_conf_hyperg<double>
1506 data028[21] =
1507 {
1508 { 0.42666397711843551, 1.0000000000000000, 8.0000000000000000,
1509 -10.000000000000000, 0.0 },
1510 { 0.45354221990871935, 1.0000000000000000, 8.0000000000000000,
1511 -9.0000000000000000, 0.0 },
1512 { 0.48390880072992098, 1.0000000000000000, 8.0000000000000000,
1513 -8.0000000000000000, 0.0 },
1514 { 0.51846036468635348, 1.0000000000000000, 8.0000000000000000,
1515 -7.0000000000000000, 0.0 },
1516 { 0.55808294427665472, 1.0000000000000000, 8.0000000000000000,
1517 -6.0000000000000000, 0.0 },
1518 { 0.60391732156319500, 1.0000000000000000, 8.0000000000000000,
1519 -5.0000000000000000, 0.0 },
1520 { 0.65745173217778197, 1.0000000000000000, 8.0000000000000000,
1521 -4.0000000000000000, 0.0 },
1522 { 0.72065531569545760, 1.0000000000000000, 8.0000000000000000,
1523 -3.0000000000000000, 0.0 },
1524 { 0.79617322255837530, 1.0000000000000000, 8.0000000000000000,
1525 -2.0000000000000000, 0.0 },
1526 { 0.88761649593069913, 1.0000000000000000, 8.0000000000000000,
1527 -1.0000000000000000, 0.0 },
1528 { 1.0000000000000000, 1.0000000000000000, 8.0000000000000000,
1529 0.0000000000000000, 0.0 },
1530 { 1.1404154335879861, 1.0000000000000000, 8.0000000000000000,
1531 1.0000000000000000, 0.0 },
1532 { 1.3190838953943527, 1.0000000000000000, 8.0000000000000000,
1533 2.0000000000000000, 0.0 },
1534 { 1.5510315925312508, 1.0000000000000000, 8.0000000000000000,
1535 3.0000000000000000, 0.0 },
1536 { 1.8588059183988626, 1.0000000000000000, 8.0000000000000000,
1537 4.0000000000000000, 0.0 },
1538 { 2.2769577200254218, 1.0000000000000000, 8.0000000000000000,
1539 5.0000000000000000, 0.0 },
1540 { 2.8595718993033583, 1.0000000000000000, 8.0000000000000000,
1541 6.0000000000000000, 0.0 },
1542 { 3.6931454926815390, 1.0000000000000000, 8.0000000000000000,
1543 7.0000000000000000, 0.0 },
1544 { 4.9189969323589047, 1.0000000000000000, 8.0000000000000000,
1545 8.0000000000000000, 0.0 },
1546 { 6.7729286965857236, 1.0000000000000000, 8.0000000000000000,
1547 9.0000000000000000, 0.0 },
1548 { 9.6565947605825802, 1.0000000000000000, 8.0000000000000000,
1549 10.000000000000000, 0.0 },
1550 };
1551 const double toler028 = 2.5000000000000020e-13;
1552
1553 // Test data for a=1.0000000000000000, c=9.0000000000000000.
1554 // max(|f - f_GSL|): 2.1316282072803006e-14 at index 20
1555 // max(|f - f_GSL| / |f_GSL|): 3.0780408841975893e-15
1556 // mean(f - f_GSL): 1.6309704909374323e-15
1557 // variance(f - f_GSL): 2.0344353333944372e-29
1558 // stddev(f - f_GSL): 4.5104715201344935e-15
1559 const testcase_conf_hyperg<double>
1560 data029[21] =
1561 {
1562 { 0.45866881830525147, 1.0000000000000000, 9.0000000000000000,
1563 -10.000000000000000, 0.0 },
1564 { 0.48574024897002727, 1.0000000000000000, 9.0000000000000000,
1565 -9.0000000000000000, 0.0 },
1566 { 0.51609119927007907, 1.0000000000000000, 9.0000000000000000,
1567 -8.0000000000000000, 0.0 },
1568 { 0.55033101178702448, 1.0000000000000000, 9.0000000000000000,
1569 -7.0000000000000000, 0.0 },
1570 { 0.58922274096446048, 1.0000000000000000, 9.0000000000000000,
1571 -6.0000000000000000, 0.0 },
1572 { 0.63373228549888794, 1.0000000000000000, 9.0000000000000000,
1573 -5.0000000000000000, 0.0 },
1574 { 0.68509653564443607, 1.0000000000000000, 9.0000000000000000,
1575 -4.0000000000000000, 0.0 },
1576 { 0.74491915814544640, 1.0000000000000000, 9.0000000000000000,
1577 -3.0000000000000000, 0.0 },
1578 { 0.81530710976649901, 1.0000000000000000, 9.0000000000000000,
1579 -2.0000000000000000, 0.0 },
1580 { 0.89906803255440670, 1.0000000000000000, 9.0000000000000000,
1581 -1.0000000000000000, 0.0 },
1582 { 1.0000000000000000, 1.0000000000000000, 9.0000000000000000,
1583 0.0000000000000000, 0.0 },
1584 { 1.1233234687038898, 1.0000000000000000, 9.0000000000000000,
1585 1.0000000000000000, 0.0 },
1586 { 1.2763355815774109, 1.0000000000000000, 9.0000000000000000,
1587 2.0000000000000000, 0.0 },
1588 { 1.4694175800833351, 1.0000000000000000, 9.0000000000000000,
1589 3.0000000000000000, 0.0 },
1590 { 1.7176118367977251, 1.0000000000000000, 9.0000000000000000,
1591 4.0000000000000000, 0.0 },
1592 { 2.0431323520406743, 1.0000000000000000, 9.0000000000000000,
1593 5.0000000000000000, 0.0 },
1594 { 2.4794291990711450, 1.0000000000000000, 9.0000000000000000,
1595 6.0000000000000000, 0.0 },
1596 { 3.0778805630646149, 1.0000000000000000, 9.0000000000000000,
1597 7.0000000000000000, 0.0 },
1598 { 3.9189969323588909, 1.0000000000000000, 9.0000000000000000,
1599 8.0000000000000000, 0.0 },
1600 { 5.1314921747428537, 1.0000000000000000, 9.0000000000000000,
1601 9.0000000000000000, 0.0 },
1602 { 6.9252758084660471, 1.0000000000000000, 9.0000000000000000,
1603 10.000000000000000, 0.0 },
1604 };
1605 const double toler029 = 2.5000000000000020e-13;
1606
1607 // Test data for a=1.0000000000000000, c=10.000000000000000.
1608 // max(|f - f_GSL|): 1.5987211554602254e-14 at index 20
1609 // max(|f - f_GSL| / |f_GSL|): 2.9979310614742812e-15
1610 // mean(f - f_GSL): 7.0049786077539637e-16
1611 // variance(f - f_GSL): 1.2268389816744262e-29
1612 // stddev(f - f_GSL): 3.5026261314539785e-15
1613 const testcase_conf_hyperg<double>
1614 data030[21] =
1615 {
1616 { 0.48719806352527351, 1.0000000000000000, 10.000000000000000,
1617 -10.000000000000000, 0.0 },
1618 { 0.51425975102997290, 1.0000000000000000, 10.000000000000000,
1619 -9.0000000000000000, 0.0 },
1620 { 0.54439740082116106, 1.0000000000000000, 10.000000000000000,
1621 -8.0000000000000000, 0.0 },
1622 { 0.57814584198811136, 1.0000000000000000, 10.000000000000000,
1623 -7.0000000000000000, 0.0 },
1624 { 0.61616588855330934, 1.0000000000000000, 10.000000000000000,
1625 -6.0000000000000000, 0.0 },
1626 { 0.65928188610200156, 1.0000000000000000, 10.000000000000000,
1627 -5.0000000000000000, 0.0 },
1628 { 0.70853279480001885, 1.0000000000000000, 10.000000000000000,
1629 -4.0000000000000000, 0.0 },
1630 { 0.76524252556366068, 1.0000000000000000, 10.000000000000000,
1631 -3.0000000000000000, 0.0 },
1632 { 0.83111800605075459, 1.0000000000000000, 10.000000000000000,
1633 -2.0000000000000000, 0.0 },
1634 { 0.90838770701033944, 1.0000000000000000, 10.000000000000000,
1635 -1.0000000000000000, 0.0 },
1636 { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
1637 0.0000000000000000, 0.0 },
1638 { 1.1099112183350075, 1.0000000000000000, 10.000000000000000,
1639 1.0000000000000000, 0.0 },
1640 { 1.2435101170983485, 1.0000000000000000, 10.000000000000000,
1641 2.0000000000000000, 0.0 },
1642 { 1.4082527402500060, 1.0000000000000000, 10.000000000000000,
1643 3.0000000000000000, 0.0 },
1644 { 1.6146266327948817, 1.0000000000000000, 10.000000000000000,
1645 4.0000000000000000, 0.0 },
1646 { 1.8776382336732149, 1.0000000000000000, 10.000000000000000,
1647 5.0000000000000000, 0.0 },
1648 { 2.2191437986067180, 1.0000000000000000, 10.000000000000000,
1649 6.0000000000000000, 0.0 },
1650 { 2.6715607239402184, 1.0000000000000000, 10.000000000000000,
1651 7.0000000000000000, 0.0 },
1652 { 3.2838715489037495, 1.0000000000000000, 10.000000000000000,
1653 8.0000000000000000, 0.0 },
1654 { 4.1314921747428688, 1.0000000000000000, 10.000000000000000,
1655 9.0000000000000000, 0.0 },
1656 { 5.3327482276194447, 1.0000000000000000, 10.000000000000000,
1657 10.000000000000000, 0.0 },
1658 };
1659 const double toler030 = 2.5000000000000020e-13;
1660
1661 // Test data for a=2.0000000000000000, c=1.0000000000000000.
1662 // max(|f - f_GSL|): 1.8189894035458565e-12 at index 16
1663 // max(|f - f_GSL| / |f_GSL|): 1.2471263079384817e-14
1664 // mean(f - f_GSL): -1.4303634774011364e-13
1665 // variance(f - f_GSL): 1.1334845858631974e-27
1666 // stddev(f - f_GSL): 3.3667262821072896e-14
1667 const testcase_conf_hyperg<double>
1668 data031[20] =
1669 {
1670 { -0.00040859936786236361, 2.0000000000000000, 1.0000000000000000,
1671 -10.000000000000000, 0.0 },
1672 { -0.00098727843269343649, 2.0000000000000000, 1.0000000000000000,
1673 -9.0000000000000000, 0.0 },
1674 { -0.0023482383953175828, 2.0000000000000000, 1.0000000000000000,
1675 -8.0000000000000000, 0.0 },
1676 { -0.0054712917933270972, 2.0000000000000000, 1.0000000000000000,
1677 -7.0000000000000000, 0.0 },
1678 { -0.012393760883331793, 2.0000000000000000, 1.0000000000000000,
1679 -6.0000000000000000, 0.0 },
1680 { -0.026951787996341868, 2.0000000000000000, 1.0000000000000000,
1681 -5.0000000000000000, 0.0 },
1682 { -0.054946916666202550, 2.0000000000000000, 1.0000000000000000,
1683 -4.0000000000000000, 0.0 },
1684 { -0.099574136735727889, 2.0000000000000000, 1.0000000000000000,
1685 -3.0000000000000000, 0.0 },
1686 { -0.13533528323661270, 2.0000000000000000, 1.0000000000000000,
1687 -2.0000000000000000, 0.0 },
1688 { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
1689 0.0000000000000000, 0.0 },
1690 { 5.4365636569180911, 2.0000000000000000, 1.0000000000000000,
1691 1.0000000000000000, 0.0 },
1692 { 22.167168296791949, 2.0000000000000000, 1.0000000000000000,
1693 2.0000000000000000, 0.0 },
1694 { 80.342147692750672, 2.0000000000000000, 1.0000000000000000,
1695 3.0000000000000000, 0.0 },
1696 { 272.99075016572118, 2.0000000000000000, 1.0000000000000000,
1697 4.0000000000000000, 0.0 },
1698 { 890.47895461545954, 2.0000000000000000, 1.0000000000000000,
1699 5.0000000000000000, 0.0 },
1700 { 2824.0015544491457, 2.0000000000000000, 1.0000000000000000,
1701 6.0000000000000000, 0.0 },
1702 { 8773.0652674276680, 2.0000000000000000, 1.0000000000000000,
1703 7.0000000000000000, 0.0 },
1704 { 26828.621883375556, 2.0000000000000000, 1.0000000000000000,
1705 8.0000000000000000, 0.0 },
1706 { 81030.839275753839, 2.0000000000000000, 1.0000000000000000,
1707 9.0000000000000000, 0.0 },
1708 { 242291.12374287390, 2.0000000000000000, 1.0000000000000000,
1709 10.000000000000000, 0.0 },
1710 };
1711 const double toler031 = 1.0000000000000008e-12;
1712
1713 // Test data for a=2.0000000000000000, c=2.0000000000000000.
1714 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1715 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1716 // mean(f - f_GSL): 0.0000000000000000
1717 // variance(f - f_GSL): 0.0000000000000000
1718 // stddev(f - f_GSL): 0.0000000000000000
1719 const testcase_conf_hyperg<double>
1720 data032[21] =
1721 {
1722 { 4.5399929762484847e-05, 2.0000000000000000, 2.0000000000000000,
1723 -10.000000000000000, 0.0 },
1724 { 0.00012340980408667956, 2.0000000000000000, 2.0000000000000000,
1725 -9.0000000000000000, 0.0 },
1726 { 0.00033546262790251185, 2.0000000000000000, 2.0000000000000000,
1727 -8.0000000000000000, 0.0 },
1728 { 0.00091188196555451624, 2.0000000000000000, 2.0000000000000000,
1729 -7.0000000000000000, 0.0 },
1730 { 0.0024787521766663585, 2.0000000000000000, 2.0000000000000000,
1731 -6.0000000000000000, 0.0 },
1732 { 0.0067379469990854670, 2.0000000000000000, 2.0000000000000000,
1733 -5.0000000000000000, 0.0 },
1734 { 0.018315638888734182, 2.0000000000000000, 2.0000000000000000,
1735 -4.0000000000000000, 0.0 },
1736 { 0.049787068367863944, 2.0000000000000000, 2.0000000000000000,
1737 -3.0000000000000000, 0.0 },
1738 { 0.13533528323661270, 2.0000000000000000, 2.0000000000000000,
1739 -2.0000000000000000, 0.0 },
1740 { 0.36787944117144228, 2.0000000000000000, 2.0000000000000000,
1741 -1.0000000000000000, 0.0 },
1742 { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
1743 0.0000000000000000, 0.0 },
1744 { 2.7182818284590455, 2.0000000000000000, 2.0000000000000000,
1745 1.0000000000000000, 0.0 },
1746 { 7.3890560989306504, 2.0000000000000000, 2.0000000000000000,
1747 2.0000000000000000, 0.0 },
1748 { 20.085536923187668, 2.0000000000000000, 2.0000000000000000,
1749 3.0000000000000000, 0.0 },
1750 { 54.598150033144236, 2.0000000000000000, 2.0000000000000000,
1751 4.0000000000000000, 0.0 },
1752 { 148.41315910257660, 2.0000000000000000, 2.0000000000000000,
1753 5.0000000000000000, 0.0 },
1754 { 403.42879349273511, 2.0000000000000000, 2.0000000000000000,
1755 6.0000000000000000, 0.0 },
1756 { 1096.6331584284585, 2.0000000000000000, 2.0000000000000000,
1757 7.0000000000000000, 0.0 },
1758 { 2980.9579870417283, 2.0000000000000000, 2.0000000000000000,
1759 8.0000000000000000, 0.0 },
1760 { 8103.0839275753842, 2.0000000000000000, 2.0000000000000000,
1761 9.0000000000000000, 0.0 },
1762 { 22026.465794806718, 2.0000000000000000, 2.0000000000000000,
1763 10.000000000000000, 0.0 },
1764 };
1765 const double toler032 = 2.5000000000000020e-13;
1766
1767 // Test data for a=2.0000000000000000, c=3.0000000000000000.
1768 // max(|f - f_GSL|): 9.0949470177292824e-13 at index 20
1769 // max(|f - f_GSL| / |f_GSL|): 3.7963989072999328e-15
1770 // mean(f - f_GSL): -6.7995212634944630e-14
1771 // variance(f - f_GSL): 3.7176372986523090e-26
1772 // stddev(f - f_GSL): 1.9281175531207399e-13
1773 const testcase_conf_hyperg<double>
1774 data033[21] =
1775 {
1776 { 0.019990012015452252, 2.0000000000000000, 3.0000000000000000,
1777 -10.000000000000000, 0.0 },
1778 { 0.024660886468126749, 2.0000000000000000, 3.0000000000000000,
1779 -9.0000000000000000, 0.0 },
1780 { 0.031155651135902421, 2.0000000000000000, 3.0000000000000000,
1781 -8.0000000000000000, 0.0 },
1782 { 0.040518569154104643, 2.0000000000000000, 3.0000000000000000,
1783 -7.0000000000000000, 0.0 },
1784 { 0.054591596375740861, 2.0000000000000000, 3.0000000000000000,
1785 -6.0000000000000000, 0.0 },
1786 { 0.076765785440438966, 2.0000000000000000, 3.0000000000000000,
1787 -5.0000000000000000, 0.0 },
1788 { 0.11355272569454114, 2.0000000000000000, 3.0000000000000000,
1789 -4.0000000000000000, 0.0 },
1790 { 0.17796705033967650, 2.0000000000000000, 3.0000000000000000,
1791 -3.0000000000000000, 0.0 },
1792 { 0.29699707514508100, 2.0000000000000000, 3.0000000000000000,
1793 -2.0000000000000000, 0.0 },
1794 { 0.52848223531423089, 2.0000000000000000, 3.0000000000000000,
1795 -1.0000000000000000, 0.0 },
1796 { 1.0000000000000000, 2.0000000000000000, 3.0000000000000000,
1797 0.0000000000000000, 0.0 },
1798 { 2.0000000000000004, 2.0000000000000000, 3.0000000000000000,
1799 1.0000000000000000, 0.0 },
1800 { 4.1945280494653261, 2.0000000000000000, 3.0000000000000000,
1801 2.0000000000000000, 0.0 },
1802 { 9.1491275214167409, 2.0000000000000000, 3.0000000000000000,
1803 3.0000000000000000, 0.0 },
1804 { 20.599306262429089, 2.0000000000000000, 3.0000000000000000,
1805 4.0000000000000000, 0.0 },
1806 { 47.572210912824517, 2.0000000000000000, 3.0000000000000000,
1807 5.0000000000000000, 0.0 },
1808 { 112.11910930353754, 2.0000000000000000, 3.0000000000000000,
1809 6.0000000000000000, 0.0 },
1810 { 268.60403879880613, 2.0000000000000000, 3.0000000000000000,
1811 7.0000000000000000, 0.0 },
1812 { 652.11580966537815, 2.0000000000000000, 3.0000000000000000,
1813 8.0000000000000000, 0.0 },
1814 { 1600.6338622371129, 2.0000000000000000, 3.0000000000000000,
1815 9.0000000000000000, 0.0 },
1816 { 3964.7838430652091, 2.0000000000000000, 3.0000000000000000,
1817 10.000000000000000, 0.0 },
1818 };
1819 const double toler033 = 2.5000000000000020e-13;
1820
1821 // Test data for a=2.0000000000000000, c=4.0000000000000000.
1822 // max(|f - f_GSL|): 2.2737367544323206e-12 at index 20
1823 // max(|f - f_GSL| / |f_GSL|): 2.2177310789485502e-15
1824 // mean(f - f_GSL): -1.3190936438383412e-13
1825 // variance(f - f_GSL): 2.4083978986000037e-25
1826 // stddev(f - f_GSL): 4.9075430702134478e-13
1827 const testcase_conf_hyperg<double>
1828 data034[21] =
1829 {
1830 { 0.048003268794942940, 2.0000000000000000, 4.0000000000000000,
1831 -10.000000000000000, 0.0 },
1832 { 0.057624341628353531, 2.0000000000000000, 4.0000000000000000,
1833 -9.0000000000000000, 0.0 },
1834 { 0.070351812026707330, 2.0000000000000000, 4.0000000000000000,
1835 -8.0000000000000000, 0.0 },
1836 { 0.087607118443556675, 2.0000000000000000, 4.0000000000000000,
1837 -7.0000000000000000, 0.0 },
1838 { 0.11166194492814810, 2.0000000000000000, 4.0000000000000000,
1839 -6.0000000000000000, 0.0 },
1840 { 0.14626395019169272, 2.0000000000000000, 4.0000000000000000,
1841 -5.0000000000000000, 0.0 },
1842 { 0.19780254687491297, 2.0000000000000000, 4.0000000000000000,
1843 -4.0000000000000000, 0.0 },
1844 { 0.27754118707540437, 2.0000000000000000, 4.0000000000000000,
1845 -3.0000000000000000, 0.0 },
1846 { 0.40600584970983794, 2.0000000000000000, 4.0000000000000000,
1847 -2.0000000000000000, 0.0 },
1848 { 0.62182994108596157, 2.0000000000000000, 4.0000000000000000,
1849 -1.0000000000000000, 0.0 },
1850 { 1.0000000000000000, 2.0000000000000000, 4.0000000000000000,
1851 0.0000000000000000, 0.0 },
1852 { 1.6903090292457281, 2.0000000000000000, 4.0000000000000000,
1853 1.0000000000000000, 0.0 },
1854 { 2.9999999999999987, 2.0000000000000000, 4.0000000000000000,
1855 2.0000000000000000, 0.0 },
1856 { 5.5745637607083687, 2.0000000000000000, 4.0000000000000000,
1857 3.0000000000000000, 0.0 },
1858 { 10.799653131214550, 2.0000000000000000, 4.0000000000000000,
1859 4.0000000000000000, 0.0 },
1860 { 21.707494910771032, 2.0000000000000000, 4.0000000000000000,
1861 5.0000000000000000, 0.0 },
1862 { 45.047643721415049, 2.0000000000000000, 4.0000000000000000,
1863 6.0000000000000000, 0.0 },
1864 { 96.072870999573666, 2.0000000000000000, 4.0000000000000000,
1865 7.0000000000000000, 0.0 },
1866 { 209.71579596387159, 2.0000000000000000, 4.0000000000000000,
1867 8.0000000000000000, 0.0 },
1868 { 466.93487648582487, 2.0000000000000000, 4.0000000000000000,
1869 9.0000000000000000, 0.0 },
1870 { 1057.3423581507243, 2.0000000000000000, 4.0000000000000000,
1871 10.000000000000000, 0.0 },
1872 };
1873 const double toler034 = 2.5000000000000020e-13;
1874
1875 // Test data for a=2.0000000000000000, c=5.0000000000000000.
1876 // max(|f - f_GSL|): 2.8421709430404007e-13 at index 20
1877 // max(|f - f_GSL| / |f_GSL|): 2.6284159117427726e-15
1878 // mean(f - f_GSL): 1.7819079545233762e-14
1879 // variance(f - f_GSL): 3.7258148690402422e-27
1880 // stddev(f - f_GSL): 6.1039453380909643e-14
1881 const testcase_conf_hyperg<double>
1882 data035[21] =
1883 {
1884 { 0.079198583522191404, 2.0000000000000000, 5.0000000000000000,
1885 -10.000000000000000, 0.0 },
1886 { 0.093273046483222530, 2.0000000000000000, 5.0000000000000000,
1887 -9.0000000000000000, 0.0 },
1888 { 0.11130650338531098, 2.0000000000000000, 5.0000000000000000,
1889 -8.0000000000000000, 0.0 },
1890 { 0.13485262321044020, 2.0000000000000000, 5.0000000000000000,
1891 -7.0000000000000000, 0.0 },
1892 { 0.16625354130388895, 2.0000000000000000, 5.0000000000000000,
1893 -6.0000000000000000, 0.0 },
1894 { 0.20913010268188095, 2.0000000000000000, 5.0000000000000000,
1895 -5.0000000000000000, 0.0 },
1896 { 0.26923036197926808, 2.0000000000000000, 5.0000000000000000,
1897 -4.0000000000000000, 0.0 },
1898 { 0.35593410067935288, 2.0000000000000000, 5.0000000000000000,
1899 -3.0000000000000000, 0.0 },
1900 { 0.48498537572540468, 2.0000000000000000, 5.0000000000000000,
1901 -2.0000000000000000, 0.0 },
1902 { 0.68357364754153715, 2.0000000000000000, 5.0000000000000000,
1903 -1.0000000000000000, 0.0 },
1904 { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
1905 0.0000000000000000, 0.0 },
1906 { 1.5224722339658285, 2.0000000000000000, 5.0000000000000000,
1907 1.0000000000000000, 0.0 },
1908 { 2.4164158516040235, 2.0000000000000000, 5.0000000000000000,
1909 2.0000000000000000, 0.0 },
1910 { 4.0000000000000009, 2.0000000000000000, 5.0000000000000000,
1911 3.0000000000000000, 0.0 },
1912 { 6.8998265656072721, 2.0000000000000000, 5.0000000000000000,
1913 4.0000000000000000, 0.0 },
1914 { 12.377330619077886, 2.0000000000000000, 5.0000000000000000,
1915 5.0000000000000000, 0.0 },
1916 { 23.023821860707503, 2.0000000000000000, 5.0000000000000000,
1917 6.0000000000000000, 0.0 },
1918 { 44.261883885519381, 2.0000000000000000, 5.0000000000000000,
1919 7.0000000000000000, 0.0 },
1920 { 87.631581651613160, 2.0000000000000000, 5.0000000000000000,
1921 8.0000000000000000, 0.0 },
1922 { 178.07042913745681, 2.0000000000000000, 5.0000000000000000,
1923 9.0000000000000000, 0.0 },
1924 { 370.21982535275242, 2.0000000000000000, 5.0000000000000000,
1925 10.000000000000000, 0.0 },
1926 };
1927 const double toler035 = 2.5000000000000020e-13;
1928
1929 // Test data for a=2.0000000000000000, c=6.0000000000000000.
1930 // max(|f - f_GSL|): 5.1159076974727213e-13 at index 20
1931 // max(|f - f_GSL| / |f_GSL|): 3.2185367269036845e-15
1932 // mean(f - f_GSL): 3.1802602879202997e-14
1933 // variance(f - f_GSL): 1.2085325965997663e-26
1934 // stddev(f - f_GSL): 1.0993327961085153e-13
1935 const testcase_conf_hyperg<double>
1936 data036[21] =
1937 {
1938 { 0.11120076271882003, 2.0000000000000000, 6.0000000000000000,
1939 -10.000000000000000, 0.0 },
1940 { 0.12904862943139384, 2.0000000000000000, 6.0000000000000000,
1941 -9.0000000000000000, 0.0 },
1942 { 0.15138192951001525, 2.0000000000000000, 6.0000000000000000,
1943 -8.0000000000000000, 0.0 },
1944 { 0.17975865319179699, 2.0000000000000000, 6.0000000000000000,
1945 -7.0000000000000000, 0.0 },
1946 { 0.21643190620010283, 2.0000000000000000, 6.0000000000000000,
1947 -6.0000000000000000, 0.0 },
1948 { 0.26472863448288397, 2.0000000000000000, 6.0000000000000000,
1949 -5.0000000000000000, 0.0 },
1950 { 0.32967091145818839, 2.0000000000000000, 6.0000000000000000,
1951 -4.0000000000000000, 0.0 },
1952 { 0.41901702645681349, 2.0000000000000000, 6.0000000000000000,
1953 -3.0000000000000000, 0.0 },
1954 { 0.54504387282378575, 2.0000000000000000, 6.0000000000000000,
1955 -2.0000000000000000, 0.0 },
1956 { 0.72766470286539298, 2.0000000000000000, 6.0000000000000000,
1957 -1.0000000000000000, 0.0 },
1958 { 1.0000000000000000, 2.0000000000000000, 6.0000000000000000,
1959 0.0000000000000000, 0.0 },
1960 { 1.4185417547437151, 2.0000000000000000, 6.0000000000000000,
1961 1.0000000000000000, 0.0 },
1962 { 2.0820792580201224, 2.0000000000000000, 6.0000000000000000,
1963 2.0000000000000000, 0.0 },
1964 { 3.1676360873147318, 2.0000000000000000, 6.0000000000000000,
1965 3.0000000000000000, 0.0 },
1966 { 4.9999999999999982, 2.0000000000000000, 6.0000000000000000,
1967 4.0000000000000000, 0.0 },
1968 { 8.1886653095389406, 2.0000000000000000, 6.0000000000000000,
1969 5.0000000000000000, 0.0 },
1970 { 13.902123255948611, 2.0000000000000000, 6.0000000000000000,
1971 6.0000000000000000, 0.0 },
1972 { 24.426009224385382, 2.0000000000000000, 6.0000000000000000,
1973 7.0000000000000000, 0.0 },
1974 { 44.315790825806545, 2.0000000000000000, 6.0000000000000000,
1975 8.0000000000000000, 0.0 },
1976 { 82.810383859933609, 2.0000000000000000, 6.0000000000000000,
1977 9.0000000000000000, 0.0 },
1978 { 158.95135372260788, 2.0000000000000000, 6.0000000000000000,
1979 10.000000000000000, 0.0 },
1980 };
1981 const double toler036 = 2.5000000000000020e-13;
1982
1983 // Test data for a=2.0000000000000000, c=7.0000000000000000.
1984 // max(|f - f_GSL|): 2.1316282072803006e-13 at index 20
1985 // max(|f - f_GSL| / |f_GSL|): 2.6653456287428861e-15
1986 // mean(f - f_GSL): 7.4160254656806591e-15
1987 // variance(f - f_GSL): 2.2224165474381737e-27
1988 // stddev(f - f_GSL): 4.7142513164214887e-14
1989 const testcase_conf_hyperg<double>
1990 data037[21] =
1991 {
1992 { 0.14279950968075855, 2.0000000000000000, 7.0000000000000000,
1993 -10.000000000000000, 0.0 },
1994 { 0.16375995835694801, 2.0000000000000000, 7.0000000000000000,
1995 -9.0000000000000000, 0.0 },
1996 { 0.18950218227311263, 2.0000000000000000, 7.0000000000000000,
1997 -8.0000000000000000, 0.0 },
1998 { 0.22152437623624174, 2.0000000000000000, 7.0000000000000000,
1999 -7.0000000000000000, 0.0 },
2000 { 0.26192490317988687, 2.0000000000000000, 7.0000000000000000,
2001 -6.0000000000000000, 0.0 },
2002 { 0.31369515402282139, 2.0000000000000000, 7.0000000000000000,
2003 -5.0000000000000000, 0.0 },
2004 { 0.38118033691430731, 2.0000000000000000, 7.0000000000000000,
2005 -4.0000000000000000, 0.0 },
2006 { 0.47081822524156886, 2.0000000000000000, 7.0000000000000000,
2007 -3.0000000000000000, 0.0 },
2008 { 0.59234644511675072, 2.0000000000000000, 7.0000000000000000,
2009 -2.0000000000000000, 0.0 },
2010 { 0.76081413936917086, 2.0000000000000000, 7.0000000000000000,
2011 -1.0000000000000000, 0.0 },
2012 { 1.0000000000000000, 2.0000000000000000, 7.0000000000000000,
2013 0.0000000000000000, 0.0 },
2014 { 1.3483340379497220, 2.0000000000000000, 7.0000000000000000,
2015 1.0000000000000000, 0.0 },
2016 { 1.8693566610905543, 2.0000000000000000, 7.0000000000000000,
2017 2.0000000000000000, 0.0 },
2018 { 2.6705443492589280, 2.0000000000000000, 7.0000000000000000,
2019 3.0000000000000000, 0.0 },
2020 { 3.9378251894863650, 2.0000000000000000, 7.0000000000000000,
2021 4.0000000000000000, 0.0 },
2022 { 6.0000000000000018, 2.0000000000000000, 7.0000000000000000,
2023 5.0000000000000000, 0.0 },
2024 { 9.4510616279743118, 2.0000000000000000, 7.0000000000000000,
2025 6.0000000000000000, 0.0 },
2026 { 15.386290985363091, 2.0000000000000000, 7.0000000000000000,
2027 7.0000000000000000, 0.0 },
2028 { 25.865132339516240, 2.0000000000000000, 7.0000000000000000,
2029 8.0000000000000000, 0.0 },
2030 { 44.832204725298020, 2.0000000000000000, 7.0000000000000000,
2031 9.0000000000000000, 0.0 },
2032 { 79.975676861303953, 2.0000000000000000, 7.0000000000000000,
2033 10.000000000000000, 0.0 },
2034 };
2035 const double toler037 = 2.5000000000000020e-13;
2036
2037 // Test data for a=2.0000000000000000, c=8.0000000000000000.
2038 // max(|f - f_GSL|): 3.9079850466805510e-14 at index 18
2039 // max(|f - f_GSL| / |f_GSL|): 2.3209326942856951e-15
2040 // mean(f - f_GSL): -1.4115692741662704e-15
2041 // variance(f - f_GSL): 1.0460771032794031e-31
2042 // stddev(f - f_GSL): 3.2343115237704035e-16
2043 const testcase_conf_hyperg<double>
2044 data038[21] =
2045 {
2046 { 0.17337636610503362, 2.0000000000000000, 8.0000000000000000,
2047 -10.000000000000000, 0.0 },
2048 { 0.19686670136921000, 2.0000000000000000, 8.0000000000000000,
2049 -9.0000000000000000, 0.0 },
2050 { 0.22527678978110538, 2.0000000000000000, 8.0000000000000000,
2051 -8.0000000000000000, 0.0 },
2052 { 0.26001525907740475, 2.0000000000000000, 8.0000000000000000,
2053 -7.0000000000000000, 0.0 },
2054 { 0.30300466868014397, 2.0000000000000000, 8.0000000000000000,
2055 -6.0000000000000000, 0.0 },
2056 { 0.35690946280485503, 2.0000000000000000, 8.0000000000000000,
2057 -5.0000000000000000, 0.0 },
2058 { 0.42548267822218039, 2.0000000000000000, 8.0000000000000000,
2059 -4.0000000000000000, 0.0 },
2060 { 0.51410215874088183, 2.0000000000000000, 8.0000000000000000,
2061 -3.0000000000000000, 0.0 },
2062 { 0.63061421953299790, 2.0000000000000000, 8.0000000000000000,
2063 -2.0000000000000000, 0.0 },
2064 { 0.78668452848510595, 2.0000000000000000, 8.0000000000000000,
2065 -1.0000000000000000, 0.0 },
2066 { 1.0000000000000000, 2.0000000000000000, 8.0000000000000000,
2067 0.0000000000000000, 0.0 },
2068 { 1.2979228320600693, 2.0000000000000000, 8.0000000000000000,
2069 1.0000000000000000, 0.0 },
2070 { 1.7236644184225898, 2.0000000000000000, 8.0000000000000000,
2071 2.0000000000000000, 0.0 },
2072 { 2.3469052224062485, 2.0000000000000000, 8.0000000000000000,
2073 3.0000000000000000, 0.0 },
2074 { 3.2823881632022749, 2.0000000000000000, 8.0000000000000000,
2075 4.0000000000000000, 0.0 },
2076 { 4.7230422799745782, 2.0000000000000000, 8.0000000000000000,
2077 5.0000000000000000, 0.0 },
2078 { 7.0000000000000009, 2.0000000000000000, 8.0000000000000000,
2079 6.0000000000000000, 0.0 },
2080 { 10.693145492681536, 2.0000000000000000, 8.0000000000000000,
2081 7.0000000000000000, 0.0 },
2082 { 16.837993864717809, 2.0000000000000000, 8.0000000000000000,
2083 8.0000000000000000, 0.0 },
2084 { 27.318786089757172, 2.0000000000000000, 8.0000000000000000,
2085 9.0000000000000000, 0.0 },
2086 { 45.626379042330321, 2.0000000000000000, 8.0000000000000000,
2087 10.000000000000000, 0.0 },
2088 };
2089 const double toler038 = 2.5000000000000020e-13;
2090
2091 // Test data for a=2.0000000000000000, c=9.0000000000000000.
2092 // max(|f - f_GSL|): 6.3948846218409017e-14 at index 20
2093 // max(|f - f_GSL| / |f_GSL|): 2.2223112918020366e-15
2094 // mean(f - f_GSL): 5.1453550415068266e-15
2095 // variance(f - f_GSL): 1.8153715516608073e-28
2096 // stddev(f - f_GSL): 1.3473572472291108e-14
2097 const testcase_conf_hyperg<double>
2098 data039[21] =
2099 {
2100 { 0.20263008881072142, 2.0000000000000000, 9.0000000000000000,
2101 -10.000000000000000, 0.0 },
2102 { 0.22815601647956382, 2.0000000000000000, 9.0000000000000000,
2103 -9.0000000000000000, 0.0 },
2104 { 0.25863201094881560, 2.0000000000000000, 9.0000000000000000,
2105 -8.0000000000000000, 0.0 },
2106 { 0.29536583498165569, 2.0000000000000000, 9.0000000000000000,
2107 -7.0000000000000000, 0.0 },
2108 { 0.34010436746201422, 2.0000000000000000, 9.0000000000000000,
2109 -6.0000000000000000, 0.0 },
2110 { 0.39521257401334392, 2.0000000000000000, 9.0000000000000000,
2111 -5.0000000000000000, 0.0 },
2112 { 0.46393810791120338, 2.0000000000000000, 9.0000000000000000,
2113 -4.0000000000000000, 0.0 },
2114 { 0.55080841854553553, 2.0000000000000000, 9.0000000000000000,
2115 -3.0000000000000000, 0.0 },
2116 { 0.66223601210150940, 2.0000000000000000, 9.0000000000000000,
2117 -2.0000000000000000, 0.0 },
2118 { 0.80745573956474603, 2.0000000000000000, 9.0000000000000000,
2119 -1.0000000000000000, 0.0 },
2120 { 1.0000000000000000, 2.0000000000000000, 9.0000000000000000,
2121 0.0000000000000000, 0.0 },
2122 { 1.2600591877766618, 2.0000000000000000, 9.0000000000000000,
2123 1.0000000000000000, 0.0 },
2124 { 1.6183220921129462, 2.0000000000000000, 9.0000000000000000,
2125 2.0000000000000000, 0.0 },
2126 { 2.1223296796666578, 2.0000000000000000, 9.0000000000000000,
2127 3.0000000000000000, 0.0 },
2128 { 2.8471644896068233, 2.0000000000000000, 9.0000000000000000,
2129 4.0000000000000000, 0.0 },
2130 { 3.9137352959186495, 2.0000000000000000, 9.0000000000000000,
2131 5.0000000000000000, 0.0 },
2132 { 5.5205708009288541, 2.0000000000000000, 9.0000000000000000,
2133 6.0000000000000000, 0.0 },
2134 { 7.9999999999999982, 2.0000000000000000, 9.0000000000000000,
2135 7.0000000000000000, 0.0 },
2136 { 11.918996932358892, 2.0000000000000000, 9.0000000000000000,
2137 8.0000000000000000, 0.0 },
2138 { 18.262984349485706, 2.0000000000000000, 9.0000000000000000,
2139 9.0000000000000000, 0.0 },
2140 { 28.775827425398141, 2.0000000000000000, 9.0000000000000000,
2141 10.000000000000000, 0.0 },
2142 };
2143 const double toler039 = 2.5000000000000020e-13;
2144
2145 // Test data for a=2.0000000000000000, c=10.000000000000000.
2146 // max(|f - f_GSL|): 3.5527136788005009e-14 at index 20
2147 // max(|f - f_GSL| / |f_GSL|): 1.8065720775912871e-15
2148 // mean(f - f_GSL): 1.6864816421686901e-15
2149 // variance(f - f_GSL): 6.0122471886719455e-29
2150 // stddev(f - f_GSL): 7.7538681886345901e-15
2151 const testcase_conf_hyperg<double>
2152 data040[21] =
2153 {
2154 { 0.23043485654507717, 2.0000000000000000, 10.000000000000000,
2155 -10.000000000000000, 0.0 },
2156 { 0.25758423249046342, 2.0000000000000000, 10.000000000000000,
2157 -9.0000000000000000, 0.0 },
2158 { 0.28964158686142122, 2.0000000000000000, 10.000000000000000,
2159 -8.0000000000000000, 0.0 },
2160 { 0.32781237017833142, 2.0000000000000000, 10.000000000000000,
2161 -7.0000000000000000, 0.0 },
2162 { 0.37367756025366927, 2.0000000000000000, 10.000000000000000,
2163 -6.0000000000000000, 0.0 },
2164 { 0.42933548067397925, 2.0000000000000000, 10.000000000000000,
2165 -5.0000000000000000, 0.0 },
2166 { 0.49760646239977369, 2.0000000000000000, 10.000000000000000,
2167 -4.0000000000000000, 0.0 },
2168 { 0.58233221879973318, 2.0000000000000000, 10.000000000000000,
2169 -3.0000000000000000, 0.0 },
2170 { 0.68881993949245379, 2.0000000000000000, 10.000000000000000,
2171 -2.0000000000000000, 0.0 },
2172 { 0.82451063690694526, 2.0000000000000000, 10.000000000000000,
2173 -1.0000000000000000, 0.0 },
2174 { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
2175 0.0000000000000000, 0.0 },
2176 { 1.2306214716549471, 2.0000000000000000, 10.000000000000000,
2177 1.0000000000000000, 0.0 },
2178 { 1.5389392974099088, 2.0000000000000000, 10.000000000000000,
2179 2.0000000000000000, 0.0 },
2180 { 1.9587362987499699, 2.0000000000000000, 10.000000000000000,
2181 3.0000000000000000, 0.0 },
2182 { 2.5414934688204727, 2.0000000000000000, 10.000000000000000,
2183 4.0000000000000000, 0.0 },
2184 { 3.3670852989803555, 2.0000000000000000, 10.000000000000000,
2185 5.0000000000000000, 0.0 },
2186 { 4.5617124027865650, 2.0000000000000000, 10.000000000000000,
2187 6.0000000000000000, 0.0 },
2188 { 6.3284392760597825, 2.0000000000000000, 10.000000000000000,
2189 7.0000000000000000, 0.0 },
2190 { 9.0000000000000036, 2.0000000000000000, 10.000000000000000,
2191 8.0000000000000000, 0.0 },
2192 { 13.131492174742865, 2.0000000000000000, 10.000000000000000,
2193 9.0000000000000000, 0.0 },
2194 { 19.665496455238888, 2.0000000000000000, 10.000000000000000,
2195 10.000000000000000, 0.0 },
2196 };
2197 const double toler040 = 2.5000000000000020e-13;
2198
2199 // Test data for a=5.0000000000000000, c=1.0000000000000000.
2200 // max(|f - f_GSL|): 1.1175870895385742e-08 at index 20
2201 // max(|f - f_GSL| / |f_GSL|): 5.3427429899548483e-12
2202 // mean(f - f_GSL): 7.1806275564715547e-10
2203 // variance(f - f_GSL): 5.7417019320980887e-18
2204 // stddev(f - f_GSL): 2.3961848701838697e-09
2205 const testcase_conf_hyperg<double>
2206 data041[21] =
2207 {
2208 { 0.00049939922738733312, 5.0000000000000000, 1.0000000000000000,
2209 -10.000000000000000, 0.0 },
2210 { -0.00057077034390089253, 5.0000000000000000, 1.0000000000000000,
2211 -9.0000000000000000, 0.0 },
2212 { -0.0032428054030576147, 5.0000000000000000, 1.0000000000000000,
2213 -8.0000000000000000, 0.0 },
2214 { -0.0078649819529077025, 5.0000000000000000, 1.0000000000000000,
2215 -7.0000000000000000, 0.0 },
2216 { -0.012393760883331793, 5.0000000000000000, 1.0000000000000000,
2217 -6.0000000000000000, 0.0 },
2218 { -0.0087031815404853934, 5.0000000000000000, 1.0000000000000000,
2219 -5.0000000000000000, 0.0 },
2220 { 0.018315638888832021, 5.0000000000000000, 1.0000000000000000,
2221 -4.0000000000000000, 0.0 },
2222 { 0.068457219005814696, 5.0000000000000000, 1.0000000000000000,
2223 -3.0000000000000000, 0.0 },
2224 { 0.045111761078875295, 5.0000000000000000, 1.0000000000000000,
2225 -2.0000000000000000, 0.0 },
2226 { -0.22992465073215118, 5.0000000000000000, 1.0000000000000000,
2227 -1.0000000000000000, 0.0 },
2228 { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
2229 0.0000000000000000, 0.0 },
2230 { 23.671704256164183, 5.0000000000000000, 1.0000000000000000,
2231 1.0000000000000000, 0.0 },
2232 { 199.50451467112745, 5.0000000000000000, 1.0000000000000000,
2233 2.0000000000000000, 0.0 },
2234 { 1232.7498286606428, 5.0000000000000000, 1.0000000000000000,
2235 3.0000000000000000, 0.0 },
2236 { 6460.7810872554019, 5.0000000000000000, 1.0000000000000000,
2237 4.0000000000000000, 0.0 },
2238 { 30480.352550691663, 5.0000000000000000, 1.0000000000000000,
2239 5.0000000000000000, 0.0 },
2240 { 133534.93064609537, 5.0000000000000000, 1.0000000000000000,
2241 6.0000000000000000, 0.0 },
2242 { 553479.89366849652, 5.0000000000000000, 1.0000000000000000,
2243 7.0000000000000000, 0.0 },
2244 { 2196966.0364497532, 5.0000000000000000, 1.0000000000000000,
2245 8.0000000000000000, 0.0 },
2246 { 8422142.8572236635, 5.0000000000000000, 1.0000000000000000,
2247 9.0000000000000000, 0.0 },
2248 { 31373029.447069697, 5.0000000000000000, 1.0000000000000000,
2249 10.000000000000000, 0.0 },
2250 };
2251 const double toler041 = 5.0000000000000034e-10;
2252
2253 // Test data for a=5.0000000000000000, c=2.0000000000000000.
2254 // max(|f - f_GSL|): 1.8626451492309570e-09 at index 20
2255 // max(|f - f_GSL| / |f_GSL|): 1.4711248979266200e-12
2256 // mean(f - f_GSL): -8.7549301031074165e-11
2257 // variance(f - f_GSL): 1.6542567669056424e-19
2258 // stddev(f - f_GSL): 4.0672555450889020e-10
2259 const testcase_conf_hyperg<double>
2260 data042[21] =
2261 {
2262 { -0.00025726626865408083, 5.0000000000000000, 2.0000000000000000,
2263 -10.000000000000000, 0.0 },
2264 { -0.00029309828470586396, 5.0000000000000000, 2.0000000000000000,
2265 -9.0000000000000000, 0.0 },
2266 { -0.00011182087596750400, 5.0000000000000000, 2.0000000000000000,
2267 -8.0000000000000000, 0.0 },
2268 { 0.00064591639226778245, 5.0000000000000000, 2.0000000000000000,
2269 -7.0000000000000000, 0.0 },
2270 { 0.0024787521766663585, 5.0000000000000000, 2.0000000000000000,
2271 -6.0000000000000000, 0.0 },
2272 { 0.0053342080409426616, 5.0000000000000000, 2.0000000000000000,
2273 -5.0000000000000000, 0.0 },
2274 { 0.0061052129629022966, 5.0000000000000000, 2.0000000000000000,
2275 -4.0000000000000000, 0.0 },
2276 { -0.0062233835459823200, 5.0000000000000000, 2.0000000000000000,
2277 -3.0000000000000000, 0.0 },
2278 { -0.045111761078871798, 5.0000000000000000, 2.0000000000000000,
2279 -2.0000000000000000, 0.0 },
2280 { -0.015328310048810216, 5.0000000000000000, 2.0000000000000000,
2281 -1.0000000000000000, 0.0 },
2282 { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
2283 0.0000000000000000, 0.0 },
2284 { 8.2681072282295975, 5.0000000000000000, 2.0000000000000000,
2285 1.0000000000000000, 0.0 },
2286 { 46.797355293227440, 5.0000000000000000, 2.0000000000000000,
2287 2.0000000000000000, 0.0 },
2288 { 223.45159827046285, 5.0000000000000000, 2.0000000000000000,
2289 3.0000000000000000, 0.0 },
2290 { 964.56731725221459, 5.0000000000000000, 2.0000000000000000,
2291 4.0000000000000000, 0.0 },
2292 { 3889.6615448133625, 5.0000000000000000, 2.0000000000000000,
2293 5.0000000000000000, 0.0 },
2294 { 14926.865359231202, 5.0000000000000000, 2.0000000000000000,
2295 6.0000000000000000, 0.0 },
2296 { 55151.509259297891, 5.0000000000000000, 2.0000000000000000,
2297 7.0000000000000000, 0.0 },
2298 { 197736.87980710136, 5.0000000000000000, 2.0000000000000000,
2299 8.0000000000000000, 0.0 },
2300 { 691800.79031674843, 5.0000000000000000, 2.0000000000000000,
2301 9.0000000000000000, 0.0 },
2302 { 2371516.1505741901, 5.0000000000000000, 2.0000000000000000,
2303 10.000000000000000, 0.0 },
2304 };
2305 const double toler042 = 1.0000000000000006e-10;
2306
2307 // Test data for a=5.0000000000000000, c=3.0000000000000000.
2308 // max(|f - f_GSL|): 5.8207660913467407e-11 at index 20
2309 // max(|f - f_GSL| / |f_GSL|): 7.8460745975133666e-13
2310 // mean(f - f_GSL): 4.8403470031658968e-12
2311 // variance(f - f_GSL): 1.4952368518503471e-22
2312 // stddev(f - f_GSL): 1.2227987781521321e-11
2313 const testcase_conf_hyperg<double>
2314 data043[21] =
2315 {
2316 { 0.00012106647936662628, 5.0000000000000000, 3.0000000000000000,
2317 -10.000000000000000, 0.0 },
2318 { 0.00021596715715168925, 5.0000000000000000, 3.0000000000000000,
2319 -9.0000000000000000, 0.0 },
2320 { 0.00033546262790251185, 5.0000000000000000, 3.0000000000000000,
2321 -8.0000000000000000, 0.0 },
2322 { 0.00037995081898104839, 5.0000000000000000, 3.0000000000000000,
2323 -7.0000000000000000, 0.0 },
2324 { 0.0000000000000000, 5.0000000000000000, 3.0000000000000000,
2325 -6.0000000000000000, 0.0 },
2326 { -0.0016844867497713668, 5.0000000000000000, 3.0000000000000000,
2327 -5.0000000000000000, 0.0 },
2328 { -0.0061052129629113926, 5.0000000000000000, 3.0000000000000000,
2329 -4.0000000000000000, 0.0 },
2330 { -0.012446767091965986, 5.0000000000000000, 3.0000000000000000,
2331 -3.0000000000000000, 0.0 },
2332 { 0.0000000000000000, 5.0000000000000000, 3.0000000000000000,
2333 -2.0000000000000000, 0.0 },
2334 { 0.15328310048810098, 5.0000000000000000, 3.0000000000000000,
2335 -1.0000000000000000, 0.0 },
2336 { 1.0000000000000000, 5.0000000000000000, 3.0000000000000000,
2337 0.0000000000000000, 0.0 },
2338 { 4.7569931998033299, 5.0000000000000000, 3.0000000000000000,
2339 1.0000000000000000, 0.0 },
2340 { 19.704149597148401, 5.0000000000000000, 3.0000000000000000,
2341 2.0000000000000000, 0.0 },
2342 { 75.320763461953760, 5.0000000000000000, 3.0000000000000000,
2343 3.0000000000000000, 0.0 },
2344 { 272.99075016572118, 5.0000000000000000, 3.0000000000000000,
2345 4.0000000000000000, 0.0 },
2346 { 952.31777090819992, 5.0000000000000000, 3.0000000000000000,
2347 5.0000000000000000, 0.0 },
2348 { 3227.4303479418809, 5.0000000000000000, 3.0000000000000000,
2349 6.0000000000000000, 0.0 },
2350 { 10692.173294677470, 5.0000000000000000, 3.0000000000000000,
2351 7.0000000000000000, 0.0 },
2352 { 34777.843182153498, 5.0000000000000000, 3.0000000000000000,
2353 8.0000000000000000, 0.0 },
2354 { 111417.40400416154, 5.0000000000000000, 3.0000000000000000,
2355 9.0000000000000000, 0.0 },
2356 { 352423.45271690749, 5.0000000000000000, 3.0000000000000000,
2357 10.000000000000000, 0.0 },
2358 };
2359 const double toler043 = 5.0000000000000028e-11;
2360
2361 // Test data for a=5.0000000000000000, c=4.0000000000000000.
2362 // max(|f - f_GSL|): 1.4551915228366852e-11 at index 20
2363 // max(|f - f_GSL| / |f_GSL|): 4.8846719461489400e-13
2364 // mean(f - f_GSL): -4.3556563012715198e-13
2365 // variance(f - f_GSL): 1.0461744613935412e-23
2366 // stddev(f - f_GSL): 3.2344620285196441e-12
2367 const testcase_conf_hyperg<double>
2368 data044[21] =
2369 {
2370 { -6.8099894643727278e-05, 5.0000000000000000, 4.0000000000000000,
2371 -10.000000000000000, 0.0 },
2372 { -0.00015426225510834944, 5.0000000000000000, 4.0000000000000000,
2373 -9.0000000000000000, 0.0 },
2374 { -0.00033546262790251185, 5.0000000000000000, 4.0000000000000000,
2375 -8.0000000000000000, 0.0 },
2376 { -0.00068391147416588716, 5.0000000000000000, 4.0000000000000000,
2377 -7.0000000000000000, 0.0 },
2378 { -0.0012393760883331792, 5.0000000000000000, 4.0000000000000000,
2379 -6.0000000000000000, 0.0 },
2380 { -0.0016844867497713668, 5.0000000000000000, 4.0000000000000000,
2381 -5.0000000000000000, 0.0 },
2382 { 0.0000000000000000, 5.0000000000000000, 4.0000000000000000,
2383 -4.0000000000000000, 0.0 },
2384 { 0.012446767091965986, 5.0000000000000000, 4.0000000000000000,
2385 -3.0000000000000000, 0.0 },
2386 { 0.067667641618306351, 5.0000000000000000, 4.0000000000000000,
2387 -2.0000000000000000, 0.0 },
2388 { 0.27590958087858170, 5.0000000000000000, 4.0000000000000000,
2389 -1.0000000000000000, 0.0 },
2390 { 1.0000000000000000, 5.0000000000000000, 4.0000000000000000,
2391 0.0000000000000000, 0.0 },
2392 { 3.3978522855738067, 5.0000000000000000, 4.0000000000000000,
2393 1.0000000000000000, 0.0 },
2394 { 11.083584148395975, 5.0000000000000000, 4.0000000000000000,
2395 2.0000000000000000, 0.0 },
2396 { 35.149689615578417, 5.0000000000000000, 4.0000000000000000,
2397 3.0000000000000000, 0.0 },
2398 { 109.19630006628847, 5.0000000000000000, 4.0000000000000000,
2399 4.0000000000000000, 0.0 },
2400 { 333.92960798079736, 5.0000000000000000, 4.0000000000000000,
2401 5.0000000000000000, 0.0 },
2402 { 1008.5719837318378, 5.0000000000000000, 4.0000000000000000,
2403 6.0000000000000000, 0.0 },
2404 { 3015.7411856782610, 5.0000000000000000, 4.0000000000000000,
2405 7.0000000000000000, 0.0 },
2406 { 8942.8739611251840, 5.0000000000000000, 4.0000000000000000,
2407 8.0000000000000000, 0.0 },
2408 { 26335.022764620000, 5.0000000000000000, 4.0000000000000000,
2409 9.0000000000000000, 0.0 },
2410 { 77092.630281823513, 5.0000000000000000, 4.0000000000000000,
2411 10.000000000000000, 0.0 },
2412 };
2413 const double toler044 = 2.5000000000000014e-11;
2414
2415 // Test data for a=5.0000000000000000, c=5.0000000000000000.
2416 // max(|f - f_GSL|): 0.0000000000000000 at index 0
2417 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
2418 // mean(f - f_GSL): 0.0000000000000000
2419 // variance(f - f_GSL): 0.0000000000000000
2420 // stddev(f - f_GSL): 0.0000000000000000
2421 const testcase_conf_hyperg<double>
2422 data045[21] =
2423 {
2424 { 4.5399929762484847e-05, 5.0000000000000000, 5.0000000000000000,
2425 -10.000000000000000, 0.0 },
2426 { 0.00012340980408667956, 5.0000000000000000, 5.0000000000000000,
2427 -9.0000000000000000, 0.0 },
2428 { 0.00033546262790251185, 5.0000000000000000, 5.0000000000000000,
2429 -8.0000000000000000, 0.0 },
2430 { 0.00091188196555451624, 5.0000000000000000, 5.0000000000000000,
2431 -7.0000000000000000, 0.0 },
2432 { 0.0024787521766663585, 5.0000000000000000, 5.0000000000000000,
2433 -6.0000000000000000, 0.0 },
2434 { 0.0067379469990854670, 5.0000000000000000, 5.0000000000000000,
2435 -5.0000000000000000, 0.0 },
2436 { 0.018315638888734182, 5.0000000000000000, 5.0000000000000000,
2437 -4.0000000000000000, 0.0 },
2438 { 0.049787068367863944, 5.0000000000000000, 5.0000000000000000,
2439 -3.0000000000000000, 0.0 },
2440 { 0.13533528323661270, 5.0000000000000000, 5.0000000000000000,
2441 -2.0000000000000000, 0.0 },
2442 { 0.36787944117144228, 5.0000000000000000, 5.0000000000000000,
2443 -1.0000000000000000, 0.0 },
2444 { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
2445 0.0000000000000000, 0.0 },
2446 { 2.7182818284590455, 5.0000000000000000, 5.0000000000000000,
2447 1.0000000000000000, 0.0 },
2448 { 7.3890560989306504, 5.0000000000000000, 5.0000000000000000,
2449 2.0000000000000000, 0.0 },
2450 { 20.085536923187668, 5.0000000000000000, 5.0000000000000000,
2451 3.0000000000000000, 0.0 },
2452 { 54.598150033144236, 5.0000000000000000, 5.0000000000000000,
2453 4.0000000000000000, 0.0 },
2454 { 148.41315910257660, 5.0000000000000000, 5.0000000000000000,
2455 5.0000000000000000, 0.0 },
2456 { 403.42879349273511, 5.0000000000000000, 5.0000000000000000,
2457 6.0000000000000000, 0.0 },
2458 { 1096.6331584284585, 5.0000000000000000, 5.0000000000000000,
2459 7.0000000000000000, 0.0 },
2460 { 2980.9579870417283, 5.0000000000000000, 5.0000000000000000,
2461 8.0000000000000000, 0.0 },
2462 { 8103.0839275753842, 5.0000000000000000, 5.0000000000000000,
2463 9.0000000000000000, 0.0 },
2464 { 22026.465794806718, 5.0000000000000000, 5.0000000000000000,
2465 10.000000000000000, 0.0 },
2466 };
2467 const double toler045 = 2.5000000000000020e-13;
2468
2469 // Test data for a=5.0000000000000000, c=6.0000000000000000.
2470 // max(|f - f_GSL|): 9.0949470177292824e-13 at index 19
2471 // max(|f - f_GSL| / |f_GSL|): 1.4519358507818386e-13
2472 // mean(f - f_GSL): 3.9988628727782860e-14
2473 // variance(f - f_GSL): 4.7329726232182936e-26
2474 // stddev(f - f_GSL): 2.1755396165591409e-13
2475 const testcase_conf_hyperg<double>
2476 data046[21] =
2477 {
2478 { 0.0011648967743076429, 5.0000000000000000, 6.0000000000000000,
2479 -10.000000000000000, 0.0 },
2480 { 0.0019205128456127479, 5.0000000000000000, 6.0000000000000000,
2481 -9.0000000000000000, 0.0 },
2482 { 0.0032972446271226324, 5.0000000000000000, 6.0000000000000000,
2483 -8.0000000000000000, 0.0 },
2484 { 0.0059047424914709015, 5.0000000000000000, 6.0000000000000000,
2485 -7.0000000000000000, 0.0 },
2486 { 0.011033078698817415, 5.0000000000000000, 6.0000000000000000,
2487 -6.0000000000000000, 0.0 },
2488 { 0.021485057853495849, 5.0000000000000000, 6.0000000000000000,
2489 -5.0000000000000000, 0.0 },
2490 { 0.043495671658608570, 5.0000000000000000, 6.0000000000000000,
2491 -4.0000000000000000, 0.0 },
2492 { 0.091228027395668113, 5.0000000000000000, 6.0000000000000000,
2493 -3.0000000000000000, 0.0 },
2494 { 0.19744881503891684, 5.0000000000000000, 6.0000000000000000,
2495 -2.0000000000000000, 0.0 },
2496 { 0.43918161928124544, 5.0000000000000000, 6.0000000000000000,
2497 -1.0000000000000000, 0.0 },
2498 { 1.0000000000000000, 5.0000000000000000, 6.0000000000000000,
2499 0.0000000000000000, 0.0 },
2500 { 2.3226822806570357, 5.0000000000000000, 6.0000000000000000,
2501 1.0000000000000000, 0.0 },
2502 { 5.4863201236633126, 5.0000000000000000, 6.0000000000000000,
2503 2.0000000000000000, 0.0 },
2504 { 13.144500379942246, 5.0000000000000000, 6.0000000000000000,
2505 3.0000000000000000, 0.0 },
2506 { 31.873916035045458, 5.0000000000000000, 6.0000000000000000,
2507 4.0000000000000000, 0.0 },
2508 { 78.086286951596321, 5.0000000000000000, 6.0000000000000000,
2509 5.0000000000000000, 0.0 },
2510 { 192.98291046720357, 5.0000000000000000, 6.0000000000000000,
2511 6.0000000000000000, 0.0 },
2512 { 480.54877204888402, 5.0000000000000000, 6.0000000000000000,
2513 7.0000000000000000, 0.0 },
2514 { 1204.4605636118315, 5.0000000000000000, 6.0000000000000000,
2515 8.0000000000000000, 0.0 },
2516 { 3036.1329048350581, 5.0000000000000000, 6.0000000000000000,
2517 9.0000000000000000, 0.0 },
2518 { 7691.6406555465046, 5.0000000000000000, 6.0000000000000000,
2519 10.000000000000000, 0.0 },
2520 };
2521 const double toler046 = 1.0000000000000006e-11;
2522
2523 // Test data for a=5.0000000000000000, c=7.0000000000000000.
2524 // max(|f - f_GSL|): 1.0004441719502211e-11 at index 20
2525 // max(|f - f_GSL| / |f_GSL|): 5.0762860793473551e-14
2526 // mean(f - f_GSL): 3.9645909323339697e-13
2527 // variance(f - f_GSL): 4.8464498327008765e-24
2528 // stddev(f - f_GSL): 2.2014653830348723e-12
2529 const testcase_conf_hyperg<double>
2530 data047[21] =
2531 {
2532 { 0.0036308901122103932, 5.0000000000000000, 7.0000000000000000,
2533 -10.000000000000000, 0.0 },
2534 { 0.0055327336019229401, 5.0000000000000000, 7.0000000000000000,
2535 -9.0000000000000000, 0.0 },
2536 { 0.0086767852656603455, 5.0000000000000000, 7.0000000000000000,
2537 -8.0000000000000000, 0.0 },
2538 { 0.014030481266326614, 5.0000000000000000, 7.0000000000000000,
2539 -7.0000000000000000, 0.0 },
2540 { 0.023426839582149212, 5.0000000000000000, 7.0000000000000000,
2541 -6.0000000000000000, 0.0 },
2542 { 0.040427681994512799, 5.0000000000000000, 7.0000000000000000,
2543 -5.0000000000000000, 0.0 },
2544 { 0.072123784177593755, 5.0000000000000000, 7.0000000000000000,
2545 -4.0000000000000000, 0.0 },
2546 { 0.13295857409596740, 5.0000000000000000, 7.0000000000000000,
2547 -3.0000000000000000, 0.0 },
2548 { 0.25298991319893882, 5.0000000000000000, 7.0000000000000000,
2549 -2.0000000000000000, 0.0 },
2550 { 0.49602437239337821, 5.0000000000000000, 7.0000000000000000,
2551 -1.0000000000000000, 0.0 },
2552 { 1.0000000000000000, 5.0000000000000000, 7.0000000000000000,
2553 0.0000000000000000, 0.0 },
2554 { 2.0681072498819240, 5.0000000000000000, 7.0000000000000000,
2555 1.0000000000000000, 0.0 },
2556 { 4.3768811129698140, 5.0000000000000000, 7.0000000000000000,
2557 2.0000000000000000, 0.0 },
2558 { 9.4566368471992224, 5.0000000000000000, 7.0000000000000000,
2559 3.0000000000000000, 0.0 },
2560 { 20.811741224531826, 5.0000000000000000, 7.0000000000000000,
2561 4.0000000000000000, 0.0 },
2562 { 46.556488803696276, 5.0000000000000000, 7.0000000000000000,
2563 5.0000000000000000, 0.0 },
2564 { 105.66804767556316, 5.0000000000000000, 7.0000000000000000,
2565 6.0000000000000000, 0.0 },
2566 { 242.93097638084427, 5.0000000000000000, 7.0000000000000000,
2567 7.0000000000000000, 0.0 },
2568 { 564.89804380887358, 5.0000000000000000, 7.0000000000000000,
2569 8.0000000000000000, 0.0 },
2570 { 1326.9606865425994, 5.0000000000000000, 7.0000000000000000,
2571 9.0000000000000000, 0.0 },
2572 { 3145.3685154983905, 5.0000000000000000, 7.0000000000000000,
2573 10.000000000000000, 0.0 },
2574 };
2575 const double toler047 = 5.0000000000000029e-12;
2576
2577 // Test data for a=5.0000000000000000, c=8.0000000000000000.
2578 // max(|f - f_GSL|): 6.2527760746888816e-13 at index 18
2579 // max(|f - f_GSL| / |f_GSL|): 3.7668660800670828e-14
2580 // mean(f - f_GSL): -1.0866266550578816e-14
2581 // variance(f - f_GSL): 1.1381792138997471e-26
2582 // stddev(f - f_GSL): 1.0668548232537298e-13
2583 const testcase_conf_hyperg<double>
2584 data048[21] =
2585 {
2586 { 0.0075295293831406113, 5.0000000000000000, 8.0000000000000000,
2587 -10.000000000000000, 0.0 },
2588 { 0.010936052508673187, 5.0000000000000000, 8.0000000000000000,
2589 -9.0000000000000000, 0.0 },
2590 { 0.016247454253649721, 5.0000000000000000, 8.0000000000000000,
2591 -8.0000000000000000, 0.0 },
2592 { 0.024729468107576008, 5.0000000000000000, 8.0000000000000000,
2593 -7.0000000000000000, 0.0 },
2594 { 0.038615775445860964, 5.0000000000000000, 8.0000000000000000,
2595 -6.0000000000000000, 0.0 },
2596 { 0.061937865588523586, 5.0000000000000000, 8.0000000000000000,
2597 -5.0000000000000000, 0.0 },
2598 { 0.10213565389690644, 5.0000000000000000, 8.0000000000000000,
2599 -4.0000000000000000, 0.0 },
2600 { 0.17324118243379236, 5.0000000000000000, 8.0000000000000000,
2601 -3.0000000000000000, 0.0 },
2602 { 0.30228316551605494, 5.0000000000000000, 8.0000000000000000,
2603 -2.0000000000000000, 0.0 },
2604 { 0.54238748802203829, 5.0000000000000000, 8.0000000000000000,
2605 -1.0000000000000000, 0.0 },
2606 { 1.0000000000000000, 5.0000000000000000, 8.0000000000000000,
2607 0.0000000000000000, 0.0 },
2608 { 1.8922997283093959, 5.0000000000000000, 8.0000000000000000,
2609 1.0000000000000000, 0.0 },
2610 { 3.6699742831126270, 5.0000000000000000, 8.0000000000000000,
2611 2.0000000000000000, 0.0 },
2612 { 7.2831842359960941, 5.0000000000000000, 8.0000000000000000,
2613 3.0000000000000000, 0.0 },
2614 { 14.764676530664770, 5.0000000000000000, 8.0000000000000000,
2615 4.0000000000000000, 0.0 },
2616 { 30.522558591756702, 5.0000000000000000, 8.0000000000000000,
2617 5.0000000000000000, 0.0 },
2618 { 64.236147093730224, 5.0000000000000000, 8.0000000000000000,
2619 6.0000000000000000, 0.0 },
2620 { 137.40503032883331, 5.0000000000000000, 8.0000000000000000,
2621 7.0000000000000000, 0.0 },
2622 { 298.29153884828770, 5.0000000000000000, 8.0000000000000000,
2623 8.0000000000000000, 0.0 },
2624 { 656.29389355002752, 5.0000000000000000, 8.0000000000000000,
2625 9.0000000000000000, 0.0 },
2626 { 1461.6183101433730, 5.0000000000000000, 8.0000000000000000,
2627 10.000000000000000, 0.0 },
2628 };
2629 const double toler048 = 2.5000000000000015e-12;
2630
2631 // Test data for a=5.0000000000000000, c=9.0000000000000000.
2632 // max(|f - f_GSL|): 1.4779288903810084e-12 at index 20
2633 // max(|f - f_GSL| / |f_GSL|): 1.3332193464342236e-14
2634 // mean(f - f_GSL): 1.0197547171765718e-13
2635 // variance(f - f_GSL): 9.9395510042396581e-26
2636 // stddev(f - f_GSL): 3.1527053468790352e-13
2637 const testcase_conf_hyperg<double>
2638 data049[21] =
2639 {
2640 { 0.012801285049305222, 5.0000000000000000, 9.0000000000000000,
2641 -10.000000000000000, 0.0 },
2642 { 0.017955923031350202, 5.0000000000000000, 9.0000000000000000,
2643 -9.0000000000000000, 0.0 },
2644 { 0.025661650371090718, 5.0000000000000000, 9.0000000000000000,
2645 -8.0000000000000000, 0.0 },
2646 { 0.037414616710204310, 5.0000000000000000, 9.0000000000000000,
2647 -7.0000000000000000, 0.0 },
2648 { 0.055720934057414885, 5.0000000000000000, 9.0000000000000000,
2649 -6.0000000000000000, 0.0 },
2650 { 0.084862956151756000, 5.0000000000000000, 9.0000000000000000,
2651 -5.0000000000000000, 0.0 },
2652 { 0.13230635170162319, 5.0000000000000000, 9.0000000000000000,
2653 -4.0000000000000000, 0.0 },
2654 { 0.21132914572142125, 5.0000000000000000, 9.0000000000000000,
2655 -3.0000000000000000, 0.0 },
2656 { 0.34601808641639625, 5.0000000000000000, 9.0000000000000000,
2657 -2.0000000000000000, 0.0 },
2658 { 0.58092180965710882, 5.0000000000000000, 9.0000000000000000,
2659 -1.0000000000000000, 0.0 },
2660 { 1.0000000000000000, 5.0000000000000000, 9.0000000000000000,
2661 0.0000000000000000, 0.0 },
2662 { 1.7643922061378634, 5.0000000000000000, 9.0000000000000000,
2663 1.0000000000000000, 0.0 },
2664 { 3.1888010096332451, 5.0000000000000000, 9.0000000000000000,
2665 2.0000000000000000, 0.0 },
2666 { 5.8981194929479273, 5.0000000000000000, 9.0000000000000000,
2667 3.0000000000000000, 0.0 },
2668 { 11.152835510393174, 5.0000000000000000, 9.0000000000000000,
2669 4.0000000000000000, 0.0 },
2670 { 21.533483453443495, 5.0000000000000000, 9.0000000000000000,
2671 5.0000000000000000, 0.0 },
2672 { 42.397145995355721, 5.0000000000000000, 9.0000000000000000,
2673 6.0000000000000000, 0.0 },
2674 { 85.010891404859976, 5.0000000000000000, 9.0000000000000000,
2675 7.0000000000000000, 0.0 },
2676 { 173.36225868739959, 5.0000000000000000, 9.0000000000000000,
2677 8.0000000000000000, 0.0 },
2678 { 359.10444177844266, 5.0000000000000000, 9.0000000000000000,
2679 9.0000000000000000, 0.0 },
2680 { 754.64844371961408, 5.0000000000000000, 9.0000000000000000,
2681 10.000000000000000, 0.0 },
2682 };
2683 const double toler049 = 1.0000000000000008e-12;
2684
2685 // Test data for a=5.0000000000000000, c=10.000000000000000.
2686 // max(|f - f_GSL|): 5.1159076974727213e-13 at index 20
2687 // max(|f - f_GSL| / |f_GSL|): 7.6335218104993094e-15
2688 // mean(f - f_GSL): -5.4482542815883388e-14
2689 // variance(f - f_GSL): 1.0969766384238795e-26
2690 // stddev(f - f_GSL): 1.0473665253500703e-13
2691 const testcase_conf_hyperg<double>
2692 data050[21] =
2693 {
2694 { 0.019313731161840469, 5.0000000000000000, 10.000000000000000,
2695 -10.000000000000000, 0.0 },
2696 { 0.026361085775183930, 5.0000000000000000, 10.000000000000000,
2697 -9.0000000000000000, 0.0 },
2698 { 0.036556772070711917, 5.0000000000000000, 10.000000000000000,
2699 -8.0000000000000000, 0.0 },
2700 { 0.051563934048344140, 5.0000000000000000, 10.000000000000000,
2701 -7.0000000000000000, 0.0 },
2702 { 0.074056625794521838, 5.0000000000000000, 10.000000000000000,
2703 -6.0000000000000000, 0.0 },
2704 { 0.10841132531381448, 5.0000000000000000, 10.000000000000000,
2705 -5.0000000000000000, 0.0 },
2706 { 0.16192115120742598, 5.0000000000000000, 10.000000000000000,
2707 -4.0000000000000000, 0.0 },
2708 { 0.24696279814742444, 5.0000000000000000, 10.000000000000000,
2709 -3.0000000000000000, 0.0 },
2710 { 0.38492640633381947, 5.0000000000000000, 10.000000000000000,
2711 -2.0000000000000000, 0.0 },
2712 { 0.61345628229723270, 5.0000000000000000, 10.000000000000000,
2713 -1.0000000000000000, 0.0 },
2714 { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
2715 0.0000000000000000, 0.0 },
2716 { 1.6675470647226096, 5.0000000000000000, 10.000000000000000,
2717 1.0000000000000000, 0.0 },
2718 { 2.8442428103603667, 5.0000000000000000, 10.000000000000000,
2719 2.0000000000000000, 0.0 },
2720 { 4.9603804008438415, 5.0000000000000000, 10.000000000000000,
2721 3.0000000000000000, 0.0 },
2722 { 8.8405953071624790, 5.0000000000000000, 10.000000000000000,
2723 4.0000000000000000, 0.0 },
2724 { 16.089667272320337, 5.0000000000000000, 10.000000000000000,
2725 5.0000000000000000, 0.0 },
2726 { 29.876575194426895, 5.0000000000000000, 10.000000000000000,
2727 6.0000000000000000, 0.0 },
2728 { 56.546719856432318, 5.0000000000000000, 10.000000000000000,
2729 7.0000000000000000, 0.0 },
2730 { 108.97420168465273, 5.0000000000000000, 10.000000000000000,
2731 8.0000000000000000, 0.0 },
2732 { 213.60609045832919, 5.0000000000000000, 10.000000000000000,
2733 9.0000000000000000, 0.0 },
2734 { 425.41323880637168, 5.0000000000000000, 10.000000000000000,
2735 10.000000000000000, 0.0 },
2736 };
2737 const double toler050 = 5.0000000000000039e-13;
2738
2739 // Test data for a=10.000000000000000, c=1.0000000000000000.
2740 // max(|f - f_GSL|): 4.7683715820312500e-06 at index 20
2741 // max(|f - f_GSL| / |f_GSL|): 3.8747416388037654e-14
2742 // mean(f - f_GSL): 2.1263162844129998e-07
2743 // variance(f - f_GSL): 1.0896252425486273e-12
2744 // stddev(f - f_GSL): 1.0438511591930276e-06
2745 const testcase_conf_hyperg<double>
2746 data051[21] =
2747 {
2748 { 0.00067155063653961272, 10.000000000000000, 1.0000000000000000,
2749 -10.000000000000000, 0.0 },
2750 { -0.00071555648905258684, 10.000000000000000, 1.0000000000000000,
2751 -9.0000000000000000, 0.0 },
2752 { -0.0035372078786207375, 10.000000000000000, 1.0000000000000000,
2753 -8.0000000000000000, 0.0 },
2754 { -0.0047884005574714370, 10.000000000000000, 1.0000000000000000,
2755 -7.0000000000000000, 0.0 },
2756 { 0.0024787521766663585, 10.000000000000000, 1.0000000000000000,
2757 -6.0000000000000000, 0.0 },
2758 { 0.018136827242522881, 10.000000000000000, 1.0000000000000000,
2759 -5.0000000000000000, 0.0 },
2760 { 0.0099686175680129968, 10.000000000000000, 1.0000000000000000,
2761 -4.0000000000000000, 0.0 },
2762 { -0.052832081031434205, 10.000000000000000, 1.0000000000000000,
2763 -3.0000000000000000, 0.0 },
2764 { 0.0010979582061523968, 10.000000000000000, 1.0000000000000000,
2765 -2.0000000000000000, 0.0 },
2766 { 0.11394854824644536, 10.000000000000000, 1.0000000000000000,
2767 -1.0000000000000000, 0.0 },
2768 { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
2769 0.0000000000000000, 0.0 },
2770 { 131.63017574352625, 10.000000000000000, 1.0000000000000000,
2771 1.0000000000000000, 0.0 },
2772 { 2431.2913698755478, 10.000000000000000, 1.0000000000000000,
2773 2.0000000000000000, 0.0 },
2774 { 27127.328899791049, 10.000000000000000, 1.0000000000000000,
2775 3.0000000000000000, 0.0 },
2776 { 232066.49977835570, 10.000000000000000, 1.0000000000000000,
2777 4.0000000000000000, 0.0 },
2778 { 1674401.3794931530, 10.000000000000000, 1.0000000000000000,
2779 5.0000000000000000, 0.0 },
2780 { 10707495.820386341, 10.000000000000000, 1.0000000000000000,
2781 6.0000000000000000, 0.0 },
2782 { 62515499.242815509, 10.000000000000000, 1.0000000000000000,
2783 7.0000000000000000, 0.0 },
2784 { 339773485.00937450, 10.000000000000000, 1.0000000000000000,
2785 8.0000000000000000, 0.0 },
2786 { 1742442474.2135217, 10.000000000000000, 1.0000000000000000,
2787 9.0000000000000000, 0.0 },
2788 { 8514625476.5462780, 10.000000000000000, 1.0000000000000000,
2789 10.000000000000000, 0.0 },
2790 };
2791 const double toler051 = 2.5000000000000015e-12;
2792
2793 // Test data for a=10.000000000000000, c=2.0000000000000000.
2794 // max(|f - f_GSL|): 1.7881393432617188e-07 at index 20
2795 // max(|f - f_GSL| / |f_GSL|): 3.0525079910466156e-12
2796 // mean(f - f_GSL): 8.5256729623701921e-09
2797 // variance(f - f_GSL): 1.5223998278110878e-15
2798 // stddev(f - f_GSL): 3.9017942383102262e-08
2799 const testcase_conf_hyperg<double>
2800 data052[21] =
2801 {
2802 { -0.00014116415550486912, 10.000000000000000, 2.0000000000000000,
2803 -10.000000000000000, 0.0 },
2804 { -0.00016988130843806985, 10.000000000000000, 2.0000000000000000,
2805 -9.0000000000000000, 0.0 },
2806 { 6.6619209703391378e-05, 10.000000000000000, 2.0000000000000000,
2807 -8.0000000000000000, 0.0 },
2808 { 0.00072582919646365740, 10.000000000000000, 2.0000000000000000,
2809 -7.0000000000000000, 0.0 },
2810 { 0.0012039653429522313, 10.000000000000000, 2.0000000000000000,
2811 -6.0000000000000000, 0.0 },
2812 { -0.00061450715370021329, 10.000000000000000, 2.0000000000000000,
2813 -5.0000000000000000, 0.0 },
2814 { -0.0053557899960354968, 10.000000000000000, 2.0000000000000000,
2815 -4.0000000000000000, 0.0 },
2816 { -0.00078903612815141473, 10.000000000000000, 2.0000000000000000,
2817 -3.0000000000000000, 0.0 },
2818 { 0.023725444715554326, 10.000000000000000, 2.0000000000000000,
2819 -2.0000000000000000, 0.0 },
2820 { -0.057297669024384761, 10.000000000000000, 2.0000000000000000,
2821 -1.0000000000000000, 0.0 },
2822 { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
2823 0.0000000000000000, 0.0 },
2824 { 34.432116659636570, 10.000000000000000, 2.0000000000000000,
2825 1.0000000000000000, 0.0 },
2826 { 432.53475371634494, 10.000000000000000, 2.0000000000000000,
2827 2.0000000000000000, 0.0 },
2828 { 3789.1768909683506, 10.000000000000000, 2.0000000000000000,
2829 3.0000000000000000, 0.0 },
2830 { 27089.676185774806, 10.000000000000000, 2.0000000000000000,
2831 4.0000000000000000, 0.0 },
2832 { 169243.72183073507, 10.000000000000000, 2.0000000000000000,
2833 5.0000000000000000, 0.0 },
2834 { 959019.40135397331, 10.000000000000000, 2.0000000000000000,
2835 6.0000000000000000, 0.0 },
2836 { 5043073.3458297960, 10.000000000000000, 2.0000000000000000,
2837 7.0000000000000000, 0.0 },
2838 { 24989309.819281481, 10.000000000000000, 2.0000000000000000,
2839 8.0000000000000000, 0.0 },
2840 { 117948708.50540228, 10.000000000000000, 2.0000000000000000,
2841 9.0000000000000000, 0.0 },
2842 { 534524325.69810420, 10.000000000000000, 2.0000000000000000,
2843 10.000000000000000, 0.0 },
2844 };
2845 const double toler052 = 2.5000000000000017e-10;
2846
2847 // Test data for a=10.000000000000000, c=3.0000000000000000.
2848 // max(|f - f_GSL|): 4.4703483581542969e-08 at index 20
2849 // max(|f - f_GSL| / |f_GSL|): 3.1351688299459524e-11
2850 // mean(f - f_GSL): -2.1241869003958644e-09
2851 // variance(f - f_GSL): 9.5182316557710101e-17
2852 // stddev(f - f_GSL): 9.7561425039669288e-09
2853 const testcase_conf_hyperg<double>
2854 data053[21] =
2855 {
2856 { 1.4973169075105230e-05, 10.000000000000000, 3.0000000000000000,
2857 -10.000000000000000, 0.0 },
2858 { 5.7627971015476266e-05, 10.000000000000000, 3.0000000000000000,
2859 -9.0000000000000000, 0.0 },
2860 { 9.5964794084281178e-05, 10.000000000000000, 3.0000000000000000,
2861 -8.0000000000000000, 0.0 },
2862 { 1.5479477810339013e-05, 10.000000000000000, 3.0000000000000000,
2863 -7.0000000000000000, 0.0 },
2864 { -0.00035410745380947978, 10.000000000000000, 3.0000000000000000,
2865 -6.0000000000000000, 0.0 },
2866 { -0.00078393993138610137, 10.000000000000000, 3.0000000000000000,
2867 -5.0000000000000000, 0.0 },
2868 { 0.00038117202625584330, 10.000000000000000, 3.0000000000000000,
2869 -4.0000000000000000, 0.0 },
2870 { 0.0045341794406447526, 10.000000000000000, 3.0000000000000000,
2871 -3.0000000000000000, 0.0 },
2872 { -0.0031029253652133403, 10.000000000000000, 3.0000000000000000,
2873 -2.0000000000000000, 0.0 },
2874 { -0.028487137061611340, 10.000000000000000, 3.0000000000000000,
2875 -1.0000000000000000, 0.0 },
2876 { 1.0000000000000000, 10.000000000000000, 3.0000000000000000,
2877 0.0000000000000000, 0.0 },
2878 { 15.691485606063274, 10.000000000000000, 3.0000000000000000,
2879 1.0000000000000000, 0.0 },
2880 { 141.71088859081416, 10.000000000000000, 3.0000000000000000,
2881 2.0000000000000000, 0.0 },
2882 { 997.55177799313731, 10.000000000000000, 3.0000000000000000,
2883 3.0000000000000000, 0.0 },
2884 { 6038.6324280926056, 10.000000000000000, 3.0000000000000000,
2885 4.0000000000000000, 0.0 },
2886 { 32946.952425437150, 10.000000000000000, 3.0000000000000000,
2887 5.0000000000000000, 0.0 },
2888 { 166431.66712118863, 10.000000000000000, 3.0000000000000000,
2889 6.0000000000000000, 0.0 },
2890 { 791818.30272061308, 10.000000000000000, 3.0000000000000000,
2891 7.0000000000000000, 0.0 },
2892 { 3589678.0198700386, 10.000000000000000, 3.0000000000000000,
2893 8.0000000000000000, 0.0 },
2894 { 15637649.698874988, 10.000000000000000, 3.0000000000000000,
2895 9.0000000000000000, 0.0 },
2896 { 65871447.346678361, 10.000000000000000, 3.0000000000000000,
2897 10.000000000000000, 0.0 },
2898 };
2899 const double toler053 = 2.5000000000000013e-09;
2900
2901 // Test data for a=10.000000000000000, c=4.0000000000000000.
2902 // max(|f - f_GSL|): 3.7252902984619141e-09 at index 20
2903 // max(|f - f_GSL| / |f_GSL|): 7.5580354912480585e-11
2904 // mean(f - f_GSL): -3.0836124902575546e-10
2905 // variance(f - f_GSL): 6.1295871676623622e-19
2906 // stddev(f - f_GSL): 7.8291680066673511e-10
2907 const testcase_conf_hyperg<double>
2908 data054[21] =
2909 {
2910 { 6.9661267889527014e-06, 10.000000000000000, 4.0000000000000000,
2911 -10.000000000000000, 0.0 },
2912 { -3.0301514396282942e-06, 10.000000000000000, 4.0000000000000000,
2913 -9.0000000000000000, 0.0 },
2914 { -3.7983599138168025e-05, 10.000000000000000, 4.0000000000000000,
2915 -8.0000000000000000, 0.0 },
2916 { -9.3615660121163871e-05, 10.000000000000000, 4.0000000000000000,
2917 -7.0000000000000000, 0.0 },
2918 { -7.0821490761895943e-05, 10.000000000000000, 4.0000000000000000,
2919 -6.0000000000000000, 0.0 },
2920 { 0.00030692863727646260, 10.000000000000000, 4.0000000000000000,
2921 -5.0000000000000000, 0.0 },
2922 { 0.0010659895649527829, 10.000000000000000, 4.0000000000000000,
2923 -4.0000000000000000, 0.0 },
2924 { -0.00042230102633456049, 10.000000000000000, 4.0000000000000000,
2925 -3.0000000000000000, 0.0 },
2926 { -0.010168047735237568, 10.000000000000000, 4.0000000000000000,
2927 -2.0000000000000000, 0.0 },
2928 { 0.036903514708782073, 10.000000000000000, 4.0000000000000000,
2929 -1.0000000000000000, 0.0 },
2930 { 1.0000000000000000, 10.000000000000000, 4.0000000000000000,
2931 0.0000000000000000, 0.0 },
2932 { 9.3384756433213987, 10.000000000000000, 4.0000000000000000,
2933 1.0000000000000000, 0.0 },
2934 { 63.905561372021388, 10.000000000000000, 4.0000000000000000,
2935 2.0000000000000000, 0.0 },
2936 { 370.08498456728779, 10.000000000000000, 4.0000000000000000,
2937 3.0000000000000000, 0.0 },
2938 { 1922.9526217493540, 10.000000000000000, 4.0000000000000000,
2939 4.0000000000000000, 0.0 },
2940 { 9245.0380014351485, 10.000000000000000, 4.0000000000000000,
2941 5.0000000000000000, 0.0 },
2942 { 41898.961838459785, 10.000000000000000, 4.0000000000000000,
2943 6.0000000000000000, 0.0 },
2944 { 181211.14084739226, 10.000000000000000, 4.0000000000000000,
2945 7.0000000000000000, 0.0 },
2946 { 754384.25570692308, 10.000000000000000, 4.0000000000000000,
2947 8.0000000000000000, 0.0 },
2948 { 3042060.4915799876, 10.000000000000000, 4.0000000000000000,
2949 9.0000000000000000, 0.0 },
2950 { 11939626.424402930, 10.000000000000000, 4.0000000000000000,
2951 10.000000000000000, 0.0 },
2952 };
2953 const double toler054 = 5.0000000000000026e-09;
2954
2955 // Test data for a=10.000000000000000, c=5.0000000000000000.
2956 // max(|f - f_GSL|): 1.1641532182693481e-10 at index 19
2957 // max(|f - f_GSL| / |f_GSL|): 4.6733947661248822e-11
2958 // mean(f - f_GSL): -5.7681855797857804e-12
2959 // variance(f - f_GSL): 1.7467781563495526e-24
2960 // stddev(f - f_GSL): 1.3216573520960538e-12
2961 const testcase_conf_hyperg<double>
2962 data055[21] =
2963 {
2964 { -6.2454929831989734e-06, 10.000000000000000, 5.0000000000000000,
2965 -10.000000000000000, 0.0 },
2966 { -1.1459481808048817e-05, 10.000000000000000, 5.0000000000000000,
2967 -9.0000000000000000, 0.0 },
2968 { -8.1646988801669512e-06, 10.000000000000000, 5.0000000000000000,
2969 -8.0000000000000000, 0.0 },
2970 { 3.1240400671775088e-05, 10.000000000000000, 5.0000000000000000,
2971 -7.0000000000000000, 0.0 },
2972 { 0.00014164298152379191, 10.000000000000000, 5.0000000000000000,
2973 -6.0000000000000000, 0.0 },
2974 { 0.00023172833594738382, 10.000000000000000, 5.0000000000000000,
2975 -5.0000000000000000, 0.0 },
2976 { -0.00036825094062005215, 10.000000000000000, 5.0000000000000000,
2977 -4.0000000000000000, 0.0 },
2978 { -0.0030227862937631683, 10.000000000000000, 5.0000000000000000,
2979 -3.0000000000000000, 0.0 },
2980 { -0.00028642387986584918, 10.000000000000000, 5.0000000000000000,
2981 -2.0000000000000000, 0.0 },
2982 { 0.10617896040159878, 10.000000000000000, 5.0000000000000000,
2983 -1.0000000000000000, 0.0 },
2984 { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
2985 0.0000000000000000, 0.0 },
2986 { 6.4803694966028269, 10.000000000000000, 5.0000000000000000,
2987 1.0000000000000000, 0.0 },
2988 { 35.201619637445276, 10.000000000000000, 5.0000000000000000,
2989 2.0000000000000000, 0.0 },
2990 { 171.58787257237464, 10.000000000000000, 5.0000000000000000,
2991 3.0000000000000000, 0.0 },
2992 { 775.87148867205678, 10.000000000000000, 5.0000000000000000,
2993 4.0000000000000000, 0.0 },
2994 { 3317.4071019773678, 10.000000000000000, 5.0000000000000000,
2995 5.0000000000000000, 0.0 },
2996 { 13578.260535269774, 10.000000000000000, 5.0000000000000000,
2997 6.0000000000000000, 0.0 },
2998 { 53651.761875039716, 10.000000000000000, 5.0000000000000000,
2999 7.0000000000000000, 0.0 },
3000 { 205900.60390283042, 10.000000000000000, 5.0000000000000000,
3001 8.0000000000000000, 0.0 },
3002 { 770979.49612334219, 10.000000000000000, 5.0000000000000000,
3003 9.0000000000000000, 0.0 },
3004 { 2826613.2348531331, 10.000000000000000, 5.0000000000000000,
3005 10.000000000000000, 0.0 },
3006 };
3007 const double toler055 = 2.5000000000000013e-09;
3008
3009 // Test data for a=10.000000000000000, c=6.0000000000000000.
3010 // max(|f - f_GSL|): 2.3283064365386963e-10 at index 20
3011 // max(|f - f_GSL| / |f_GSL|): 2.5542822249778647e-10
3012 // mean(f - f_GSL): -1.6360259531513281e-11
3013 // variance(f - f_GSL): 2.4601199281092265e-21
3014 // stddev(f - f_GSL): 4.9599596047843236e-11
3015 const testcase_conf_hyperg<double>
3016 data056[21] =
3017 {
3018 { 9.6084507433830306e-07, 10.000000000000000, 6.0000000000000000,
3019 -10.000000000000000, 0.0 },
3020 { 7.7131127554174726e-06, 10.000000000000000, 6.0000000000000000,
3021 -9.0000000000000000, 0.0 },
3022 { 2.3074149009167486e-05, 10.000000000000000, 6.0000000000000000,
3023 -8.0000000000000000, 0.0 },
3024 { 4.0105919781332888e-05, 10.000000000000000, 6.0000000000000000,
3025 -7.0000000000000000, 0.0 },
3026 { -1.0325734976052423e-20, 10.000000000000000, 6.0000000000000000,
3027 -6.0000000000000000, 0.0 },
3028 { -0.00029188857701064686, 10.000000000000000, 6.0000000000000000,
3029 -5.0000000000000000, 0.0 },
3030 { -0.0010659895649527829, 10.000000000000000, 6.0000000000000000,
3031 -4.0000000000000000, 0.0 },
3032 { -0.00044452739614164207, 10.000000000000000, 6.0000000000000000,
3033 -3.0000000000000000, 0.0 },
3034 { 0.020049671590609285, 10.000000000000000, 6.0000000000000000,
3035 -2.0000000000000000, 0.0 },
3036 { 0.17092282236966808, 10.000000000000000, 6.0000000000000000,
3037 -1.0000000000000000, 0.0 },
3038 { 1.0000000000000000, 10.000000000000000, 6.0000000000000000,
3039 0.0000000000000000, 0.0 },
3040 { 4.9520550902714575, 10.000000000000000, 6.0000000000000000,
3041 1.0000000000000000, 0.0 },
3042 { 22.206263831706924, 10.000000000000000, 6.0000000000000000,
3043 2.0000000000000000, 0.0 },
3044 { 93.074943420842843, 10.000000000000000, 6.0000000000000000,
3045 3.0000000000000000, 0.0 },
3046 { 371.20964440523989, 10.000000000000000, 6.0000000000000000,
3047 4.0000000000000000, 0.0 },
3048 { 1424.6976175888547, 10.000000000000000, 6.0000000000000000,
3049 5.0000000000000000, 0.0 },
3050 { 5302.2070001902330, 10.000000000000000, 6.0000000000000000,
3051 6.0000000000000000, 0.0 },
3052 { 19239.311823447424, 10.000000000000000, 6.0000000000000000,
3053 7.0000000000000000, 0.0 },
3054 { 68341.221999215923, 10.000000000000000, 6.0000000000000000,
3055 8.0000000000000000, 0.0 },
3056 { 238389.83519072225, 10.000000000000000, 6.0000000000000000,
3057 9.0000000000000000, 0.0 },
3058 { 818592.04096678528, 10.000000000000000, 6.0000000000000000,
3059 10.000000000000000, 0.0 },
3060 };
3061 const double toler056 = 2.5000000000000012e-08;
3062
3063 // Test data for a=10.000000000000000, c=7.0000000000000000.
3064 // max(|f - f_GSL|): 2.3283064365386963e-10 at index 20
3065 // max(|f - f_GSL| / |f_GSL|): 1.7003920331697668e-08
3066 // mean(f - f_GSL): -1.3064360298085007e-11
3067 // variance(f - f_GSL): 2.5356040132507882e-21
3068 // stddev(f - f_GSL): 5.0354781433849840e-11
3069 const testcase_conf_hyperg<double>
3070 data057[21] =
3071 {
3072 { 3.9634859316455028e-06, 10.000000000000000, 7.0000000000000000,
3073 -10.000000000000000, 0.0 },
3074 { 4.4074930030956985e-06, 10.000000000000000, 7.0000000000000000,
3075 -9.0000000000000000, 0.0 },
3076 { -5.3248036175001926e-06, 10.000000000000000, 7.0000000000000000,
3077 -8.0000000000000000, 0.0 },
3078 { -5.0660109197473119e-05, 10.000000000000000, 7.0000000000000000,
3079 -7.0000000000000000, 0.0 },
3080 { -0.00017705372690473989, 10.000000000000000, 7.0000000000000000,
3081 -6.0000000000000000, 0.0 },
3082 { -0.00034759250392107574, 10.000000000000000, 7.0000000000000000,
3083 -5.0000000000000000, 0.0 },
3084 { 0.00029072442680530428, 10.000000000000000, 7.0000000000000000,
3085 -4.0000000000000000, 0.0 },
3086 { 0.0071124383382662791, 10.000000000000000, 7.0000000000000000,
3087 -3.0000000000000000, 0.0 },
3088 { 0.046185850628367824, 10.000000000000000, 7.0000000000000000,
3089 -2.0000000000000000, 0.0 },
3090 { 0.22919473120601758, 10.000000000000000, 7.0000000000000000,
3091 -1.0000000000000000, 0.0 },
3092 { 1.0000000000000000, 10.000000000000000, 7.0000000000000000,
3093 0.0000000000000000, 0.0 },
3094 { 4.0342754120781059, 10.000000000000000, 7.0000000000000000,
3095 1.0000000000000000, 0.0 },
3096 { 15.423188523958418, 10.000000000000000, 7.0000000000000000,
3097 2.0000000000000000, 0.0 },
3098 { 56.669907747565212, 10.000000000000000, 7.0000000000000000,
3099 3.0000000000000000, 0.0 },
3100 { 201.92649139242229, 10.000000000000000, 7.0000000000000000,
3101 4.0000000000000000, 0.0 },
3102 { 702.01780019948944, 10.000000000000000, 7.0000000000000000,
3103 5.0000000000000000, 0.0 },
3104 { 2391.7564185640726, 10.000000000000000, 7.0000000000000000,
3105 6.0000000000000000, 0.0 },
3106 { 8011.5144629634615, 10.000000000000000, 7.0000000000000000,
3107 7.0000000000000000, 0.0 },
3108 { 26450.087535814702, 10.000000000000000, 7.0000000000000000,
3109 8.0000000000000000, 0.0 },
3110 { 86239.964657766584, 10.000000000000000, 7.0000000000000000,
3111 9.0000000000000000, 0.0 },
3112 { 278127.83396458329, 10.000000000000000, 7.0000000000000000,
3113 10.000000000000000, 0.0 },
3114 };
3115 const double toler057 = 1.0000000000000004e-06;
3116
3117 // Test data for a=10.000000000000000, c=8.0000000000000000.
3118 // max(|f - f_GSL|): 2.9103830456733704e-11 at index 20
3119 // max(|f - f_GSL| / |f_GSL|): 3.9656147630620638e-11
3120 // mean(f - f_GSL): -2.2995627648324885e-12
3121 // variance(f - f_GSL): 3.7719610241202714e-23
3122 // stddev(f - f_GSL): 6.1416292822998289e-12
3123 const testcase_conf_hyperg<double>
3124 data058[21] =
3125 {
3126 { -5.0444366402760966e-06, 10.000000000000000, 8.0000000000000000,
3127 -10.000000000000000, 0.0 },
3128 { -1.5426225510834945e-05, 10.000000000000000, 8.0000000000000000,
3129 -9.0000000000000000, 0.0 },
3130 { -3.7273625322501334e-05, 10.000000000000000, 8.0000000000000000,
3131 -8.0000000000000000, 0.0 },
3132 { -6.3325136496841588e-05, 10.000000000000000, 8.0000000000000000,
3133 -7.0000000000000000, 0.0 },
3134 { 0.0000000000000000, 10.000000000000000, 8.0000000000000000,
3135 -6.0000000000000000, 0.0 },
3136 { 0.00065507818046664252, 10.000000000000000, 8.0000000000000000,
3137 -5.0000000000000000, 0.0 },
3138 { 0.0040701419752742626, 10.000000000000000, 8.0000000000000000,
3139 -4.0000000000000000, 0.0 },
3140 { 0.018670150637948978, 10.000000000000000, 8.0000000000000000,
3141 -3.0000000000000000, 0.0 },
3142 { 0.075186268464784836, 10.000000000000000, 8.0000000000000000,
3143 -2.0000000000000000, 0.0 },
3144 { 0.28101901756151837, 10.000000000000000, 8.0000000000000000,
3145 -1.0000000000000000, 0.0 },
3146 { 1.0000000000000000, 10.000000000000000, 8.0000000000000000,
3147 0.0000000000000000, 0.0 },
3148 { 3.4356061998579603, 10.000000000000000, 8.0000000000000000,
3149 1.0000000000000000, 0.0 },
3150 { 11.494087265003234, 10.000000000000000, 8.0000000000000000,
3151 2.0000000000000000, 0.0 },
3152 { 37.660381730976880, 10.000000000000000, 8.0000000000000000,
3153 3.0000000000000000, 0.0 },
3154 { 121.32922229587608, 10.000000000000000, 8.0000000000000000,
3155 4.0000000000000000, 0.0 },
3156 { 385.46195489141422, 10.000000000000000, 8.0000000000000000,
3157 5.0000000000000000, 0.0 },
3158 { 1210.2863804782053, 10.000000000000000, 8.0000000000000000,
3159 6.0000000000000000, 0.0 },
3160 { 3762.0609740531836, 10.000000000000000, 8.0000000000000000,
3161 7.0000000000000000, 0.0 },
3162 { 11592.614394051165, 10.000000000000000, 8.0000000000000000,
3163 8.0000000000000000, 0.0 },
3164 { 35450.992183142305, 10.000000000000000, 8.0000000000000000,
3165 9.0000000000000000, 0.0 },
3166 { 107684.94388572175, 10.000000000000000, 8.0000000000000000,
3167 10.000000000000000, 0.0 },
3168 };
3169 const double toler058 = 2.5000000000000013e-09;
3170
3171 // Test data for a=10.000000000000000, c=9.0000000000000000.
3172 // max(|f - f_GSL|): 9.0949470177292824e-12 at index 19
3173 // max(|f - f_GSL| / |f_GSL|): 3.7408111247866129e-11
3174 // mean(f - f_GSL): 4.8555562242291194e-13
3175 // variance(f - f_GSL): 1.2377623779491325e-26
3176 // stddev(f - f_GSL): 1.1125476969321956e-13
3177 const testcase_conf_hyperg<double>
3178 data059[21] =
3179 {
3180 { -5.0444366402760966e-06, 10.000000000000000, 9.0000000000000000,
3181 -10.000000000000000, 0.0 },
3182 { 0.0000000000000000, 10.000000000000000, 9.0000000000000000,
3183 -9.0000000000000000, 0.0 },
3184 { 3.7273625322501334e-05, 10.000000000000000, 9.0000000000000000,
3185 -8.0000000000000000, 0.0 },
3186 { 0.00020264043678989247, 10.000000000000000, 9.0000000000000000,
3187 -7.0000000000000000, 0.0 },
3188 { 0.00082625072555545290, 10.000000000000000, 9.0000000000000000,
3189 -6.0000000000000000, 0.0 },
3190 { 0.0029946431107046520, 10.000000000000000, 9.0000000000000000,
3191 -5.0000000000000000, 0.0 },
3192 { 0.010175354938185657, 10.000000000000000, 9.0000000000000000,
3193 -4.0000000000000000, 0.0 },
3194 { 0.033191378911909299, 10.000000000000000, 9.0000000000000000,
3195 -3.0000000000000000, 0.0 },
3196 { 0.10526077585069878, 10.000000000000000, 9.0000000000000000,
3197 -2.0000000000000000, 0.0 },
3198 { 0.32700394770794866, 10.000000000000000, 9.0000000000000000,
3199 -1.0000000000000000, 0.0 },
3200 { 1.0000000000000000, 10.000000000000000, 9.0000000000000000,
3201 0.0000000000000000, 0.0 },
3202 { 3.0203131427322729, 10.000000000000000, 9.0000000000000000,
3203 1.0000000000000000, 0.0 },
3204 { 9.0310685653596838, 10.000000000000000, 9.0000000000000000,
3205 2.0000000000000000, 0.0 },
3206 { 26.780715897583555, 10.000000000000000, 9.0000000000000000,
3207 3.0000000000000000, 0.0 },
3208 { 78.863994492319449, 10.000000000000000, 9.0000000000000000,
3209 4.0000000000000000, 0.0 },
3210 { 230.86491415956360, 10.000000000000000, 9.0000000000000000,
3211 5.0000000000000000, 0.0 },
3212 { 672.38132248789179, 10.000000000000000, 9.0000000000000000,
3213 6.0000000000000000, 0.0 },
3214 { 1949.5700594283705, 10.000000000000000, 9.0000000000000000,
3215 7.0000000000000000, 0.0 },
3216 { 5630.6984199677090, 10.000000000000000, 9.0000000000000000,
3217 8.0000000000000000, 0.0 },
3218 { 16206.167855150768, 10.000000000000000, 9.0000000000000000,
3219 9.0000000000000000, 0.0 },
3220 { 46500.316677925293, 10.000000000000000, 9.0000000000000000,
3221 10.000000000000000, 0.0 },
3222 };
3223 const double toler059 = 2.5000000000000013e-09;
3224
3225 // Test data for a=10.000000000000000, c=10.000000000000000.
3226 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3227 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3228 // mean(f - f_GSL): 0.0000000000000000
3229 // variance(f - f_GSL): 0.0000000000000000
3230 // stddev(f - f_GSL): 0.0000000000000000
3231 const testcase_conf_hyperg<double>
3232 data060[21] =
3233 {
3234 { 4.5399929762484847e-05, 10.000000000000000, 10.000000000000000,
3235 -10.000000000000000, 0.0 },
3236 { 0.00012340980408667956, 10.000000000000000, 10.000000000000000,
3237 -9.0000000000000000, 0.0 },
3238 { 0.00033546262790251185, 10.000000000000000, 10.000000000000000,
3239 -8.0000000000000000, 0.0 },
3240 { 0.00091188196555451624, 10.000000000000000, 10.000000000000000,
3241 -7.0000000000000000, 0.0 },
3242 { 0.0024787521766663585, 10.000000000000000, 10.000000000000000,
3243 -6.0000000000000000, 0.0 },
3244 { 0.0067379469990854670, 10.000000000000000, 10.000000000000000,
3245 -5.0000000000000000, 0.0 },
3246 { 0.018315638888734182, 10.000000000000000, 10.000000000000000,
3247 -4.0000000000000000, 0.0 },
3248 { 0.049787068367863944, 10.000000000000000, 10.000000000000000,
3249 -3.0000000000000000, 0.0 },
3250 { 0.13533528323661270, 10.000000000000000, 10.000000000000000,
3251 -2.0000000000000000, 0.0 },
3252 { 0.36787944117144228, 10.000000000000000, 10.000000000000000,
3253 -1.0000000000000000, 0.0 },
3254 { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
3255 0.0000000000000000, 0.0 },
3256 { 2.7182818284590455, 10.000000000000000, 10.000000000000000,
3257 1.0000000000000000, 0.0 },
3258 { 7.3890560989306504, 10.000000000000000, 10.000000000000000,
3259 2.0000000000000000, 0.0 },
3260 { 20.085536923187668, 10.000000000000000, 10.000000000000000,
3261 3.0000000000000000, 0.0 },
3262 { 54.598150033144236, 10.000000000000000, 10.000000000000000,
3263 4.0000000000000000, 0.0 },
3264 { 148.41315910257660, 10.000000000000000, 10.000000000000000,
3265 5.0000000000000000, 0.0 },
3266 { 403.42879349273511, 10.000000000000000, 10.000000000000000,
3267 6.0000000000000000, 0.0 },
3268 { 1096.6331584284585, 10.000000000000000, 10.000000000000000,
3269 7.0000000000000000, 0.0 },
3270 { 2980.9579870417283, 10.000000000000000, 10.000000000000000,
3271 8.0000000000000000, 0.0 },
3272 { 8103.0839275753842, 10.000000000000000, 10.000000000000000,
3273 9.0000000000000000, 0.0 },
3274 { 22026.465794806718, 10.000000000000000, 10.000000000000000,
3275 10.000000000000000, 0.0 },
3276 };
3277 const double toler060 = 2.5000000000000020e-13;
3278
3279 // Test data for a=20.000000000000000, c=1.0000000000000000.
3280 // max(|f - f_GSL|): 0.0039062500000000000 at index 20
3281 // max(|f - f_GSL| / |f_GSL|): 3.8043537688323639e-14
3282 // mean(f - f_GSL): -3.3615948355170052e-05
3283 // variance(f - f_GSL): 7.8735813272906564e-07
3284 // stddev(f - f_GSL): 0.00088733203071289252
3285 const testcase_conf_hyperg<double>
3286 data061[21] =
3287 {
3288 { 0.00018021852293239455, 20.000000000000000, 1.0000000000000000,
3289 -10.000000000000000, 0.0 },
3290 { 0.0017726368057851866, 20.000000000000000, 1.0000000000000000,
3291 -9.0000000000000000, 0.0 },
3292 { 0.00058280040382329280, 20.000000000000000, 1.0000000000000000,
3293 -8.0000000000000000, 0.0 },
3294 { -0.0049657717020590141, 20.000000000000000, 1.0000000000000000,
3295 -7.0000000000000000, 0.0 },
3296 { -0.0012360336087128597, 20.000000000000000, 1.0000000000000000,
3297 -6.0000000000000000, 0.0 },
3298 { 0.014898894139255305, 20.000000000000000, 1.0000000000000000,
3299 -5.0000000000000000, 0.0 },
3300 { -0.013800784612552078, 20.000000000000000, 1.0000000000000000,
3301 -4.0000000000000000, 0.0 },
3302 { -0.012192213426039619, 20.000000000000000, 1.0000000000000000,
3303 -3.0000000000000000, 0.0 },
3304 { 0.050311246773136212, 20.000000000000000, 1.0000000000000000,
3305 -2.0000000000000000, 0.0 },
3306 { -0.025985814502838493, 20.000000000000000, 1.0000000000000000,
3307 -1.0000000000000000, 0.0 },
3308 { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
3309 0.0000000000000000, 0.0 },
3310 { 1563.6577385252017, 20.000000000000000, 1.0000000000000000,
3311 1.0000000000000000, 0.0 },
3312 { 86377.091910766088, 20.000000000000000, 1.0000000000000000,
3313 2.0000000000000000, 0.0 },
3314 { 2216718.8789979252, 20.000000000000000, 1.0000000000000000,
3315 3.0000000000000000, 0.0 },
3316 { 38045018.520647161, 20.000000000000000, 1.0000000000000000,
3317 4.0000000000000000, 0.0 },
3318 { 504376263.68346804, 20.000000000000000, 1.0000000000000000,
3319 5.0000000000000000, 0.0 },
3320 { 5565635666.7972050, 20.000000000000000, 1.0000000000000000,
3321 6.0000000000000000, 0.0 },
3322 { 53451562646.544518, 20.000000000000000, 1.0000000000000000,
3323 7.0000000000000000, 0.0 },
3324 { 460009135340.33832, 20.000000000000000, 1.0000000000000000,
3325 8.0000000000000000, 0.0 },
3326 { 3620401937301.4907, 20.000000000000000, 1.0000000000000000,
3327 9.0000000000000000, 0.0 },
3328 { 26446266822604.152, 20.000000000000000, 1.0000000000000000,
3329 10.000000000000000, 0.0 },
3330 };
3331 const double toler061 = 2.5000000000000015e-12;
3332
3333 // Test data for a=20.000000000000000, c=2.0000000000000000.
3334 // max(|f - f_GSL|): 0.00097656250000000000 at index 20
3335 // max(|f - f_GSL| / |f_GSL|): 3.3638062074418344e-12
3336 // mean(f - f_GSL): 4.3034663341234841e-05
3337 // variance(f - f_GSL): 4.5752396645413330e-08
3338 // stddev(f - f_GSL): 0.00021389809874193210
3339 const testcase_conf_hyperg<double>
3340 data062[21] =
3341 {
3342 { 6.6647681992684074e-05, 20.000000000000000, 2.0000000000000000,
3343 -10.000000000000000, 0.0 },
3344 { -3.7248253270227151e-05, 20.000000000000000, 2.0000000000000000,
3345 -9.0000000000000000, 0.0 },
3346 { -0.00024392611307344034, 20.000000000000000, 2.0000000000000000,
3347 -8.0000000000000000, 0.0 },
3348 { 2.4034559592246202e-05, 20.000000000000000, 2.0000000000000000,
3349 -7.0000000000000000, 0.0 },
3350 { 0.00081645960584843073, 20.000000000000000, 2.0000000000000000,
3351 -6.0000000000000000, 0.0 },
3352 { -0.00051326387116462039, 20.000000000000000, 2.0000000000000000,
3353 -5.0000000000000000, 0.0 },
3354 { -0.0021786279856333920, 20.000000000000000, 2.0000000000000000,
3355 -4.0000000000000000, 0.0 },
3356 { 0.0061029380625179973, 20.000000000000000, 2.0000000000000000,
3357 -3.0000000000000000, 0.0 },
3358 { -0.011834301617155166, 20.000000000000000, 2.0000000000000000,
3359 -2.0000000000000000, 0.0 },
3360 { 0.037622016973681061, 20.000000000000000, 2.0000000000000000,
3361 -1.0000000000000000, 0.0 },
3362 { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
3363 0.0000000000000000, 0.0 },
3364 { 303.10954080179823, 20.000000000000000, 2.0000000000000000,
3365 1.0000000000000000, 0.0 },
3366 { 11508.923130556599, 20.000000000000000, 2.0000000000000000,
3367 2.0000000000000000, 0.0 },
3368 { 234541.86023461280, 20.000000000000000, 2.0000000000000000,
3369 3.0000000000000000, 0.0 },
3370 { 3398931.2897027107, 20.000000000000000, 2.0000000000000000,
3371 4.0000000000000000, 0.0 },
3372 { 39382712.287920594, 20.000000000000000, 2.0000000000000000,
3373 5.0000000000000000, 0.0 },
3374 { 388350500.37087941, 20.000000000000000, 2.0000000000000000,
3375 6.0000000000000000, 0.0 },
3376 { 3385284070.5527182, 20.000000000000000, 2.0000000000000000,
3377 7.0000000000000000, 0.0 },
3378 { 26751585258.405773, 20.000000000000000, 2.0000000000000000,
3379 8.0000000000000000, 0.0 },
3380 { 195061928138.27676, 20.000000000000000, 2.0000000000000000,
3381 9.0000000000000000, 0.0 },
3382 { 1329571695324.3132, 20.000000000000000, 2.0000000000000000,
3383 10.000000000000000, 0.0 },
3384 };
3385 const double toler062 = 2.5000000000000017e-10;
3386
3387 // Test data for a=20.000000000000000, c=3.0000000000000000.
3388 // max(|f - f_GSL|): 1.5258789062500000e-05 at index 20
3389 // max(|f - f_GSL| / |f_GSL|): 1.0636412229856690e-11
3390 // mean(f - f_GSL): 4.4497851428053653e-07
3391 // variance(f - f_GSL): 1.1521071605323705e-11
3392 // stddev(f - f_GSL): 3.3942704083976139e-06
3393 const testcase_conf_hyperg<double>
3394 data063[21] =
3395 {
3396 { -8.6671962318505695e-06, 20.000000000000000, 3.0000000000000000,
3397 -10.000000000000000, 0.0 },
3398 { -1.8205565180535425e-05, 20.000000000000000, 3.0000000000000000,
3399 -9.0000000000000000, 0.0 },
3400 { 1.5620588717927631e-05, 20.000000000000000, 3.0000000000000000,
3401 -8.0000000000000000, 0.0 },
3402 { 7.6532767373103759e-05, 20.000000000000000, 3.0000000000000000,
3403 -7.0000000000000000, 0.0 },
3404 { -5.2708600380172109e-05, 20.000000000000000, 3.0000000000000000,
3405 -6.0000000000000000, 0.0 },
3406 { -0.00028546308121326275, 20.000000000000000, 3.0000000000000000,
3407 -5.0000000000000000, 0.0 },
3408 { 0.00056490746026256267, 20.000000000000000, 3.0000000000000000,
3409 -4.0000000000000000, 0.0 },
3410 { -5.0602588875468348e-07, 20.000000000000000, 3.0000000000000000,
3411 -3.0000000000000000, 0.0 },
3412 { -0.0021376080642211692, 20.000000000000000, 3.0000000000000000,
3413 -2.0000000000000000, 0.0 },
3414 { 0.0028873127225376104, 20.000000000000000, 3.0000000000000000,
3415 -1.0000000000000000, 0.0 },
3416 { 1.0000000000000000, 20.000000000000000, 3.0000000000000000,
3417 0.0000000000000000, 0.0 },
3418 { 106.38207299128948, 20.000000000000000, 3.0000000000000000,
3419 1.0000000000000000, 0.0 },
3420 { 2880.5734732831320, 20.000000000000000, 3.0000000000000000,
3421 2.0000000000000000, 0.0 },
3422 { 47353.756965165718, 20.000000000000000, 3.0000000000000000,
3423 3.0000000000000000, 0.0 },
3424 { 584732.27978148905, 20.000000000000000, 3.0000000000000000,
3425 4.0000000000000000, 0.0 },
3426 { 5957333.1101320982, 20.000000000000000, 3.0000000000000000,
3427 5.0000000000000000, 0.0 },
3428 { 52725595.633352734, 20.000000000000000, 3.0000000000000000,
3429 6.0000000000000000, 0.0 },
3430 { 418560160.03369552, 20.000000000000000, 3.0000000000000000,
3431 7.0000000000000000, 0.0 },
3432 { 3045067611.3150902, 20.000000000000000, 3.0000000000000000,
3433 8.0000000000000000, 0.0 },
3434 { 20614600690.354652, 20.000000000000000, 3.0000000000000000,
3435 9.0000000000000000, 0.0 },
3436 { 131344201933.74118, 20.000000000000000, 3.0000000000000000,
3437 10.000000000000000, 0.0 },
3438 };
3439 const double toler063 = 1.0000000000000007e-09;
3440
3441 // Test data for a=20.000000000000000, c=4.0000000000000000.
3442 // max(|f - f_GSL|): 1.5258789062500000e-05 at index 20
3443 // max(|f - f_GSL| / |f_GSL|): 1.8743522900030841e-11
3444 // mean(f - f_GSL): -8.3223886940195093e-07
3445 // variance(f - f_GSL): 1.0926580899883890e-11
3446 // stddev(f - f_GSL): 3.3055379138475917e-06
3447 const testcase_conf_hyperg<double>
3448 data064[21] =
3449 {
3450 { -1.1286669552452397e-06, 20.000000000000000, 4.0000000000000000,
3451 -10.000000000000000, 0.0 },
3452 { 3.9595188785137704e-06, 20.000000000000000, 4.0000000000000000,
3453 -9.0000000000000000, 0.0 },
3454 { 8.6940153052790051e-06, 20.000000000000000, 4.0000000000000000,
3455 -8.0000000000000000, 0.0 },
3456 { -1.0858814018067509e-05, 20.000000000000000, 4.0000000000000000,
3457 -7.0000000000000000, 0.0 },
3458 { -4.1826023828710966e-05, 20.000000000000000, 4.0000000000000000,
3459 -6.0000000000000000, 0.0 },
3460 { 6.6455893622436316e-05, 20.000000000000000, 4.0000000000000000,
3461 -5.0000000000000000, 0.0 },
3462 { 0.00014238710517977906, 20.000000000000000, 4.0000000000000000,
3463 -4.0000000000000000, 0.0 },
3464 { -0.00071796294700866132, 20.000000000000000, 4.0000000000000000,
3465 -3.0000000000000000, 0.0 },
3466 { 0.0020884061677332645, 20.000000000000000, 4.0000000000000000,
3467 -2.0000000000000000, 0.0 },
3468 { -0.012768833157321973, 20.000000000000000, 4.0000000000000000,
3469 -1.0000000000000000, 0.0 },
3470 { 1.0000000000000000, 20.000000000000000, 4.0000000000000000,
3471 0.0000000000000000, 0.0 },
3472 { 50.659916934657737, 20.000000000000000, 4.0000000000000000,
3473 1.0000000000000000, 0.0 },
3474 { 1014.3134442335910, 20.000000000000000, 4.0000000000000000,
3475 2.0000000000000000, 0.0 },
3476 { 13665.584449611577, 20.000000000000000, 4.0000000000000000,
3477 3.0000000000000000, 0.0 },
3478 { 145123.62797278623, 20.000000000000000, 4.0000000000000000,
3479 4.0000000000000000, 0.0 },
3480 { 1308144.4519382305, 20.000000000000000, 4.0000000000000000,
3481 5.0000000000000000, 0.0 },
3482 { 10438124.578674613, 20.000000000000000, 4.0000000000000000,
3483 6.0000000000000000, 0.0 },
3484 { 75719160.524424627, 20.000000000000000, 4.0000000000000000,
3485 7.0000000000000000, 0.0 },
3486 { 508510905.96310252, 20.000000000000000, 4.0000000000000000,
3487 8.0000000000000000, 0.0 },
3488 { 3203200954.5618095, 20.000000000000000, 4.0000000000000000,
3489 9.0000000000000000, 0.0 },
3490 { 19111993543.124691, 20.000000000000000, 4.0000000000000000,
3491 10.000000000000000, 0.0 },
3492 };
3493 const double toler064 = 1.0000000000000007e-09;
3494
3495 // Test data for a=20.000000000000000, c=5.0000000000000000.
3496 // max(|f - f_GSL|): 3.3378601074218750e-06 at index 20
3497 // max(|f - f_GSL| / |f_GSL|): 1.7481076775232650e-09
3498 // mean(f - f_GSL): -1.3214810701104223e-07
3499 // variance(f - f_GSL): 5.3952094505284637e-13
3500 // stddev(f - f_GSL): 7.3452089490554747e-07
3501 const testcase_conf_hyperg<double>
3502 data065[21] =
3503 {
3504 { 8.4755643455670974e-07, 20.000000000000000, 5.0000000000000000,
3505 -10.000000000000000, 0.0 },
3506 { 8.5721061862565697e-07, 20.000000000000000, 5.0000000000000000,
3507 -9.0000000000000000, 0.0 },
3508 { -2.8228700837555599e-06, 20.000000000000000, 5.0000000000000000,
3509 -8.0000000000000000, 0.0 },
3510 { -6.6486802159657585e-06, 20.000000000000000, 5.0000000000000000,
3511 -7.0000000000000000, 0.0 },
3512 { 1.1816828026110384e-05, 20.000000000000000, 5.0000000000000000,
3513 -6.0000000000000000, 0.0 },
3514 { 3.6173872819745774e-05, 20.000000000000000, 5.0000000000000000,
3515 -5.0000000000000000, 0.0 },
3516 { -0.00011481934287296670, 20.000000000000000, 5.0000000000000000,
3517 -4.0000000000000000, 0.0 },
3518 { 1.2650647218867087e-07, 20.000000000000000, 5.0000000000000000,
3519 -3.0000000000000000, 0.0 },
3520 { 0.0010626537950495965, 20.000000000000000, 5.0000000000000000,
3521 -2.0000000000000000, 0.0 },
3522 { -0.0085499011205641944, 20.000000000000000, 5.0000000000000000,
3523 -1.0000000000000000, 0.0 },
3524 { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
3525 0.0000000000000000, 0.0 },
3526 { 29.126637808809381, 20.000000000000000, 5.0000000000000000,
3527 1.0000000000000000, 0.0 },
3528 { 446.26914983518060, 20.000000000000000, 5.0000000000000000,
3529 2.0000000000000000, 0.0 },
3530 { 5005.6470164856382, 20.000000000000000, 5.0000000000000000,
3531 3.0000000000000000, 0.0 },
3532 { 46145.715220935184, 20.000000000000000, 5.0000000000000000,
3533 4.0000000000000000, 0.0 },
3534 { 370342.18574452243, 20.000000000000000, 5.0000000000000000,
3535 5.0000000000000000, 0.0 },
3536 { 2676402.7371661114, 20.000000000000000, 5.0000000000000000,
3537 6.0000000000000000, 0.0 },
3538 { 17803174.102030005, 20.000000000000000, 5.0000000000000000,
3539 7.0000000000000000, 0.0 },
3540 { 110674464.63597310, 20.000000000000000, 5.0000000000000000,
3541 8.0000000000000000, 0.0 },
3542 { 650149739.34228492, 20.000000000000000, 5.0000000000000000,
3543 9.0000000000000000, 0.0 },
3544 { 3639417243.5150661, 20.000000000000000, 5.0000000000000000,
3545 10.000000000000000, 0.0 },
3546 };
3547 const double toler065 = 1.0000000000000005e-07;
3548
3549 // Test data for a=20.000000000000000, c=6.0000000000000000.
3550 // max(|f - f_GSL|): 3.5762786865234375e-07 at index 20
3551 // max(|f - f_GSL| / |f_GSL|): 7.4494596183568454e-09
3552 // mean(f - f_GSL): -1.3194579482834487e-08
3553 // variance(f - f_GSL): 6.2283002611266565e-15
3554 // stddev(f - f_GSL): 7.8919580974094487e-08
3555 const testcase_conf_hyperg<double>
3556 data066[21] =
3557 {
3558 { -1.9022359545310003e-08, 20.000000000000000, 6.0000000000000000,
3559 -10.000000000000000, 0.0 },
3560 { -7.4533809656234698e-07, 20.000000000000000, 6.0000000000000000,
3561 -9.0000000000000000, 0.0 },
3562 { -9.7852420358724080e-07, 20.000000000000000, 6.0000000000000000,
3563 -8.0000000000000000, 0.0 },
3564 { 3.0181569866746340e-06, 20.000000000000000, 6.0000000000000000,
3565 -7.0000000000000000, 0.0 },
3566 { 7.9816910701457280e-06, 20.000000000000000, 6.0000000000000000,
3567 -6.0000000000000000, 0.0 },
3568 { -2.0133163153966071e-05, 20.000000000000000, 6.0000000000000000,
3569 -5.0000000000000000, 0.0 },
3570 { -4.7462368393259685e-05, 20.000000000000000, 6.0000000000000000,
3571 -4.0000000000000000, 0.0 },
3572 { 0.00031910869938964821, 20.000000000000000, 6.0000000000000000,
3573 -3.0000000000000000, 0.0 },
3574 { -0.0010380528468056441, 20.000000000000000, 6.0000000000000000,
3575 -2.0000000000000000, 0.0 },
3576 { 0.0084752097558651058, 20.000000000000000, 6.0000000000000000,
3577 -1.0000000000000000, 0.0 },
3578 { 1.0000000000000000, 20.000000000000000, 6.0000000000000000,
3579 0.0000000000000000, 0.0 },
3580 { 19.002159564861383, 20.000000000000000, 6.0000000000000000,
3581 1.0000000000000000, 0.0 },
3582 { 229.93981298721295, 20.000000000000000, 6.0000000000000000,
3583 2.0000000000000000, 0.0 },
3584 { 2180.3120758940972, 20.000000000000000, 6.0000000000000000,
3585 3.0000000000000000, 0.0 },
3586 { 17610.732510305290, 20.000000000000000, 6.0000000000000000,
3587 4.0000000000000000, 0.0 },
3588 { 126633.20907014767, 20.000000000000000, 6.0000000000000000,
3589 5.0000000000000000, 0.0 },
3590 { 832692.83016874129, 20.000000000000000, 6.0000000000000000,
3591 6.0000000000000000, 0.0 },
3592 { 5097225.0940651651, 20.000000000000000, 6.0000000000000000,
3593 7.0000000000000000, 0.0 },
3594 { 29414585.342530526, 20.000000000000000, 6.0000000000000000,
3595 8.0000000000000000, 0.0 },
3596 { 161513229.88138971, 20.000000000000000, 6.0000000000000000,
3597 9.0000000000000000, 0.0 },
3598 { 849871092.10959554, 20.000000000000000, 6.0000000000000000,
3599 10.000000000000000, 0.0 },
3600 };
3601 const double toler066 = 5.0000000000000019e-07;
3602
3603 // Test data for a=20.000000000000000, c=7.0000000000000000.
3604 // max(|f - f_GSL|): 1.7881393432617188e-07 at index 20
3605 // max(|f - f_GSL| / |f_GSL|): 2.3690711970375556e-09
3606 // mean(f - f_GSL): -7.4560448694733496e-09
3607 // variance(f - f_GSL): 1.5415851296503409e-15
3608 // stddev(f - f_GSL): 3.9263024968159810e-08
3609 const testcase_conf_hyperg<double>
3610 data067[21] =
3611 {
3612 { -1.7754301607387138e-07, 20.000000000000000, 7.0000000000000000,
3613 -10.000000000000000, 0.0 },
3614 { -6.2128605089471266e-08, 20.000000000000000, 7.0000000000000000,
3615 -9.0000000000000000, 0.0 },
3616 { 9.1338873372533148e-07, 20.000000000000000, 7.0000000000000000,
3617 -8.0000000000000000, 0.0 },
3618 { 1.6657400269273180e-06, 20.000000000000000, 7.0000000000000000,
3619 -7.0000000000000000, 0.0 },
3620 { -4.7904165143355465e-06, 20.000000000000000, 7.0000000000000000,
3621 -6.0000000000000000, 0.0 },
3622 { -1.5503088351319618e-05, 20.000000000000000, 7.0000000000000000,
3623 -5.0000000000000000, 0.0 },
3624 { 5.6425108496954337e-05, 20.000000000000000, 7.0000000000000000,
3625 -4.0000000000000000, 0.0 },
3626 { 9.1083552345479015e-05, 20.000000000000000, 7.0000000000000000,
3627 -3.0000000000000000, 0.0 },
3628 { -0.0018058773247853388, 20.000000000000000, 7.0000000000000000,
3629 -2.0000000000000000, 0.0 },
3630 { 0.032850147696977743, 20.000000000000000, 7.0000000000000000,
3631 -1.0000000000000000, 0.0 },
3632 { 1.0000000000000000, 20.000000000000000, 7.0000000000000000,
3633 0.0000000000000000, 0.0 },
3634 { 13.551527852090807, 20.000000000000000, 7.0000000000000000,
3635 1.0000000000000000, 0.0 },
3636 { 133.23579819973105, 20.000000000000000, 7.0000000000000000,
3637 2.0000000000000000, 0.0 },
3638 { 1083.6769250393436, 20.000000000000000, 7.0000000000000000,
3639 3.0000000000000000, 0.0 },
3640 { 7739.1410905637622, 20.000000000000000, 7.0000000000000000,
3641 4.0000000000000000, 0.0 },
3642 { 50175.328973240226, 20.000000000000000, 7.0000000000000000,
3643 5.0000000000000000, 0.0 },
3644 { 301599.46814102860, 20.000000000000000, 7.0000000000000000,
3645 6.0000000000000000, 0.0 },
3646 { 1705051.1866143662, 20.000000000000000, 7.0000000000000000,
3647 7.0000000000000000, 0.0 },
3648 { 9159788.2353733145, 20.000000000000000, 7.0000000000000000,
3649 8.0000000000000000, 0.0 },
3650 { 47122070.398665302, 20.000000000000000, 7.0000000000000000,
3651 9.0000000000000000, 0.0 },
3652 { 233529421.53991735, 20.000000000000000, 7.0000000000000000,
3653 10.000000000000000, 0.0 },
3654 };
3655 const double toler067 = 2.5000000000000009e-07;
3656
3657 // Test data for a=20.000000000000000, c=8.0000000000000000.
3658 // max(|f - f_GSL|): 5.9604644775390625e-08 at index 20
3659 // max(|f - f_GSL| / |f_GSL|): 1.2249582729983602e-09
3660 // mean(f - f_GSL): -2.6616969148797329e-09
3661 // variance(f - f_GSL): 1.7023121382985524e-16
3662 // stddev(f - f_GSL): 1.3047268443235743e-08
3663 const testcase_conf_hyperg<double>
3664 data068[21] =
3665 {
3666 { 4.4385719622857066e-08, 20.000000000000000, 8.0000000000000000,
3667 -10.000000000000000, 0.0 },
3668 { 2.7870855352561944e-07, 20.000000000000000, 8.0000000000000000,
3669 -9.0000000000000000, 0.0 },
3670 { 2.7221706037028333e-07, 20.000000000000000, 8.0000000000000000,
3671 -8.0000000000000000, 0.0 },
3672 { -1.5211293805365477e-06, 20.000000000000000, 8.0000000000000000,
3673 -7.0000000000000000, 0.0 },
3674 { -4.2978336531553913e-06, 20.000000000000000, 8.0000000000000000,
3675 -6.0000000000000000, 0.0 },
3676 { 1.1339557446266733e-05, 20.000000000000000, 8.0000000000000000,
3677 -5.0000000000000000, 0.0 },
3678 { 5.3526365220658988e-05, 20.000000000000000, 8.0000000000000000,
3679 -4.0000000000000000, 0.0 },
3680 { -0.00029461053269513242, 20.000000000000000, 8.0000000000000000,
3681 -3.0000000000000000, 0.0 },
3682 { -0.00026793636646740143, 20.000000000000000, 8.0000000000000000,
3683 -2.0000000000000000, 0.0 },
3684 { 0.061061258434452807, 20.000000000000000, 8.0000000000000000,
3685 -1.0000000000000000, 0.0 },
3686 { 1.0000000000000000, 20.000000000000000, 8.0000000000000000,
3687 0.0000000000000000, 0.0 },
3688 { 10.312756690132913, 20.000000000000000, 8.0000000000000000,
3689 1.0000000000000000, 0.0 },
3690 { 84.471824856846425, 20.000000000000000, 8.0000000000000000,
3691 2.0000000000000000, 0.0 },
3692 { 597.47335666854985, 20.000000000000000, 8.0000000000000000,
3693 3.0000000000000000, 0.0 },
3694 { 3805.9786364107408, 20.000000000000000, 8.0000000000000000,
3695 4.0000000000000000, 0.0 },
3696 { 22386.068461641658, 20.000000000000000, 8.0000000000000000,
3697 5.0000000000000000, 0.0 },
3698 { 123573.63516975302, 20.000000000000000, 8.0000000000000000,
3699 6.0000000000000000, 0.0 },
3700 { 647514.24141570868, 20.000000000000000, 8.0000000000000000,
3701 7.0000000000000000, 0.0 },
3702 { 3247628.2434586394, 20.000000000000000, 8.0000000000000000,
3703 8.0000000000000000, 0.0 },
3704 { 15690070.625286419, 20.000000000000000, 8.0000000000000000,
3705 9.0000000000000000, 0.0 },
3706 { 73379158.893325046, 20.000000000000000, 8.0000000000000000,
3707 10.000000000000000, 0.0 },
3708 };
3709 const double toler068 = 1.0000000000000005e-07;
3710
3711 // Test data for a=20.000000000000000, c=9.0000000000000000.
3712 // max(|f - f_GSL|): 7.4505805969238281e-09 at index 20
3713 // max(|f - f_GSL| / |f_GSL|): 1.7712852063552690e-08
3714 // mean(f - f_GSL): 2.9817087070221364e-10
3715 // variance(f - f_GSL): 2.6857406568168514e-18
3716 // stddev(f - f_GSL): 1.6388229485874463e-09
3717 const testcase_conf_hyperg<double>
3718 data069[21] =
3719 {
3720 { 7.3976263576568565e-08, 20.000000000000000, 9.0000000000000000,
3721 -10.000000000000000, 0.0 },
3722 { -9.0753238092548168e-09, 20.000000000000000, 9.0000000000000000,
3723 -9.0000000000000000, 0.0 },
3724 { -5.5549484970396693e-07, 20.000000000000000, 9.0000000000000000,
3725 -8.0000000000000000, 0.0 },
3726 { -1.1104933512848787e-06, 20.000000000000000, 9.0000000000000000,
3727 -7.0000000000000000, 0.0 },
3728 { 3.2483424385770483e-06, 20.000000000000000, 9.0000000000000000,
3729 -6.0000000000000000, 0.0 },
3730 { 1.7493431113569438e-05, 20.000000000000000, 9.0000000000000000,
3731 -5.0000000000000000, 0.0 },
3732 { -3.9066110636117233e-05, 20.000000000000000, 9.0000000000000000,
3733 -4.0000000000000000, 0.0 },
3734 { -0.00040356155493308509, 20.000000000000000, 9.0000000000000000,
3735 -3.0000000000000000, 0.0 },
3736 { 0.0037671531470534550, 20.000000000000000, 9.0000000000000000,
3737 -2.0000000000000000, 0.0 },
3738 { 0.090944344485248435, 20.000000000000000, 9.0000000000000000,
3739 -1.0000000000000000, 0.0 },
3740 { 1.0000000000000000, 20.000000000000000, 9.0000000000000000,
3741 0.0000000000000000, 0.0 },
3742 { 8.2390942957149722, 20.000000000000000, 9.0000000000000000,
3743 1.0000000000000000, 0.0 },
3744 { 57.468054562166706, 20.000000000000000, 9.0000000000000000,
3745 2.0000000000000000, 0.0 },
3746 { 358.00109079775746, 20.000000000000000, 9.0000000000000000,
3747 3.0000000000000000, 0.0 },
3748 { 2051.3704389047002, 20.000000000000000, 9.0000000000000000,
3749 4.0000000000000000, 0.0 },
3750 { 11012.597503064209, 20.000000000000000, 9.0000000000000000,
3751 5.0000000000000000, 0.0 },
3752 { 56082.113308934473, 20.000000000000000, 9.0000000000000000,
3753 6.0000000000000000, 0.0 },
3754 { 273348.46918863337, 20.000000000000000, 9.0000000000000000,
3755 7.0000000000000000, 0.0 },
3756 { 1283674.4996444662, 20.000000000000000, 9.0000000000000000,
3757 8.0000000000000000, 0.0 },
3758 { 5838026.8730425332, 20.000000000000000, 9.0000000000000000,
3759 9.0000000000000000, 0.0 },
3760 { 25817349.972859699, 20.000000000000000, 9.0000000000000000,
3761 10.000000000000000, 0.0 },
3762 };
3763 const double toler069 = 1.0000000000000004e-06;
3764
3765 // Test data for a=20.000000000000000, c=10.000000000000000.
3766 // max(|f - f_GSL|): 1.8626451492309570e-09 at index 20
3767 // max(|f - f_GSL| / |f_GSL|): 3.6960738533111097e-09
3768 // mean(f - f_GSL): 1.6480220132168215e-10
3769 // variance(f - f_GSL): 1.5134021047767599e-19
3770 // stddev(f - f_GSL): 3.8902469134706086e-10
3771 const testcase_conf_hyperg<double>
3772 data070[21] =
3773 {
3774 { -4.1157677792944940e-08, 20.000000000000000, 10.000000000000000,
3775 -10.000000000000000, 0.0 },
3776 { -2.0187210039960914e-07, 20.000000000000000, 10.000000000000000,
3777 -9.0000000000000000, 0.0 },
3778 { -2.2272304939386817e-07, 20.000000000000000, 10.000000000000000,
3779 -8.0000000000000000, 0.0 },
3780 { 1.2925568212606171e-06, 20.000000000000000, 10.000000000000000,
3781 -7.0000000000000000, 0.0 },
3782 { 5.5744573775996210e-06, 20.000000000000000, 10.000000000000000,
3783 -6.0000000000000000, 0.0 },
3784 { -6.2568272011787289e-06, 20.000000000000000, 10.000000000000000,
3785 -5.0000000000000000, 0.0 },
3786 { -0.00011955177906335608, 20.000000000000000, 10.000000000000000,
3787 -4.0000000000000000, 0.0 },
3788 { 9.2475405516991146e-05, 20.000000000000000, 10.000000000000000,
3789 -3.0000000000000000, 0.0 },
3790 { 0.010123531287569976, 20.000000000000000, 10.000000000000000,
3791 -2.0000000000000000, 0.0 },
3792 { 0.12118937229909534, 20.000000000000000, 10.000000000000000,
3793 -1.0000000000000000, 0.0 },
3794 { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
3795 0.0000000000000000, 0.0 },
3796 { 6.8319857942415538, 20.000000000000000, 10.000000000000000,
3797 1.0000000000000000, 0.0 },
3798 { 41.356658140815220, 20.000000000000000, 10.000000000000000,
3799 2.0000000000000000, 0.0 },
3800 { 229.57496033810904, 20.000000000000000, 10.000000000000000,
3801 3.0000000000000000, 0.0 },
3802 { 1192.7830549969501, 20.000000000000000, 10.000000000000000,
3803 4.0000000000000000, 0.0 },
3804 { 5878.6003887215920, 20.000000000000000, 10.000000000000000,
3805 5.0000000000000000, 0.0 },
3806 { 27741.749322673899, 20.000000000000000, 10.000000000000000,
3807 6.0000000000000000, 0.0 },
3808 { 126220.54599305880, 20.000000000000000, 10.000000000000000,
3809 7.0000000000000000, 0.0 },
3810 { 556592.10886612453, 20.000000000000000, 10.000000000000000,
3811 8.0000000000000000, 0.0 },
3812 { 2388555.2873243927, 20.000000000000000, 10.000000000000000,
3813 9.0000000000000000, 0.0 },
3814 { 10008079.497419352, 20.000000000000000, 10.000000000000000,
3815 10.000000000000000, 0.0 },
3816 };
3817 const double toler070 = 2.5000000000000009e-07;
3818
3819 template<typename Ret, unsigned int Num>
3820 void
3821 test(const testcase_conf_hyperg<Ret> (&data)[Num], Ret toler)
3822 {
3823 bool test __attribute__((unused)) = true;
3824 const Ret eps = std::numeric_limits<Ret>::epsilon();
3825 Ret max_abs_diff = -Ret(1);
3826 Ret max_abs_frac = -Ret(1);
3827 unsigned int num_datum = Num;
3828 for (unsigned int i = 0; i < num_datum; ++i)
3829 {
3830 const Ret f = __gnu_cxx::conf_hyperg(data[i].a, data[i].c,
3831 data[i].x);
3832 const Ret f0 = data[i].f0;
3833 const Ret diff = f - f0;
3834 if (std::abs(diff) > max_abs_diff)
3835 max_abs_diff = std::abs(diff);
3836 if (std::abs(f0) > Ret(10) * eps
3837 && std::abs(f) > Ret(10) * eps)
3838 {
3839 const Ret frac = diff / f0;
3840 if (std::abs(frac) > max_abs_frac)
3841 max_abs_frac = std::abs(frac);
3842 }
3843 }
3844 VERIFY(max_abs_frac < toler);
3845 }
3846
3847 int
3848 main()
3849 {
3850 test(data001, toler001);
3851 test(data002, toler002);
3852 test(data003, toler003);
3853 test(data004, toler004);
3854 test(data005, toler005);
3855 test(data006, toler006);
3856 test(data007, toler007);
3857 test(data008, toler008);
3858 test(data009, toler009);
3859 test(data010, toler010);
3860 test(data011, toler011);
3861 test(data012, toler012);
3862 test(data013, toler013);
3863 test(data014, toler014);
3864 test(data015, toler015);
3865 test(data016, toler016);
3866 test(data017, toler017);
3867 test(data018, toler018);
3868 test(data019, toler019);
3869 test(data020, toler020);
3870 test(data021, toler021);
3871 test(data022, toler022);
3872 test(data023, toler023);
3873 test(data024, toler024);
3874 test(data025, toler025);
3875 test(data026, toler026);
3876 test(data027, toler027);
3877 test(data028, toler028);
3878 test(data029, toler029);
3879 test(data030, toler030);
3880 test(data031, toler031);
3881 test(data032, toler032);
3882 test(data033, toler033);
3883 test(data034, toler034);
3884 test(data035, toler035);
3885 test(data036, toler036);
3886 test(data037, toler037);
3887 test(data038, toler038);
3888 test(data039, toler039);
3889 test(data040, toler040);
3890 test(data041, toler041);
3891 test(data042, toler042);
3892 test(data043, toler043);
3893 test(data044, toler044);
3894 test(data045, toler045);
3895 test(data046, toler046);
3896 test(data047, toler047);
3897 test(data048, toler048);
3898 test(data049, toler049);
3899 test(data050, toler050);
3900 test(data051, toler051);
3901 test(data052, toler052);
3902 test(data053, toler053);
3903 test(data054, toler054);
3904 test(data055, toler055);
3905 test(data056, toler056);
3906 test(data057, toler057);
3907 test(data058, toler058);
3908 test(data059, toler059);
3909 test(data060, toler060);
3910 test(data061, toler061);
3911 test(data062, toler062);
3912 test(data063, toler063);
3913 test(data064, toler064);
3914 test(data065, toler065);
3915 test(data066, toler066);
3916 test(data067, toler067);
3917 test(data068, toler068);
3918 test(data069, toler069);
3919 test(data070, toler070);
3920 return 0;
3921 }