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