1 // { dg-do run { target c++11 } }
2 // { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__ -ffp-contract=off" }
3 // { dg-additional-options "-ffloat-store" { target { m68*-*-* || ia32 } } }
4 // { dg-skip-if "no extensions in strict dialects" { *-*-* } { "-std=c++*" } }
5 //
6 // Copyright (C) 2016-2021 Free Software Foundation, Inc.
7 //
8 // This file is part of the GNU ISO C++ Library.  This library is free
9 // software; you can redistribute it and/or modify it under the
10 // terms of the GNU General Public License as published by the
11 // Free Software Foundation; either version 3, or (at your option)
12 // any later version.
13 //
14 // This library is distributed in the hope that it will be useful,
15 // but WITHOUT ANY WARRANTY; without even the implied warranty of
16 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17 // GNU General Public License for more details.
18 //
19 // You should have received a copy of the GNU General Public License along
20 // with this library; see the file COPYING3.  If not see
21 // <http://www.gnu.org/licenses/>.
22 
23 //  hyperg
24 //  Compare against values generated by the GNU Scientific Library.
25 //  The GSL can be found on the web: http://www.gnu.org/software/gsl/
26 #include <limits>
27 #include <cmath>
28 #if defined(__TEST_DEBUG)
29 #  include <iostream>
30 #  define VERIFY(A) \
31   if (!(A)) \
32     { \
33       std::cout << "line " << __LINE__ \
34 	<< "  max_abs_frac = " << max_abs_frac \
35 	<< std::endl; \
36     }
37 #else
38 #  include <testsuite_hooks.h>
39 #endif
40 #include <specfun_testcase.h>
41 
42 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
43 // max(|f - f_GSL|): 0.0000000000000000 at index 0
44 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
45 // mean(f - f_GSL): 0.0000000000000000
46 // variance(f - f_GSL): 0.0000000000000000
47 // stddev(f - f_GSL): 0.0000000000000000
48 const testcase_hyperg<double>
49 data001[19] =
50 {
51   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
52 	  2.0000000000000000, -0.90000000000000002, 0.0 },
53   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
54 	  2.0000000000000000, -0.80000000000000004, 0.0 },
55   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
56 	  2.0000000000000000, -0.69999999999999996, 0.0 },
57   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
58 	  2.0000000000000000, -0.59999999999999998, 0.0 },
59   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
60 	  2.0000000000000000, -0.50000000000000000, 0.0 },
61   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
62 	  2.0000000000000000, -0.39999999999999991, 0.0 },
63   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
64 	  2.0000000000000000, -0.29999999999999993, 0.0 },
65   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
66 	  2.0000000000000000, -0.19999999999999996, 0.0 },
67   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
68 	  2.0000000000000000, -0.099999999999999978, 0.0 },
69   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
70 	  2.0000000000000000, 0.0000000000000000, 0.0 },
71   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
72 	  2.0000000000000000, 0.10000000000000009, 0.0 },
73   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
74 	  2.0000000000000000, 0.20000000000000018, 0.0 },
75   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
76 	  2.0000000000000000, 0.30000000000000004, 0.0 },
77   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
78 	  2.0000000000000000, 0.40000000000000013, 0.0 },
79   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
80 	  2.0000000000000000, 0.50000000000000000, 0.0 },
81   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
82 	  2.0000000000000000, 0.60000000000000009, 0.0 },
83   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
84 	  2.0000000000000000, 0.70000000000000018, 0.0 },
85   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
86 	  2.0000000000000000, 0.80000000000000004, 0.0 },
87   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
88 	  2.0000000000000000, 0.90000000000000013, 0.0 },
89 };
90 const double toler001 = 2.5000000000000020e-13;
91 
92 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
93 // max(|f - f_GSL|): 0.0000000000000000 at index 0
94 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
95 // mean(f - f_GSL): 0.0000000000000000
96 // variance(f - f_GSL): 0.0000000000000000
97 // stddev(f - f_GSL): 0.0000000000000000
98 const testcase_hyperg<double>
99 data002[19] =
100 {
101   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
103   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
105   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
107   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
109   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
111   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
113   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
115   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
117   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
119   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
121   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
123   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
125   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
127   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
129   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
131   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
133   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
135   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
137   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
139 };
140 const double toler002 = 2.5000000000000020e-13;
141 
142 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
143 // max(|f - f_GSL|): 0.0000000000000000 at index 0
144 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
145 // mean(f - f_GSL): 0.0000000000000000
146 // variance(f - f_GSL): 0.0000000000000000
147 // stddev(f - f_GSL): 0.0000000000000000
148 const testcase_hyperg<double>
149 data003[19] =
150 {
151   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
153   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
155   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
157   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
159   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
161   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
163   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
165   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
167   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
169   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
171   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
173   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
175   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
177   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
179   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
181   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
183   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
185   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
187   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
189 };
190 const double toler003 = 2.5000000000000020e-13;
191 
192 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
193 // max(|f - f_GSL|): 0.0000000000000000 at index 0
194 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
195 // mean(f - f_GSL): 0.0000000000000000
196 // variance(f - f_GSL): 0.0000000000000000
197 // stddev(f - f_GSL): 0.0000000000000000
198 const testcase_hyperg<double>
199 data004[19] =
200 {
201   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
203   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
205   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
207   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
209   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
211   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
213   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
215   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
217   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
219   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
221   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
223   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
225   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
227   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
229   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
231   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
233   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
235   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
237   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
239 };
240 const double toler004 = 2.5000000000000020e-13;
241 
242 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
243 // max(|f - f_GSL|): 0.0000000000000000 at index 0
244 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
245 // mean(f - f_GSL): 0.0000000000000000
246 // variance(f - f_GSL): 0.0000000000000000
247 // stddev(f - f_GSL): 0.0000000000000000
248 const testcase_hyperg<double>
249 data005[19] =
250 {
251   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
252 	  10.000000000000000, -0.90000000000000002, 0.0 },
253   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
254 	  10.000000000000000, -0.80000000000000004, 0.0 },
255   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
256 	  10.000000000000000, -0.69999999999999996, 0.0 },
257   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
258 	  10.000000000000000, -0.59999999999999998, 0.0 },
259   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
260 	  10.000000000000000, -0.50000000000000000, 0.0 },
261   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
262 	  10.000000000000000, -0.39999999999999991, 0.0 },
263   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
264 	  10.000000000000000, -0.29999999999999993, 0.0 },
265   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
266 	  10.000000000000000, -0.19999999999999996, 0.0 },
267   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
268 	  10.000000000000000, -0.099999999999999978, 0.0 },
269   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
270 	  10.000000000000000, 0.0000000000000000, 0.0 },
271   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
272 	  10.000000000000000, 0.10000000000000009, 0.0 },
273   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
274 	  10.000000000000000, 0.20000000000000018, 0.0 },
275   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
276 	  10.000000000000000, 0.30000000000000004, 0.0 },
277   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
278 	  10.000000000000000, 0.40000000000000013, 0.0 },
279   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
280 	  10.000000000000000, 0.50000000000000000, 0.0 },
281   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
282 	  10.000000000000000, 0.60000000000000009, 0.0 },
283   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
284 	  10.000000000000000, 0.70000000000000018, 0.0 },
285   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
286 	  10.000000000000000, 0.80000000000000004, 0.0 },
287   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
288 	  10.000000000000000, 0.90000000000000013, 0.0 },
289 };
290 const double toler005 = 2.5000000000000020e-13;
291 
292 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
293 // max(|f - f_GSL|): 0.0000000000000000 at index 0
294 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
295 // mean(f - f_GSL): 0.0000000000000000
296 // variance(f - f_GSL): 0.0000000000000000
297 // stddev(f - f_GSL): 0.0000000000000000
298 const testcase_hyperg<double>
299 data006[19] =
300 {
301   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
303   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
305   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
307   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
309   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
311   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
313   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
315   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
317   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
319   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
321   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
323   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
325   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
327   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
329   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
331   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
333   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
335   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
337   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
339 };
340 const double toler006 = 2.5000000000000020e-13;
341 
342 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
343 // max(|f - f_GSL|): 0.0000000000000000 at index 0
344 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
345 // mean(f - f_GSL): 0.0000000000000000
346 // variance(f - f_GSL): 0.0000000000000000
347 // stddev(f - f_GSL): 0.0000000000000000
348 const testcase_hyperg<double>
349 data007[19] =
350 {
351   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
353   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
355   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
357   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
359   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
361   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
363   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
365   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
367   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
369   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
371   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
373   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
375   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
377   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
379   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
381   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
383   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
385   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
387   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
389 };
390 const double toler007 = 2.5000000000000020e-13;
391 
392 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
393 // max(|f - f_GSL|): 0.0000000000000000 at index 0
394 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
395 // mean(f - f_GSL): 0.0000000000000000
396 // variance(f - f_GSL): 0.0000000000000000
397 // stddev(f - f_GSL): 0.0000000000000000
398 const testcase_hyperg<double>
399 data008[19] =
400 {
401   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
403   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
405   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
407   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
409   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
411   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
413   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
415   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
417   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
419   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
421   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
423   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
425   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
427   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
429   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
431   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
433   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
435   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
437   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
439 };
440 const double toler008 = 2.5000000000000020e-13;
441 
442 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
443 // max(|f - f_GSL|): 0.0000000000000000 at index 0
444 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
445 // mean(f - f_GSL): 0.0000000000000000
446 // variance(f - f_GSL): 0.0000000000000000
447 // stddev(f - f_GSL): 0.0000000000000000
448 const testcase_hyperg<double>
449 data009[19] =
450 {
451   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
453   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
455   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
457   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
459   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
461   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
463   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
465   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
467   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
469   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
471   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
473   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
475   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
477   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
479   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
481   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
483   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
485   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
487   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
489 };
490 const double toler009 = 2.5000000000000020e-13;
491 
492 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
493 // max(|f - f_GSL|): 0.0000000000000000 at index 0
494 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
495 // mean(f - f_GSL): 0.0000000000000000
496 // variance(f - f_GSL): 0.0000000000000000
497 // stddev(f - f_GSL): 0.0000000000000000
498 const testcase_hyperg<double>
499 data010[19] =
500 {
501   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
502 	  10.000000000000000, -0.90000000000000002, 0.0 },
503   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
504 	  10.000000000000000, -0.80000000000000004, 0.0 },
505   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
506 	  10.000000000000000, -0.69999999999999996, 0.0 },
507   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
508 	  10.000000000000000, -0.59999999999999998, 0.0 },
509   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
510 	  10.000000000000000, -0.50000000000000000, 0.0 },
511   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
512 	  10.000000000000000, -0.39999999999999991, 0.0 },
513   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
514 	  10.000000000000000, -0.29999999999999993, 0.0 },
515   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
516 	  10.000000000000000, -0.19999999999999996, 0.0 },
517   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
518 	  10.000000000000000, -0.099999999999999978, 0.0 },
519   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
520 	  10.000000000000000, 0.0000000000000000, 0.0 },
521   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
522 	  10.000000000000000, 0.10000000000000009, 0.0 },
523   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
524 	  10.000000000000000, 0.20000000000000018, 0.0 },
525   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
526 	  10.000000000000000, 0.30000000000000004, 0.0 },
527   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
528 	  10.000000000000000, 0.40000000000000013, 0.0 },
529   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
530 	  10.000000000000000, 0.50000000000000000, 0.0 },
531   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
532 	  10.000000000000000, 0.60000000000000009, 0.0 },
533   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
534 	  10.000000000000000, 0.70000000000000018, 0.0 },
535   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
536 	  10.000000000000000, 0.80000000000000004, 0.0 },
537   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
538 	  10.000000000000000, 0.90000000000000013, 0.0 },
539 };
540 const double toler010 = 2.5000000000000020e-13;
541 
542 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
543 // max(|f - f_GSL|): 0.0000000000000000 at index 0
544 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
545 // mean(f - f_GSL): 0.0000000000000000
546 // variance(f - f_GSL): 0.0000000000000000
547 // stddev(f - f_GSL): 0.0000000000000000
548 const testcase_hyperg<double>
549 data011[19] =
550 {
551   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
553   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
555   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
557   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
559   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
561   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
563   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
565   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
567   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
569   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
571   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
573   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
575   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
577   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
579   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
581   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
583   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
585   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
587   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
589 };
590 const double toler011 = 2.5000000000000020e-13;
591 
592 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
593 // max(|f - f_GSL|): 0.0000000000000000 at index 0
594 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
595 // mean(f - f_GSL): 0.0000000000000000
596 // variance(f - f_GSL): 0.0000000000000000
597 // stddev(f - f_GSL): 0.0000000000000000
598 const testcase_hyperg<double>
599 data012[19] =
600 {
601   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
603   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
605   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
607   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
609   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
611   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
613   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
615   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
617   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
619   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
621   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
623   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
625   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
627   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
629   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
631   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
633   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
635   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
637   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
639 };
640 const double toler012 = 2.5000000000000020e-13;
641 
642 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
643 // max(|f - f_GSL|): 0.0000000000000000 at index 0
644 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
645 // mean(f - f_GSL): 0.0000000000000000
646 // variance(f - f_GSL): 0.0000000000000000
647 // stddev(f - f_GSL): 0.0000000000000000
648 const testcase_hyperg<double>
649 data013[19] =
650 {
651   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
653   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
655   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
657   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
659   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
661   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
663   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
665   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
667   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
669   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
671   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
673   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
675   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
677   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
679   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
681   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
683   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
685   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
687   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
689 };
690 const double toler013 = 2.5000000000000020e-13;
691 
692 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
693 // max(|f - f_GSL|): 0.0000000000000000 at index 0
694 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
695 // mean(f - f_GSL): 0.0000000000000000
696 // variance(f - f_GSL): 0.0000000000000000
697 // stddev(f - f_GSL): 0.0000000000000000
698 const testcase_hyperg<double>
699 data014[19] =
700 {
701   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
703   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
705   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
707   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
709   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
711   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
713   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
715   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
717   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
719   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
721   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
723   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
725   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
727   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
729   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
731   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
733   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
735   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
737   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
739 };
740 const double toler014 = 2.5000000000000020e-13;
741 
742 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
743 // max(|f - f_GSL|): 0.0000000000000000 at index 0
744 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
745 // mean(f - f_GSL): 0.0000000000000000
746 // variance(f - f_GSL): 0.0000000000000000
747 // stddev(f - f_GSL): 0.0000000000000000
748 const testcase_hyperg<double>
749 data015[19] =
750 {
751   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
752 	  10.000000000000000, -0.90000000000000002, 0.0 },
753   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
754 	  10.000000000000000, -0.80000000000000004, 0.0 },
755   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
756 	  10.000000000000000, -0.69999999999999996, 0.0 },
757   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
758 	  10.000000000000000, -0.59999999999999998, 0.0 },
759   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
760 	  10.000000000000000, -0.50000000000000000, 0.0 },
761   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
762 	  10.000000000000000, -0.39999999999999991, 0.0 },
763   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
764 	  10.000000000000000, -0.29999999999999993, 0.0 },
765   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
766 	  10.000000000000000, -0.19999999999999996, 0.0 },
767   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
768 	  10.000000000000000, -0.099999999999999978, 0.0 },
769   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
770 	  10.000000000000000, 0.0000000000000000, 0.0 },
771   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
772 	  10.000000000000000, 0.10000000000000009, 0.0 },
773   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
774 	  10.000000000000000, 0.20000000000000018, 0.0 },
775   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
776 	  10.000000000000000, 0.30000000000000004, 0.0 },
777   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
778 	  10.000000000000000, 0.40000000000000013, 0.0 },
779   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
780 	  10.000000000000000, 0.50000000000000000, 0.0 },
781   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
782 	  10.000000000000000, 0.60000000000000009, 0.0 },
783   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
784 	  10.000000000000000, 0.70000000000000018, 0.0 },
785   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
786 	  10.000000000000000, 0.80000000000000004, 0.0 },
787   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
788 	  10.000000000000000, 0.90000000000000013, 0.0 },
789 };
790 const double toler015 = 2.5000000000000020e-13;
791 
792 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
793 // max(|f - f_GSL|): 0.0000000000000000 at index 0
794 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
795 // mean(f - f_GSL): 0.0000000000000000
796 // variance(f - f_GSL): 0.0000000000000000
797 // stddev(f - f_GSL): 0.0000000000000000
798 const testcase_hyperg<double>
799 data016[19] =
800 {
801   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
803   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
805   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
807   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
809   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
811   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
813   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
815   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
817   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
819   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
821   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
823   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
825   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
827   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
829   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
831   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
833   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
835   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
837   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
839 };
840 const double toler016 = 2.5000000000000020e-13;
841 
842 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
843 // max(|f - f_GSL|): 0.0000000000000000 at index 0
844 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
845 // mean(f - f_GSL): 0.0000000000000000
846 // variance(f - f_GSL): 0.0000000000000000
847 // stddev(f - f_GSL): 0.0000000000000000
848 const testcase_hyperg<double>
849 data017[19] =
850 {
851   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
853   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
855   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
857   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
859   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
861   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
863   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
865   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
867   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
869   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
871   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
873   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
875   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
877   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
879   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
881   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
883   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
885   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
887   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
889 };
890 const double toler017 = 2.5000000000000020e-13;
891 
892 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
893 // max(|f - f_GSL|): 0.0000000000000000 at index 0
894 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
895 // mean(f - f_GSL): 0.0000000000000000
896 // variance(f - f_GSL): 0.0000000000000000
897 // stddev(f - f_GSL): 0.0000000000000000
898 const testcase_hyperg<double>
899 data018[19] =
900 {
901   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
903   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
905   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
907   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
909   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
911   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
913   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
915   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
917   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
919   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
921   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
923   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
925   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
927   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
929   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
931   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
933   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
935   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
937   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
939 };
940 const double toler018 = 2.5000000000000020e-13;
941 
942 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
943 // max(|f - f_GSL|): 0.0000000000000000 at index 0
944 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
945 // mean(f - f_GSL): 0.0000000000000000
946 // variance(f - f_GSL): 0.0000000000000000
947 // stddev(f - f_GSL): 0.0000000000000000
948 const testcase_hyperg<double>
949 data019[19] =
950 {
951   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
953   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
955   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
957   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
959   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
961   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
963   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
965   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
967   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
969   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
971   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
973   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
975   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
977   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
979   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
981   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
983   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
985   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
987   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
989 };
990 const double toler019 = 2.5000000000000020e-13;
991 
992 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
993 // max(|f - f_GSL|): 0.0000000000000000 at index 0
994 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
995 // mean(f - f_GSL): 0.0000000000000000
996 // variance(f - f_GSL): 0.0000000000000000
997 // stddev(f - f_GSL): 0.0000000000000000
998 const testcase_hyperg<double>
999 data020[19] =
1000 {
1001   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1002 	  10.000000000000000, -0.90000000000000002, 0.0 },
1003   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1004 	  10.000000000000000, -0.80000000000000004, 0.0 },
1005   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1006 	  10.000000000000000, -0.69999999999999996, 0.0 },
1007   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1008 	  10.000000000000000, -0.59999999999999998, 0.0 },
1009   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1010 	  10.000000000000000, -0.50000000000000000, 0.0 },
1011   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1012 	  10.000000000000000, -0.39999999999999991, 0.0 },
1013   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1014 	  10.000000000000000, -0.29999999999999993, 0.0 },
1015   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1016 	  10.000000000000000, -0.19999999999999996, 0.0 },
1017   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1018 	  10.000000000000000, -0.099999999999999978, 0.0 },
1019   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1020 	  10.000000000000000, 0.0000000000000000, 0.0 },
1021   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1022 	  10.000000000000000, 0.10000000000000009, 0.0 },
1023   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1024 	  10.000000000000000, 0.20000000000000018, 0.0 },
1025   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1026 	  10.000000000000000, 0.30000000000000004, 0.0 },
1027   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1028 	  10.000000000000000, 0.40000000000000013, 0.0 },
1029   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1030 	  10.000000000000000, 0.50000000000000000, 0.0 },
1031   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1032 	  10.000000000000000, 0.60000000000000009, 0.0 },
1033   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1034 	  10.000000000000000, 0.70000000000000018, 0.0 },
1035   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1036 	  10.000000000000000, 0.80000000000000004, 0.0 },
1037   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1038 	  10.000000000000000, 0.90000000000000013, 0.0 },
1039 };
1040 const double toler020 = 2.5000000000000020e-13;
1041 
1042 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
1043 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1044 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1045 // mean(f - f_GSL): 0.0000000000000000
1046 // variance(f - f_GSL): 0.0000000000000000
1047 // stddev(f - f_GSL): 0.0000000000000000
1048 const testcase_hyperg<double>
1049 data021[19] =
1050 {
1051   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1053   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1055   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1057   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1059   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1061   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1063   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1065   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1067   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1069   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1071   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1073   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1075   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1077   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1079   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1081   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1083   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1085   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1087   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1089 };
1090 const double toler021 = 2.5000000000000020e-13;
1091 
1092 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
1093 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1094 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1095 // mean(f - f_GSL): 0.0000000000000000
1096 // variance(f - f_GSL): 0.0000000000000000
1097 // stddev(f - f_GSL): 0.0000000000000000
1098 const testcase_hyperg<double>
1099 data022[19] =
1100 {
1101   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1103   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1105   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1107   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1109   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1111   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1113   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1115   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1117   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1119   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1121   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1123   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1125   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1127   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1129   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1131   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1133   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1135   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1137   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1139 };
1140 const double toler022 = 2.5000000000000020e-13;
1141 
1142 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
1143 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1144 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1145 // mean(f - f_GSL): 0.0000000000000000
1146 // variance(f - f_GSL): 0.0000000000000000
1147 // stddev(f - f_GSL): 0.0000000000000000
1148 const testcase_hyperg<double>
1149 data023[19] =
1150 {
1151   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1153   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1155   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1157   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1159   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1161   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1163   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1165   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1167   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1169   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1171   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1173   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1175   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1177   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1179   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1181   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1183   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1185   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1187   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1189 };
1190 const double toler023 = 2.5000000000000020e-13;
1191 
1192 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
1193 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1194 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1195 // mean(f - f_GSL): 0.0000000000000000
1196 // variance(f - f_GSL): 0.0000000000000000
1197 // stddev(f - f_GSL): 0.0000000000000000
1198 const testcase_hyperg<double>
1199 data024[19] =
1200 {
1201   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1203   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1205   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1207   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1209   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1211   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1213   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1215   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1217   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1219   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1221   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1223   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1225   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1227   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1229   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1231   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1233   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1235   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1237   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1239 };
1240 const double toler024 = 2.5000000000000020e-13;
1241 
1242 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
1243 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1244 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1245 // mean(f - f_GSL): 0.0000000000000000
1246 // variance(f - f_GSL): 0.0000000000000000
1247 // stddev(f - f_GSL): 0.0000000000000000
1248 const testcase_hyperg<double>
1249 data025[19] =
1250 {
1251   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1252 	  10.000000000000000, -0.90000000000000002, 0.0 },
1253   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1254 	  10.000000000000000, -0.80000000000000004, 0.0 },
1255   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1256 	  10.000000000000000, -0.69999999999999996, 0.0 },
1257   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1258 	  10.000000000000000, -0.59999999999999998, 0.0 },
1259   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1260 	  10.000000000000000, -0.50000000000000000, 0.0 },
1261   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1262 	  10.000000000000000, -0.39999999999999991, 0.0 },
1263   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1264 	  10.000000000000000, -0.29999999999999993, 0.0 },
1265   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1266 	  10.000000000000000, -0.19999999999999996, 0.0 },
1267   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1268 	  10.000000000000000, -0.099999999999999978, 0.0 },
1269   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1270 	  10.000000000000000, 0.0000000000000000, 0.0 },
1271   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1272 	  10.000000000000000, 0.10000000000000009, 0.0 },
1273   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1274 	  10.000000000000000, 0.20000000000000018, 0.0 },
1275   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1276 	  10.000000000000000, 0.30000000000000004, 0.0 },
1277   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1278 	  10.000000000000000, 0.40000000000000013, 0.0 },
1279   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1280 	  10.000000000000000, 0.50000000000000000, 0.0 },
1281   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1282 	  10.000000000000000, 0.60000000000000009, 0.0 },
1283   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1284 	  10.000000000000000, 0.70000000000000018, 0.0 },
1285   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1286 	  10.000000000000000, 0.80000000000000004, 0.0 },
1287   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1288 	  10.000000000000000, 0.90000000000000013, 0.0 },
1289 };
1290 const double toler025 = 2.5000000000000020e-13;
1291 
1292 // Test data for a=0.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
1293 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1294 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1295 // mean(f - f_GSL): 0.0000000000000000
1296 // variance(f - f_GSL): 0.0000000000000000
1297 // stddev(f - f_GSL): 0.0000000000000000
1298 const testcase_hyperg<double>
1299 data026[19] =
1300 {
1301   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1303   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1305   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1307   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1309   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1311   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1313   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1315   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1317   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1319   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1321   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1323   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1325   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1327   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1329   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1331   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1333   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1335   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1337   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1339 };
1340 const double toler026 = 2.5000000000000020e-13;
1341 
1342 // Test data for a=0.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
1343 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1344 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1345 // mean(f - f_GSL): 0.0000000000000000
1346 // variance(f - f_GSL): 0.0000000000000000
1347 // stddev(f - f_GSL): 0.0000000000000000
1348 const testcase_hyperg<double>
1349 data027[19] =
1350 {
1351   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1353   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1355   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1357   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1359   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1361   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1363   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1365   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1367   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1369   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1371   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1373   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1375   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1377   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1379   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1381   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1383   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1385   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1387   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1389 };
1390 const double toler027 = 2.5000000000000020e-13;
1391 
1392 // Test data for a=0.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
1393 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1394 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1395 // mean(f - f_GSL): 0.0000000000000000
1396 // variance(f - f_GSL): 0.0000000000000000
1397 // stddev(f - f_GSL): 0.0000000000000000
1398 const testcase_hyperg<double>
1399 data028[19] =
1400 {
1401   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1403   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1405   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1407   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1409   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1411   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1413   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1415   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1417   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1419   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1421   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1423   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1425   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1427   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1429   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1431   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1433   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1435   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1437   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1439 };
1440 const double toler028 = 2.5000000000000020e-13;
1441 
1442 // Test data for a=0.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
1443 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1444 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1445 // mean(f - f_GSL): 0.0000000000000000
1446 // variance(f - f_GSL): 0.0000000000000000
1447 // stddev(f - f_GSL): 0.0000000000000000
1448 const testcase_hyperg<double>
1449 data029[19] =
1450 {
1451   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1453   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1455   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1457   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1459   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1461   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1463   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1465   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1467   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1469   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1471   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1473   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1475   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1477   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1479   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1481   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1483   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1485   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1487   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1489 };
1490 const double toler029 = 2.5000000000000020e-13;
1491 
1492 // Test data for a=0.0000000000000000, b=10.000000000000000, c=10.000000000000000.
1493 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1494 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1495 // mean(f - f_GSL): 0.0000000000000000
1496 // variance(f - f_GSL): 0.0000000000000000
1497 // stddev(f - f_GSL): 0.0000000000000000
1498 const testcase_hyperg<double>
1499 data030[19] =
1500 {
1501   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1502 	  10.000000000000000, -0.90000000000000002, 0.0 },
1503   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1504 	  10.000000000000000, -0.80000000000000004, 0.0 },
1505   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1506 	  10.000000000000000, -0.69999999999999996, 0.0 },
1507   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1508 	  10.000000000000000, -0.59999999999999998, 0.0 },
1509   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1510 	  10.000000000000000, -0.50000000000000000, 0.0 },
1511   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1512 	  10.000000000000000, -0.39999999999999991, 0.0 },
1513   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1514 	  10.000000000000000, -0.29999999999999993, 0.0 },
1515   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1516 	  10.000000000000000, -0.19999999999999996, 0.0 },
1517   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1518 	  10.000000000000000, -0.099999999999999978, 0.0 },
1519   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1520 	  10.000000000000000, 0.0000000000000000, 0.0 },
1521   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1522 	  10.000000000000000, 0.10000000000000009, 0.0 },
1523   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1524 	  10.000000000000000, 0.20000000000000018, 0.0 },
1525   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1526 	  10.000000000000000, 0.30000000000000004, 0.0 },
1527   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1528 	  10.000000000000000, 0.40000000000000013, 0.0 },
1529   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1530 	  10.000000000000000, 0.50000000000000000, 0.0 },
1531   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1532 	  10.000000000000000, 0.60000000000000009, 0.0 },
1533   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1534 	  10.000000000000000, 0.70000000000000018, 0.0 },
1535   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1536 	  10.000000000000000, 0.80000000000000004, 0.0 },
1537   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1538 	  10.000000000000000, 0.90000000000000013, 0.0 },
1539 };
1540 const double toler030 = 2.5000000000000020e-13;
1541 
1542 // Test data for a=0.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
1543 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1544 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1545 // mean(f - f_GSL): 0.0000000000000000
1546 // variance(f - f_GSL): 0.0000000000000000
1547 // stddev(f - f_GSL): 0.0000000000000000
1548 const testcase_hyperg<double>
1549 data031[19] =
1550 {
1551   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1553   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1555   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1557   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1559   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1561   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1563   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1565   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1567   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1569   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1571   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1573   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1575   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1577   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1579   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1581   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1583   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1585   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1587   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1589 };
1590 const double toler031 = 2.5000000000000020e-13;
1591 
1592 // Test data for a=0.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
1593 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1594 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1595 // mean(f - f_GSL): 0.0000000000000000
1596 // variance(f - f_GSL): 0.0000000000000000
1597 // stddev(f - f_GSL): 0.0000000000000000
1598 const testcase_hyperg<double>
1599 data032[19] =
1600 {
1601   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1603   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1605   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1607   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1609   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1611   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1613   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1615   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1617   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1619   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1621   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1623   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1625   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1627   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1629   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1631   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1633   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1635   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1637   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1639 };
1640 const double toler032 = 2.5000000000000020e-13;
1641 
1642 // Test data for a=0.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
1643 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1644 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1645 // mean(f - f_GSL): 0.0000000000000000
1646 // variance(f - f_GSL): 0.0000000000000000
1647 // stddev(f - f_GSL): 0.0000000000000000
1648 const testcase_hyperg<double>
1649 data033[19] =
1650 {
1651   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1653   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1655   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1657   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1659   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1661   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1663   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1665   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1667   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1669   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1671   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1673   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1675   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1677   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1679   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1681   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1683   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1685   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1687   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1689 };
1690 const double toler033 = 2.5000000000000020e-13;
1691 
1692 // Test data for a=0.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
1693 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1694 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1695 // mean(f - f_GSL): 0.0000000000000000
1696 // variance(f - f_GSL): 0.0000000000000000
1697 // stddev(f - f_GSL): 0.0000000000000000
1698 const testcase_hyperg<double>
1699 data034[19] =
1700 {
1701   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1703   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1705   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1707   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1709   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1711   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1713   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1715   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1717   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1719   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1721   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1723   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1725   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1727   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1729   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1731   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1733   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1735   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1737   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1739 };
1740 const double toler034 = 2.5000000000000020e-13;
1741 
1742 // Test data for a=0.0000000000000000, b=20.000000000000000, c=10.000000000000000.
1743 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1744 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1745 // mean(f - f_GSL): 0.0000000000000000
1746 // variance(f - f_GSL): 0.0000000000000000
1747 // stddev(f - f_GSL): 0.0000000000000000
1748 const testcase_hyperg<double>
1749 data035[19] =
1750 {
1751   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1752 	  10.000000000000000, -0.90000000000000002, 0.0 },
1753   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1754 	  10.000000000000000, -0.80000000000000004, 0.0 },
1755   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1756 	  10.000000000000000, -0.69999999999999996, 0.0 },
1757   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1758 	  10.000000000000000, -0.59999999999999998, 0.0 },
1759   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1760 	  10.000000000000000, -0.50000000000000000, 0.0 },
1761   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1762 	  10.000000000000000, -0.39999999999999991, 0.0 },
1763   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1764 	  10.000000000000000, -0.29999999999999993, 0.0 },
1765   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1766 	  10.000000000000000, -0.19999999999999996, 0.0 },
1767   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1768 	  10.000000000000000, -0.099999999999999978, 0.0 },
1769   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1770 	  10.000000000000000, 0.0000000000000000, 0.0 },
1771   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1772 	  10.000000000000000, 0.10000000000000009, 0.0 },
1773   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1774 	  10.000000000000000, 0.20000000000000018, 0.0 },
1775   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1776 	  10.000000000000000, 0.30000000000000004, 0.0 },
1777   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1778 	  10.000000000000000, 0.40000000000000013, 0.0 },
1779   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1780 	  10.000000000000000, 0.50000000000000000, 0.0 },
1781   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1782 	  10.000000000000000, 0.60000000000000009, 0.0 },
1783   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1784 	  10.000000000000000, 0.70000000000000018, 0.0 },
1785   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1786 	  10.000000000000000, 0.80000000000000004, 0.0 },
1787   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1788 	  10.000000000000000, 0.90000000000000013, 0.0 },
1789 };
1790 const double toler035 = 2.5000000000000020e-13;
1791 
1792 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=2.0000000000000000.
1793 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1794 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1795 // mean(f - f_GSL): 0.0000000000000000
1796 // variance(f - f_GSL): 0.0000000000000000
1797 // stddev(f - f_GSL): 0.0000000000000000
1798 const testcase_hyperg<double>
1799 data036[19] =
1800 {
1801   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1803   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1805   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1807   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1809   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1811   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1813   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1815   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1817   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1819   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1821   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1823   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1825   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1827   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1829   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1831   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1833   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1835   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1837   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1839 };
1840 const double toler036 = 2.5000000000000020e-13;
1841 
1842 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=4.0000000000000000.
1843 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1844 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1845 // mean(f - f_GSL): 0.0000000000000000
1846 // variance(f - f_GSL): 0.0000000000000000
1847 // stddev(f - f_GSL): 0.0000000000000000
1848 const testcase_hyperg<double>
1849 data037[19] =
1850 {
1851   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1853   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1855   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1857   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1859   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1861   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1863   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1865   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1867   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1869   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1871   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1873   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1875   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1877   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1879   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1881   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1883   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1885   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1887   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1889 };
1890 const double toler037 = 2.5000000000000020e-13;
1891 
1892 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=6.0000000000000000.
1893 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1894 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1895 // mean(f - f_GSL): 0.0000000000000000
1896 // variance(f - f_GSL): 0.0000000000000000
1897 // stddev(f - f_GSL): 0.0000000000000000
1898 const testcase_hyperg<double>
1899 data038[19] =
1900 {
1901   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1903   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1905   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1907   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1909   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1911   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1913   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1915   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1917   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1919   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1921   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1923   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1925   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1927   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1929   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1931   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1933   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1935   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1937   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1939 };
1940 const double toler038 = 2.5000000000000020e-13;
1941 
1942 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=8.0000000000000000.
1943 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1944 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1945 // mean(f - f_GSL): 0.0000000000000000
1946 // variance(f - f_GSL): 0.0000000000000000
1947 // stddev(f - f_GSL): 0.0000000000000000
1948 const testcase_hyperg<double>
1949 data039[19] =
1950 {
1951   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1953   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1955   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1957   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1959   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1961   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1963   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1965   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1967   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1969   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1971   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1973   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1975   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1977   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1979   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1981   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1983   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1985   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1987   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1989 };
1990 const double toler039 = 2.5000000000000020e-13;
1991 
1992 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=10.000000000000000.
1993 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1994 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1995 // mean(f - f_GSL): 0.0000000000000000
1996 // variance(f - f_GSL): 0.0000000000000000
1997 // stddev(f - f_GSL): 0.0000000000000000
1998 const testcase_hyperg<double>
1999 data040[19] =
2000 {
2001   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2002 	  10.000000000000000, -0.90000000000000002, 0.0 },
2003   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2004 	  10.000000000000000, -0.80000000000000004, 0.0 },
2005   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2006 	  10.000000000000000, -0.69999999999999996, 0.0 },
2007   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2008 	  10.000000000000000, -0.59999999999999998, 0.0 },
2009   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2010 	  10.000000000000000, -0.50000000000000000, 0.0 },
2011   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2012 	  10.000000000000000, -0.39999999999999991, 0.0 },
2013   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2014 	  10.000000000000000, -0.29999999999999993, 0.0 },
2015   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2016 	  10.000000000000000, -0.19999999999999996, 0.0 },
2017   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2018 	  10.000000000000000, -0.099999999999999978, 0.0 },
2019   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2020 	  10.000000000000000, 0.0000000000000000, 0.0 },
2021   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2022 	  10.000000000000000, 0.10000000000000009, 0.0 },
2023   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2024 	  10.000000000000000, 0.20000000000000018, 0.0 },
2025   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2026 	  10.000000000000000, 0.30000000000000004, 0.0 },
2027   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2028 	  10.000000000000000, 0.40000000000000013, 0.0 },
2029   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2030 	  10.000000000000000, 0.50000000000000000, 0.0 },
2031   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2032 	  10.000000000000000, 0.60000000000000009, 0.0 },
2033   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2034 	  10.000000000000000, 0.70000000000000018, 0.0 },
2035   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2036 	  10.000000000000000, 0.80000000000000004, 0.0 },
2037   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2038 	  10.000000000000000, 0.90000000000000013, 0.0 },
2039 };
2040 const double toler040 = 2.5000000000000020e-13;
2041 
2042 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=2.0000000000000000.
2043 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
2044 // max(|f - f_GSL| / |f_GSL|): 3.7062685186203797e-16
2045 // mean(f - f_GSL): 1.1686558153949016e-17
2046 // variance(f - f_GSL): 1.0964410526798704e-32
2047 // stddev(f - f_GSL): 1.0471108120346530e-16
2048 const testcase_hyperg<double>
2049 data041[19] =
2050 {
2051   { 0.91383715388743736, 0.50000000000000000, 0.50000000000000000,
2052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2053   { 0.92151232618202372, 0.50000000000000000, 0.50000000000000000,
2054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2055   { 0.92955086110354845, 0.50000000000000000, 0.50000000000000000,
2056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2057   { 0.93798900119104855, 0.50000000000000000, 0.50000000000000000,
2058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2059   { 0.94686887307107392, 0.50000000000000000, 0.50000000000000000,
2060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2061   { 0.95623987262143295, 0.50000000000000000, 0.50000000000000000,
2062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2063   { 0.96616049387450120, 0.50000000000000000, 0.50000000000000000,
2064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2065   { 0.97670078782187519, 0.50000000000000000, 0.50000000000000000,
2066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2067   { 0.98794573712298384, 0.50000000000000000, 0.50000000000000000,
2068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2069   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2071   { 1.0129947682256604, 0.50000000000000000, 0.50000000000000000,
2072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2073   { 1.0270980168168973, 0.50000000000000000, 0.50000000000000000,
2074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2075   { 1.0425304520063581, 0.50000000000000000, 0.50000000000000000,
2076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2077   { 1.0595915916161471, 0.50000000000000000, 0.50000000000000000,
2078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2079   { 1.0787052023767585, 0.50000000000000000, 0.50000000000000000,
2080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2081   { 1.1005053642285867, 0.50000000000000000, 0.50000000000000000,
2082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2083   { 1.1260196351148746, 0.50000000000000000, 0.50000000000000000,
2084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2085   { 1.1571341977338991, 0.50000000000000000, 0.50000000000000000,
2086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2087   { 1.1982111053717452, 0.50000000000000000, 0.50000000000000000,
2088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2089 };
2090 const double toler041 = 2.5000000000000020e-13;
2091 
2092 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=4.0000000000000000.
2093 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
2094 // max(|f - f_GSL| / |f_GSL|): 3.3511582377535958e-16
2095 // mean(f - f_GSL): 4.0902953538821554e-17
2096 // variance(f - f_GSL): 1.9241779613319129e-33
2097 // stddev(f - f_GSL): 4.3865452936586813e-17
2098 const testcase_hyperg<double>
2099 data042[19] =
2100 {
2101   { 0.95255425675562699, 0.50000000000000000, 0.50000000000000000,
2102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2103   { 0.95712841850078267, 0.50000000000000000, 0.50000000000000000,
2104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2105   { 0.96184734120034554, 0.50000000000000000, 0.50000000000000000,
2106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2107   { 0.96672141255196176, 0.50000000000000000, 0.50000000000000000,
2108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2109   { 0.97176228710138646, 0.50000000000000000, 0.50000000000000000,
2110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2111   { 0.97698311668286308, 0.50000000000000000, 0.50000000000000000,
2112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2113   { 0.98239883902556036, 0.50000000000000000, 0.50000000000000000,
2114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2115   { 0.98802654401961032, 0.50000000000000000, 0.50000000000000000,
2116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2117   { 0.99388594556732701, 0.50000000000000000, 0.50000000000000000,
2118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2119   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2121   { 1.0063957328951061, 0.50000000000000000, 0.50000000000000000,
2122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2123   { 1.0131053706824598, 0.50000000000000000, 0.50000000000000000,
2124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2125   { 1.0201679332118803, 0.50000000000000000, 0.50000000000000000,
2126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2127   { 1.0276315524377497, 0.50000000000000000, 0.50000000000000000,
2128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2129   { 1.0355569942816882, 0.50000000000000000, 0.50000000000000000,
2130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2131   { 1.0440233080381554, 0.50000000000000000, 0.50000000000000000,
2132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2133   { 1.0531375808028993, 0.50000000000000000, 0.50000000000000000,
2134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2135   { 1.0630536689840200, 0.50000000000000000, 0.50000000000000000,
2136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2137   { 1.0740149570414563, 0.50000000000000000, 0.50000000000000000,
2138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2139 };
2140 const double toler042 = 2.5000000000000020e-13;
2141 
2142 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=6.0000000000000000.
2143 // max(|f - f_GSL|): 5.5511151231257827e-16 at index 7
2144 // max(|f - f_GSL| / |f_GSL|): 5.5963253065363064e-16
2145 // mean(f - f_GSL): 5.8432790769745078e-18
2146 // variance(f - f_GSL): 2.0022663489405960e-36
2147 // stddev(f - f_GSL): 1.4150146108576393e-18
2148 const testcase_hyperg<double>
2149 data043[19] =
2150 {
2151   { 0.96694084713323880, 0.50000000000000000, 0.50000000000000000,
2152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2153   { 0.97024454918852632, 0.50000000000000000, 0.50000000000000000,
2154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2155   { 0.97362815600391439, 0.50000000000000000, 0.50000000000000000,
2156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2157   { 0.97709622064205104, 0.50000000000000000, 0.50000000000000000,
2158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2159   { 0.98065374770570635, 0.50000000000000000, 0.50000000000000000,
2160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2161   { 0.98430626119885523, 0.50000000000000000, 0.50000000000000000,
2162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2163   { 0.98805988669621037, 0.50000000000000000, 0.50000000000000000,
2164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2165   { 0.99192145185739655, 0.50000000000000000, 0.50000000000000000,
2166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2167   { 0.99589861079880937, 0.50000000000000000, 0.50000000000000000,
2168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2169   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2171   { 1.0042354366729904, 0.50000000000000000, 0.50000000000000000,
2172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2173   { 1.0086161755545404, 0.50000000000000000, 0.50000000000000000,
2174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2175   { 1.0131552481403503, 0.50000000000000000, 0.50000000000000000,
2176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2177   { 1.0178679218284707, 0.50000000000000000, 0.50000000000000000,
2178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2179   { 1.0227723400312978, 0.50000000000000000, 0.50000000000000000,
2180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2181   { 1.0278904483717863, 0.50000000000000000, 0.50000000000000000,
2182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2183   { 1.0332494012993474, 0.50000000000000000, 0.50000000000000000,
2184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2185   { 1.0388838453357794, 0.50000000000000000, 0.50000000000000000,
2186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2187   { 1.0448400142331342, 0.50000000000000000, 0.50000000000000000,
2188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2189 };
2190 const double toler043 = 2.5000000000000020e-13;
2191 
2192 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=8.0000000000000000.
2193 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 7
2194 // max(|f - f_GSL| / |f_GSL|): 3.3511105824376917e-16
2195 // mean(f - f_GSL): -1.7529837230923523e-17
2196 // variance(f - f_GSL): 3.3658097325691423e-33
2197 // stddev(f - f_GSL): 5.8015599045163211e-17
2198 const testcase_hyperg<double>
2199 data044[19] =
2200 {
2201   { 0.97456073259047449, 0.50000000000000000, 0.50000000000000000,
2202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2203   { 0.97715689327833399, 0.50000000000000000, 0.50000000000000000,
2204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2205   { 0.97980416868943110, 0.50000000000000000, 0.50000000000000000,
2206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2207   { 0.98250498942832487, 0.50000000000000000, 0.50000000000000000,
2208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2209   { 0.98526199049760810, 0.50000000000000000, 0.50000000000000000,
2210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2211   { 0.98807803762902791, 0.50000000000000000, 0.50000000000000000,
2212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2213   { 0.99095625840920332, 0.50000000000000000, 0.50000000000000000,
2214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2215   { 0.99390007937387959, 0.50000000000000000, 0.50000000000000000,
2216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2217   { 0.99691327061866730, 0.50000000000000000, 0.50000000000000000,
2218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2219   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2221   { 1.0031648997547440, 0.50000000000000000, 0.50000000000000000,
2222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2223   { 1.0064131494767281, 0.50000000000000000, 0.50000000000000000,
2224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2225   { 1.0097505810668461, 0.50000000000000000, 0.50000000000000000,
2226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2227   { 1.0131838138968663, 0.50000000000000000, 0.50000000000000000,
2228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2229   { 1.0167204326938339, 0.50000000000000000, 0.50000000000000000,
2230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2231   { 1.0203692279382193, 0.50000000000000000, 0.50000000000000000,
2232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2233   { 1.0241405318057402, 0.50000000000000000, 0.50000000000000000,
2234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2235   { 1.0280467087844301, 0.50000000000000000, 0.50000000000000000,
2236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2237   { 1.0321029179180026, 0.50000000000000000, 0.50000000000000000,
2238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2239 };
2240 const double toler044 = 2.5000000000000020e-13;
2241 
2242 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=10.000000000000000.
2243 // max(|f - f_GSL|): 1.1102230246251565e-16 at index 7
2244 // max(|f - f_GSL| / |f_GSL|): 1.1156911610791411e-16
2245 // mean(f - f_GSL): 0.0000000000000000
2246 // variance(f - f_GSL): 0.0000000000000000
2247 // stddev(f - f_GSL): 0.0000000000000000
2248 const testcase_hyperg<double>
2249 data045[19] =
2250 {
2251   { 0.97930223035212138, 0.50000000000000000, 0.50000000000000000,
2252 	  10.000000000000000, -0.90000000000000002, 0.0 },
2253   { 0.98144406855076427, 0.50000000000000000, 0.50000000000000000,
2254 	  10.000000000000000, -0.80000000000000004, 0.0 },
2255   { 0.98362155940297280, 0.50000000000000000, 0.50000000000000000,
2256 	  10.000000000000000, -0.69999999999999996, 0.0 },
2257   { 0.98583616201745783, 0.50000000000000000, 0.50000000000000000,
2258 	  10.000000000000000, -0.59999999999999998, 0.0 },
2259   { 0.98808944235385032, 0.50000000000000000, 0.50000000000000000,
2260 	  10.000000000000000, -0.50000000000000000, 0.0 },
2261   { 0.99038308530635433, 0.50000000000000000, 0.50000000000000000,
2262 	  10.000000000000000, -0.39999999999999991, 0.0 },
2263   { 0.99271890872975732, 0.50000000000000000, 0.50000000000000000,
2264 	  10.000000000000000, -0.29999999999999993, 0.0 },
2265   { 0.99509887982916734, 0.50000000000000000, 0.50000000000000000,
2266 	  10.000000000000000, -0.19999999999999996, 0.0 },
2267   { 0.99752513445413604, 0.50000000000000000, 0.50000000000000000,
2268 	  10.000000000000000, -0.099999999999999978, 0.0 },
2269   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2270 	  10.000000000000000, 0.0000000000000000, 0.0 },
2271   { 1.0025260228440118, 0.50000000000000000, 0.50000000000000000,
2272 	  10.000000000000000, 0.10000000000000009, 0.0 },
2273   { 1.0051060015613384, 0.50000000000000000, 0.50000000000000000,
2274 	  10.000000000000000, 0.20000000000000018, 0.0 },
2275   { 1.0077430276253163, 0.50000000000000000, 0.50000000000000000,
2276 	  10.000000000000000, 0.30000000000000004, 0.0 },
2277   { 1.0104405359789990, 0.50000000000000000, 0.50000000000000000,
2278 	  10.000000000000000, 0.40000000000000013, 0.0 },
2279   { 1.0132023689128868, 0.50000000000000000, 0.50000000000000000,
2280 	  10.000000000000000, 0.50000000000000000, 0.0 },
2281   { 1.0160328583559475, 0.50000000000000000, 0.50000000000000000,
2282 	  10.000000000000000, 0.60000000000000009, 0.0 },
2283   { 1.0189369344885053, 0.50000000000000000, 0.50000000000000000,
2284 	  10.000000000000000, 0.70000000000000018, 0.0 },
2285   { 1.0219202735809589, 0.50000000000000000, 0.50000000000000000,
2286 	  10.000000000000000, 0.80000000000000004, 0.0 },
2287   { 1.0249895076611382, 0.50000000000000000, 0.50000000000000000,
2288 	  10.000000000000000, 0.90000000000000013, 0.0 },
2289 };
2290 const double toler045 = 2.5000000000000020e-13;
2291 
2292 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=2.0000000000000000.
2293 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
2294 // max(|f - f_GSL| / |f_GSL|): 5.8452254859313207e-16
2295 // mean(f - f_GSL): 8.1805907077643109e-17
2296 // variance(f - f_GSL): 3.8131160349224712e-32
2297 // stddev(f - f_GSL): 1.9527201629835421e-16
2298 const testcase_hyperg<double>
2299 data046[19] =
2300 {
2301   { 0.84089972268671531, 0.50000000000000000, 1.0000000000000000,
2302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2303   { 0.85410196624968460, 0.50000000000000000, 1.0000000000000000,
2304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2305   { 0.86811566011579955, 0.50000000000000000, 1.0000000000000000,
2306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2307   { 0.88303688022450522, 0.50000000000000000, 1.0000000000000000,
2308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2309   { 0.89897948556635621, 0.50000000000000000, 1.0000000000000000,
2310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2311   { 0.91607978309961580, 0.50000000000000000, 1.0000000000000000,
2312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2313   { 0.93450283399425327, 0.50000000000000000, 1.0000000000000000,
2314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2315   { 0.95445115010332193, 0.50000000000000000, 1.0000000000000000,
2316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2317   { 0.97617696340303095, 0.50000000000000000, 1.0000000000000000,
2318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2319   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2321   { 1.0263340389897240, 0.50000000000000000, 1.0000000000000000,
2322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2323   { 1.0557280900008412, 0.50000000000000000, 1.0000000000000000,
2324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2325   { 1.0889331564394962, 0.50000000000000000, 1.0000000000000000,
2326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2327   { 1.1270166537925830, 0.50000000000000000, 1.0000000000000000,
2328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2329   { 1.1715728752538095, 0.50000000000000000, 1.0000000000000000,
2330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2331   { 1.2251482265544145, 0.50000000000000000, 1.0000000000000000,
2332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2333   { 1.2922212642709543, 0.50000000000000000, 1.0000000000000000,
2334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2335   { 1.3819660112501042, 0.50000000000000000, 1.0000000000000000,
2336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2337   { 1.5194938532959121, 0.50000000000000000, 1.0000000000000000,
2338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2339 };
2340 const double toler046 = 2.5000000000000020e-13;
2341 
2342 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=4.0000000000000000.
2343 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
2344 // max(|f - f_GSL| / |f_GSL|): 1.9508457915403988e-16
2345 // mean(f - f_GSL): 2.3373116307898031e-17
2346 // variance(f - f_GSL): 2.3146198993753289e-33
2347 // stddev(f - f_GSL): 4.8110496769159731e-17
2348 const testcase_hyperg<double>
2349 data047[19] =
2350 {
2351   { 0.90992197313391454, 0.50000000000000000, 1.0000000000000000,
2352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2353   { 0.91822592662244484, 0.50000000000000000, 1.0000000000000000,
2354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2355   { 0.92687104566419554, 0.50000000000000000, 1.0000000000000000,
2356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2357   { 0.93588628166548848, 0.50000000000000000, 1.0000000000000000,
2358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2359   { 0.94530459215552909, 0.50000000000000000, 1.0000000000000000,
2360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2361   { 0.95516374875247434, 0.50000000000000000, 1.0000000000000000,
2362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2363   { 0.96550736800511816, 0.50000000000000000, 1.0000000000000000,
2364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2365   { 0.97638624595136270, 0.50000000000000000, 1.0000000000000000,
2366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2367   { 0.98786011482678993, 0.50000000000000000, 1.0000000000000000,
2368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2369   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2371   { 1.0128914530682316, 0.50000000000000000, 1.0000000000000000,
2372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2373   { 1.0266391040215350, 0.50000000000000000, 1.0000000000000000,
2374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2375   { 1.0413732738729464, 0.50000000000000000, 1.0000000000000000,
2376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2377   { 1.0572599536532992, 0.50000000000000000, 1.0000000000000000,
2378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2379   { 1.0745166004060953, 0.50000000000000000, 1.0000000000000000,
2380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2381   { 1.0934387388831386, 0.50000000000000000, 1.0000000000000000,
2382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2383   { 1.1144486980714641, 0.50000000000000000, 1.0000000000000000,
2384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2385   { 1.1381966011250106, 0.50000000000000000, 1.0000000000000000,
2386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2387   { 1.1658171625342397, 0.50000000000000000, 1.0000000000000000,
2388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2389 };
2390 const double toler047 = 2.5000000000000020e-13;
2391 
2392 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=6.0000000000000000.
2393 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
2394 // max(|f - f_GSL| / |f_GSL|): 4.5130734546221216e-16
2395 // mean(f - f_GSL): 4.6746232615796062e-17
2396 // variance(f - f_GSL): 1.2814504633219814e-34
2397 // stddev(f - f_GSL): 1.1320116886861114e-17
2398 const testcase_hyperg<double>
2399 data048[19] =
2400 {
2401   { 0.93641908369732896, 0.50000000000000000, 1.0000000000000000,
2402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2403   { 0.94256349654111271, 0.50000000000000000, 1.0000000000000000,
2404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2405   { 0.94890138508461319, 0.50000000000000000, 1.0000000000000000,
2406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2407   { 0.95544578858430029, 0.50000000000000000, 1.0000000000000000,
2408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2409   { 0.96221121193620762, 0.50000000000000000, 1.0000000000000000,
2410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2411   { 0.96921386948293542, 0.50000000000000000, 1.0000000000000000,
2412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2413   { 0.97647198488394704, 0.50000000000000000, 1.0000000000000000,
2414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2415   { 0.98400616412578656, 0.50000000000000000, 1.0000000000000000,
2416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2417   { 0.99183986544963032, 0.50000000000000000, 1.0000000000000000,
2418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2419   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2421   { 1.0085177124149158, 0.50000000000000000, 1.0000000000000000,
2422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2423   { 1.0174294150407122, 0.50000000000000000, 1.0000000000000000,
2424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2425   { 1.0267781897388850, 0.50000000000000000, 1.0000000000000000,
2426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2427   { 1.0366157405967287, 0.50000000000000000, 1.0000000000000000,
2428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2429   { 1.0470052068648839, 0.50000000000000000, 1.0000000000000000,
2430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2431   { 1.0580253905513313, 0.50000000000000000, 1.0000000000000000,
2432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2433   { 1.0697774741209765, 0.50000000000000000, 1.0000000000000000,
2434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2435   { 1.0823965556448414, 0.50000000000000000, 1.0000000000000000,
2436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2437   { 1.0960739512057103, 0.50000000000000000, 1.0000000000000000,
2438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2439 };
2440 const double toler048 = 2.5000000000000020e-13;
2441 
2442 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=8.0000000000000000.
2443 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 7
2444 // max(|f - f_GSL| / |f_GSL|): 2.2476491960642283e-16
2445 // mean(f - f_GSL): -5.8432790769745078e-18
2446 // variance(f - f_GSL): 2.0022663489405960e-36
2447 // stddev(f - f_GSL): 1.4150146108576393e-18
2448 const testcase_hyperg<double>
2449 data049[19] =
2450 {
2451   { 0.95069883346936235, 0.50000000000000000, 1.0000000000000000,
2452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2453   { 0.95559618047704131, 0.50000000000000000, 1.0000000000000000,
2454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2455   { 0.96061938755931664, 0.50000000000000000, 1.0000000000000000,
2456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2457   { 0.96577553912851333, 0.50000000000000000, 1.0000000000000000,
2458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2459   { 0.97107239473807716, 0.50000000000000000, 1.0000000000000000,
2460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2461   { 0.97651848528588481, 0.50000000000000000, 1.0000000000000000,
2462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2463   { 0.98212322830227128, 0.50000000000000000, 1.0000000000000000,
2464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2465   { 0.98789706736195781, 0.50000000000000000, 1.0000000000000000,
2466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2467   { 0.99385164237825074, 0.50000000000000000, 1.0000000000000000,
2468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2469   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2471   { 1.0063568569383123, 0.50000000000000000, 1.0000000000000000,
2472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2473   { 1.0129389344715818, 0.50000000000000000, 1.0000000000000000,
2474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2475   { 1.0197653907773940, 0.50000000000000000, 1.0000000000000000,
2476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2477   { 1.0268583912277143, 0.50000000000000000, 1.0000000000000000,
2478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2479   { 1.0342438793937092, 0.50000000000000000, 1.0000000000000000,
2480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2481   { 1.0419526514766855, 0.50000000000000000, 1.0000000000000000,
2482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2483   { 1.0500219124976327, 0.50000000000000000, 1.0000000000000000,
2484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2485   { 1.0584976491907043, 0.50000000000000000, 1.0000000000000000,
2486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2487   { 1.0674385240268101, 0.50000000000000000, 1.0000000000000000,
2488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2489 };
2490 const double toler049 = 2.5000000000000020e-13;
2491 
2492 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=10.000000000000000.
2493 // max(|f - f_GSL|): 0.0000000000000000 at index 0
2494 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
2495 // mean(f - f_GSL): 0.0000000000000000
2496 // variance(f - f_GSL): 0.0000000000000000
2497 // stddev(f - f_GSL): 0.0000000000000000
2498 const testcase_hyperg<double>
2499 data050[19] =
2500 {
2501   { 0.95968319138913905, 0.50000000000000000, 1.0000000000000000,
2502 	  10.000000000000000, -0.90000000000000002, 0.0 },
2503   { 0.96376169072755802, 0.50000000000000000, 1.0000000000000000,
2504 	  10.000000000000000, -0.80000000000000004, 0.0 },
2505   { 0.96792900082729372, 0.50000000000000000, 1.0000000000000000,
2506 	  10.000000000000000, -0.69999999999999996, 0.0 },
2507   { 0.97218942798115737, 0.50000000000000000, 1.0000000000000000,
2508 	  10.000000000000000, -0.59999999999999998, 0.0 },
2509   { 0.97654763592586835, 0.50000000000000000, 1.0000000000000000,
2510 	  10.000000000000000, -0.50000000000000000, 0.0 },
2511   { 0.98100869054353890, 0.50000000000000000, 1.0000000000000000,
2512 	  10.000000000000000, -0.39999999999999991, 0.0 },
2513   { 0.98557811238699278, 0.50000000000000000, 1.0000000000000000,
2514 	  10.000000000000000, -0.29999999999999993, 0.0 },
2515   { 0.99026193885795544, 0.50000000000000000, 1.0000000000000000,
2516 	  10.000000000000000, -0.19999999999999996, 0.0 },
2517   { 0.99506679842072221, 0.50000000000000000, 1.0000000000000000,
2518 	  10.000000000000000, -0.099999999999999978, 0.0 },
2519   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2520 	  10.000000000000000, 0.0000000000000000, 0.0 },
2521   { 1.0050696417919618, 0.50000000000000000, 1.0000000000000000,
2522 	  10.000000000000000, 0.10000000000000009, 0.0 },
2523   { 1.0102847452747090, 0.50000000000000000, 1.0000000000000000,
2524 	  10.000000000000000, 0.20000000000000018, 0.0 },
2525   { 1.0156554225057022, 0.50000000000000000, 1.0000000000000000,
2526 	  10.000000000000000, 0.30000000000000004, 0.0 },
2527   { 1.0211930882963096, 0.50000000000000000, 1.0000000000000000,
2528 	  10.000000000000000, 0.40000000000000013, 0.0 },
2529   { 1.0269107343740711, 0.50000000000000000, 1.0000000000000000,
2530 	  10.000000000000000, 0.50000000000000000, 0.0 },
2531   { 1.0328232917216298, 0.50000000000000000, 1.0000000000000000,
2532 	  10.000000000000000, 0.60000000000000009, 0.0 },
2533   { 1.0389481230247195, 0.50000000000000000, 1.0000000000000000,
2534 	  10.000000000000000, 0.70000000000000018, 0.0 },
2535   { 1.0453057164134614, 0.50000000000000000, 1.0000000000000000,
2536 	  10.000000000000000, 0.80000000000000004, 0.0 },
2537   { 1.0519207114461246, 0.50000000000000000, 1.0000000000000000,
2538 	  10.000000000000000, 0.90000000000000013, 0.0 },
2539 };
2540 const double toler050 = 2.5000000000000020e-13;
2541 
2542 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=2.0000000000000000.
2543 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
2544 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
2545 // mean(f - f_GSL): 5.8432790769745078e-18
2546 // variance(f - f_GSL): 1.1262748212790853e-32
2547 // stddev(f - f_GSL): 1.0612609581432294e-16
2548 const testcase_hyperg<double>
2549 data051[19] =
2550 {
2551   { 0.72547625011001160, 0.50000000000000000, 2.0000000000000000,
2552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2553   { 0.74535599249992990, 0.50000000000000000, 2.0000000000000000,
2554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2555   { 0.76696498884737041, 0.50000000000000000, 2.0000000000000000,
2556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2557   { 0.79056941504209477, 0.50000000000000000, 2.0000000000000000,
2558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2559   { 0.81649658092772603, 0.50000000000000000, 2.0000000000000000,
2560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2561   { 0.84515425472851669, 0.50000000000000000, 2.0000000000000000,
2562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2563   { 0.87705801930702931, 0.50000000000000000, 2.0000000000000000,
2564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2565   { 0.91287092917527690, 0.50000000000000000, 2.0000000000000000,
2566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2567   { 0.95346258924559224, 0.50000000000000000, 2.0000000000000000,
2568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2569   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2571   { 1.0540925533894598, 0.50000000000000000, 2.0000000000000000,
2572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2573   { 1.1180339887498949, 0.50000000000000000, 2.0000000000000000,
2574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2575   { 1.1952286093343938, 0.50000000000000000, 2.0000000000000000,
2576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2577   { 1.2909944487358058, 0.50000000000000000, 2.0000000000000000,
2578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2579   { 1.4142135623730951, 0.50000000000000000, 2.0000000000000000,
2580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2581   { 1.5811388300841900, 0.50000000000000000, 2.0000000000000000,
2582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2583   { 1.8257418583505542, 0.50000000000000000, 2.0000000000000000,
2584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2585   { 2.2360679774997898, 0.50000000000000000, 2.0000000000000000,
2586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2587   { 3.1622776601683809, 0.50000000000000000, 2.0000000000000000,
2588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2589 };
2590 const double toler051 = 2.5000000000000020e-13;
2591 
2592 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=4.0000000000000000.
2593 // max(|f - f_GSL|): 6.6613381477509392e-16 at index 18
2594 // max(|f - f_GSL| / |f_GSL|): 4.6340403913587147e-16
2595 // mean(f - f_GSL): 7.5962628000668607e-17
2596 // variance(f - f_GSL): 2.0425119025543020e-32
2597 // stddev(f - f_GSL): 1.4291647569662155e-16
2598 const testcase_hyperg<double>
2599 data052[19] =
2600 {
2601   { 0.83664260086443765, 0.50000000000000000, 2.0000000000000000,
2602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2603   { 0.85046584300227079, 0.50000000000000000, 2.0000000000000000,
2604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2605   { 0.86509574979651649, 0.50000000000000000, 2.0000000000000000,
2606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2607   { 0.88062082573041911, 0.50000000000000000, 2.0000000000000000,
2608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2609   { 0.89714464248521597, 0.50000000000000000, 2.0000000000000000,
2610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2611   { 0.91478946588967569, 0.50000000000000000, 2.0000000000000000,
2612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2613   { 0.93370105322348607, 0.50000000000000000, 2.0000000000000000,
2614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2615   { 0.95405511057700887, 0.50000000000000000, 2.0000000000000000,
2616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2617   { 0.97606616007978142, 0.50000000000000000, 2.0000000000000000,
2618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2619   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2621   { 1.0261916902334731, 0.50000000000000000, 2.0000000000000000,
2622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2623   { 1.0550723519434702, 0.50000000000000000, 2.0000000000000000,
2624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2625   { 1.0872106588188091, 0.50000000000000000, 2.0000000000000000,
2626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2627   { 1.1233801699379022, 0.50000000000000000, 2.0000000000000000,
2628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2629   { 1.1646752981725688, 0.50000000000000000, 2.0000000000000000,
2630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2631   { 1.2127272514219511, 0.50000000000000000, 2.0000000000000000,
2632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2633   { 1.2701518651068637, 0.50000000000000000, 2.0000000000000000,
2634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2635   { 1.3416407864998725, 0.50000000000000000, 2.0000000000000000,
2636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2637   { 1.4374795179111106, 0.50000000000000000, 2.0000000000000000,
2638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2639 };
2640 const double toler052 = 2.5000000000000020e-13;
2641 
2642 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=6.0000000000000000.
2643 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
2644 // max(|f - f_GSL| / |f_GSL|): 3.3853500746952663e-16
2645 // mean(f - f_GSL): 1.1686558153949016e-17
2646 // variance(f - f_GSL): 2.5949371882270124e-33
2647 // stddev(f - f_GSL): 5.0940525990875012e-17
2648 const testcase_hyperg<double>
2649 data053[19] =
2650 {
2651   { 0.88195381730235822, 0.50000000000000000, 2.0000000000000000,
2652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2653   { 0.89265078469555081, 0.50000000000000000, 2.0000000000000000,
2654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2655   { 0.90382937908303673, 0.50000000000000000, 2.0000000000000000,
2656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2657   { 0.91553161389880600, 0.50000000000000000, 2.0000000000000000,
2658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2659   { 0.92780530349281509, 0.50000000000000000, 2.0000000000000000,
2660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2661   { 0.94070521140346020, 0.50000000000000000, 2.0000000000000000,
2662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2663   { 0.95429450630523349, 0.50000000000000000, 2.0000000000000000,
2664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2665   { 0.96864663325785849, 0.50000000000000000, 2.0000000000000000,
2666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2667   { 0.98384775588541795, 0.50000000000000000, 2.0000000000000000,
2668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2669   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2671   { 1.0172258496884334, 0.50000000000000000, 2.0000000000000000,
2672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2673   { 1.0356742479163461, 0.50000000000000000, 2.0000000000000000,
2674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2675   { 1.0555293036908924, 0.50000000000000000, 2.0000000000000000,
2676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2677   { 1.0770231491562379, 0.50000000000000000, 2.0000000000000000,
2678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2679   { 1.1004557416484888, 0.50000000000000000, 2.0000000000000000,
2680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2681   { 1.1262270515731978, 0.50000000000000000, 2.0000000000000000,
2682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2683   { 1.1548932919125088, 0.50000000000000000, 2.0000000000000000,
2684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2685   { 1.1872757758134724, 0.50000000000000000, 2.0000000000000000,
2686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2687   { 1.2247091713458949, 0.50000000000000000, 2.0000000000000000,
2688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2689 };
2690 const double toler053 = 2.5000000000000020e-13;
2691 
2692 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=8.0000000000000000.
2693 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
2694 // max(|f - f_GSL| / |f_GSL|): 1.9683492716399738e-16
2695 // mean(f - f_GSL): 1.7529837230923523e-17
2696 // variance(f - f_GSL): 2.4527762774522302e-33
2697 // stddev(f - f_GSL): 4.9525511380017369e-17
2698 const testcase_hyperg<double>
2699 data054[19] =
2700 {
2701   { 0.90716919697107279, 0.50000000000000000, 2.0000000000000000,
2702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2703   { 0.91592299407142508, 0.50000000000000000, 2.0000000000000000,
2704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2705   { 0.92500027075874192, 0.50000000000000000, 2.0000000000000000,
2706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2707   { 0.93442464185467122, 0.50000000000000000, 2.0000000000000000,
2708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2709   { 0.94422248683737076, 0.50000000000000000, 2.0000000000000000,
2710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2711   { 0.95442341810133347, 0.50000000000000000, 2.0000000000000000,
2712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2713   { 0.96506085725516355, 0.50000000000000000, 2.0000000000000000,
2714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2715   { 0.97617275213704069, 0.50000000000000000, 2.0000000000000000,
2716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2717   { 0.98780247986309799, 0.50000000000000000, 2.0000000000000000,
2718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2719   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2721   { 1.0128233505813447, 0.50000000000000000, 2.0000000000000000,
2722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2723   { 1.0263406246541855, 0.50000000000000000, 2.0000000000000000,
2724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2725   { 1.0406326381700366, 0.50000000000000000, 2.0000000000000000,
2726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2727   { 1.0557966239802845, 0.50000000000000000, 2.0000000000000000,
2728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2729   { 1.0719515075786321, 0.50000000000000000, 2.0000000000000000,
2730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2731   { 1.0892457392422055, 0.50000000000000000, 2.0000000000000000,
2732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2733   { 1.1078695188000958, 0.50000000000000000, 2.0000000000000000,
2734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2735   { 1.1280752258974340, 0.50000000000000000, 2.0000000000000000,
2736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2737   { 1.1502152002706476, 0.50000000000000000, 2.0000000000000000,
2738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2739 };
2740 const double toler054 = 2.5000000000000020e-13;
2741 
2742 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=10.000000000000000.
2743 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
2744 // max(|f - f_GSL| / |f_GSL|): 3.3636359087105992e-16
2745 // mean(f - f_GSL): 2.9216395384872539e-17
2746 // variance(f - f_GSL): 2.1804680539963092e-33
2747 // stddev(f - f_GSL): 4.6695482158302094e-17
2748 const testcase_hyperg<double>
2749 data055[19] =
2750 {
2751   { 0.92336416053263082, 0.50000000000000000, 2.0000000000000000,
2752 	  10.000000000000000, -0.90000000000000002, 0.0 },
2753   { 0.93078397248364542, 0.50000000000000000, 2.0000000000000000,
2754 	  10.000000000000000, -0.80000000000000004, 0.0 },
2755   { 0.93843714333600259, 0.50000000000000000, 2.0000000000000000,
2756 	  10.000000000000000, -0.69999999999999996, 0.0 },
2757   { 0.94633837784068098, 0.50000000000000000, 2.0000000000000000,
2758 	  10.000000000000000, -0.59999999999999998, 0.0 },
2759   { 0.95450388104967876, 0.50000000000000000, 2.0000000000000000,
2760 	  10.000000000000000, -0.50000000000000000, 0.0 },
2761   { 0.96295158125742752, 0.50000000000000000, 2.0000000000000000,
2762 	  10.000000000000000, -0.39999999999999991, 0.0 },
2763   { 0.97170139827854329, 0.50000000000000000, 2.0000000000000000,
2764 	  10.000000000000000, -0.29999999999999993, 0.0 },
2765   { 0.98077556918512687, 0.50000000000000000, 2.0000000000000000,
2766 	  10.000000000000000, -0.19999999999999996, 0.0 },
2767   { 0.99019904777750845, 0.50000000000000000, 2.0000000000000000,
2768 	  10.000000000000000, -0.099999999999999978, 0.0 },
2769   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2770 	  10.000000000000000, 0.0000000000000000, 0.0 },
2771   { 1.0102104261941198, 0.50000000000000000, 2.0000000000000000,
2772 	  10.000000000000000, 0.10000000000000009, 0.0 },
2773   { 1.0208669540935695, 0.50000000000000000, 2.0000000000000000,
2774 	  10.000000000000000, 0.20000000000000018, 0.0 },
2775   { 1.0320118665407505, 0.50000000000000000, 2.0000000000000000,
2776 	  10.000000000000000, 0.30000000000000004, 0.0 },
2777   { 1.0436944599504387, 0.50000000000000000, 2.0000000000000000,
2778 	  10.000000000000000, 0.40000000000000013, 0.0 },
2779   { 1.0559728828278145, 0.50000000000000000, 2.0000000000000000,
2780 	  10.000000000000000, 0.50000000000000000, 0.0 },
2781   { 1.0689166967761712, 0.50000000000000000, 2.0000000000000000,
2782 	  10.000000000000000, 0.60000000000000009, 0.0 },
2783   { 1.0826105758119842, 0.50000000000000000, 2.0000000000000000,
2784 	  10.000000000000000, 0.70000000000000018, 0.0 },
2785   { 1.0971599106346146, 0.50000000000000000, 2.0000000000000000,
2786 	  10.000000000000000, 0.80000000000000004, 0.0 },
2787   { 1.1126998828023964, 0.50000000000000000, 2.0000000000000000,
2788 	  10.000000000000000, 0.90000000000000013, 0.0 },
2789 };
2790 const double toler055 = 2.5000000000000020e-13;
2791 
2792 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=2.0000000000000000.
2793 // max(|f - f_GSL|): 4.5474735088646412e-13 at index 18
2794 // max(|f - f_GSL| / |f_GSL|): 1.5124797514980592e-15
2795 // mean(f - f_GSL): 2.5336458077761468e-14
2796 // variance(f - f_GSL): 1.0813211674051158e-26
2797 // stddev(f - f_GSL): 1.0398659372270619e-13
2798 const testcase_hyperg<double>
2799 data056[19] =
2800 {
2801   { 0.52275983209457544, 0.50000000000000000, 5.0000000000000000,
2802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2803   { 0.54700336898143009, 0.50000000000000000, 5.0000000000000000,
2804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2805   { 0.57468955512602038, 0.50000000000000000, 5.0000000000000000,
2806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2807   { 0.60665490543315048, 0.50000000000000000, 5.0000000000000000,
2808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2809   { 0.64403057859056190, 0.50000000000000000, 5.0000000000000000,
2810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2811   { 0.68838183648623719, 0.50000000000000000, 5.0000000000000000,
2812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2813   { 0.74193265039311118, 0.50000000000000000, 5.0000000000000000,
2814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2815   { 0.80794095908995300, 0.50000000000000000, 5.0000000000000000,
2816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2817   { 0.89135275749639320, 0.50000000000000000, 5.0000000000000000,
2818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2819   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2821   { 1.1469266219310688, 0.50000000000000000, 5.0000000000000000,
2822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2823   { 1.3552340708357493, 0.50000000000000000, 5.0000000000000000,
2824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2825   { 1.6690840478838305, 0.50000000000000000, 5.0000000000000000,
2826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2827   { 2.1815415453174500, 0.50000000000000000, 5.0000000000000000,
2828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2829   { 3.1156892546032235, 0.50000000000000000, 5.0000000000000000,
2830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2831   { 5.1109077417760416, 0.50000000000000000, 5.0000000000000000,
2832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2833   { 10.560352936466318, 0.50000000000000000, 5.0000000000000000,
2834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2835   { 33.541019662496815, 0.50000000000000000, 5.0000000000000000,
2836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2837   { 300.66343065819723, 0.50000000000000000, 5.0000000000000000,
2838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2839 };
2840 const double toler056 = 2.5000000000000020e-13;
2841 
2842 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=4.0000000000000000.
2843 // max(|f - f_GSL|): 8.8817841970012523e-15 at index 18
2844 // max(|f - f_GSL| / |f_GSL|): 1.3217255411112292e-15
2845 // mean(f - f_GSL): 6.8950693108299193e-16
2846 // variance(f - f_GSL): 3.9356627445430313e-30
2847 // stddev(f - f_GSL): 1.9838504844224102e-15
2848 const testcase_hyperg<double>
2849 data057[19] =
2850 {
2851   { 0.68252041951139286, 0.50000000000000000, 5.0000000000000000,
2852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2853   { 0.70394732624993395, 0.50000000000000000, 5.0000000000000000,
2854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2855   { 0.72748884971552052, 0.50000000000000000, 5.0000000000000000,
2856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2857   { 0.75351147371199667, 0.50000000000000000, 5.0000000000000000,
2858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2859   { 0.78247589005573737, 0.50000000000000000, 5.0000000000000000,
2860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2861   { 0.81497017420249795, 0.50000000000000000, 5.0000000000000000,
2862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2863   { 0.85175826875009608, 0.50000000000000000, 5.0000000000000000,
2864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2865   { 0.89385278481745867, 0.50000000000000000, 5.0000000000000000,
2866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2867   { 0.94262778709507411, 0.50000000000000000, 5.0000000000000000,
2868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2869   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2871   { 1.0687327277420910, 0.50000000000000000, 5.0000000000000000,
2872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2873   { 1.1529725508983291, 0.50000000000000000, 5.0000000000000000,
2874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2875   { 1.2592587134058799, 0.50000000000000000, 5.0000000000000000,
2876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2877   { 1.3985773194637896, 0.50000000000000000, 5.0000000000000000,
2878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2879   { 1.5909902576697317, 0.50000000000000000, 5.0000000000000000,
2880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2881   { 1.8776023607249752, 0.50000000000000000, 5.0000000000000000,
2882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2883   { 2.3582499003694664, 0.50000000000000000, 5.0000000000000000,
2884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2885   { 3.3541019662496838, 0.50000000000000000, 5.0000000000000000,
2886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2887   { 6.7198400278578028, 0.50000000000000000, 5.0000000000000000,
2888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2889 };
2890 const double toler057 = 2.5000000000000020e-13;
2891 
2892 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=6.0000000000000000.
2893 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
2894 // max(|f - f_GSL| / |f_GSL|): 1.2228264607471081e-15
2895 // mean(f - f_GSL): 2.2788788400200583e-16
2896 // variance(f - f_GSL): 3.4817209315093131e-31
2897 // stddev(f - f_GSL): 5.9006109272763554e-16
2898 const testcase_hyperg<double>
2899 data058[19] =
2900 {
2901   { 0.75755211927082600, 0.50000000000000000, 5.0000000000000000,
2902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2903   { 0.77603550233010965, 0.50000000000000000, 5.0000000000000000,
2904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2905   { 0.79596241913438504, 0.50000000000000000, 5.0000000000000000,
2906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2907   { 0.81753360792105212, 0.50000000000000000, 5.0000000000000000,
2908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2909   { 0.84099165409805532, 0.50000000000000000, 5.0000000000000000,
2910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2911   { 0.86663303852180906, 0.50000000000000000, 5.0000000000000000,
2912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2913   { 0.89482475828629915, 0.50000000000000000, 5.0000000000000000,
2914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2915   { 0.92602774279590350, 0.50000000000000000, 5.0000000000000000,
2916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2917   { 0.96083064727087386, 0.50000000000000000, 5.0000000000000000,
2918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2919   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2921   { 1.0445570841313008, 0.50000000000000000, 5.0000000000000000,
2922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2923   { 1.0959004638926033, 0.50000000000000000, 5.0000000000000000,
2924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2925   { 1.1560106261370562, 0.50000000000000000, 5.0000000000000000,
2926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2927   { 1.2278121770678148, 0.50000000000000000, 5.0000000000000000,
2928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2929   { 1.3158640214709998, 0.50000000000000000, 5.0000000000000000,
2930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2931   { 1.4278095344155000, 0.50000000000000000, 5.0000000000000000,
2932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2933   { 1.5778700502946617, 0.50000000000000000, 5.0000000000000000,
2934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2935   { 1.7972173289196469, 0.50000000000000000, 5.0000000000000000,
2936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2937   { 2.1789970569269732, 0.50000000000000000, 5.0000000000000000,
2938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2939 };
2940 const double toler058 = 2.5000000000000020e-13;
2941 
2942 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=8.0000000000000000.
2943 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
2944 // max(|f - f_GSL| / |f_GSL|): 5.6109827053892650e-16
2945 // mean(f - f_GSL): 7.5962628000668607e-17
2946 // variance(f - f_GSL): 3.8685788127881258e-32
2947 // stddev(f - f_GSL): 1.9668703090921186e-16
2948 const testcase_hyperg<double>
2949 data059[19] =
2950 {
2951   { 0.80270093579329460, 0.50000000000000000, 5.0000000000000000,
2952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2953   { 0.81884974572462765, 0.50000000000000000, 5.0000000000000000,
2954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2955   { 0.83605266330015260, 0.50000000000000000, 5.0000000000000000,
2956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2957   { 0.85443340762796027, 0.50000000000000000, 5.0000000000000000,
2958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2959   { 0.87413762182790711, 0.50000000000000000, 5.0000000000000000,
2960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2961   { 0.89533826626907298, 0.50000000000000000, 5.0000000000000000,
2962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2963   { 0.91824276674115313, 0.50000000000000000, 5.0000000000000000,
2964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2965   { 0.94310265050720576, 0.50000000000000000, 5.0000000000000000,
2966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2967   { 0.97022678857609712, 0.50000000000000000, 5.0000000000000000,
2968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2969   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2971   { 1.0329098673199812, 0.50000000000000000, 5.0000000000000000,
2972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2973   { 1.0695865684573389, 0.50000000000000000, 5.0000000000000000,
2974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2975   { 1.1108642103944570, 0.50000000000000000, 5.0000000000000000,
2976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2977   { 1.1578795055970506, 0.50000000000000000, 5.0000000000000000,
2978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2979   { 1.2122394794169442, 0.50000000000000000, 5.0000000000000000,
2980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2981   { 1.2763274721556934, 0.50000000000000000, 5.0000000000000000,
2982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2983   { 1.3539179650251021, 0.50000000000000000, 5.0000000000000000,
2984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2985   { 1.4515986118197148, 0.50000000000000000, 5.0000000000000000,
2986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2987   { 1.5829284571614224, 0.50000000000000000, 5.0000000000000000,
2988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2989 };
2990 const double toler059 = 2.5000000000000020e-13;
2991 
2992 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=10.000000000000000.
2993 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
2994 // max(|f - f_GSL| / |f_GSL|): 3.2099086385883890e-16
2995 // mean(f - f_GSL): 5.8432790769745078e-17
2996 // variance(f - f_GSL): 8.7218722159852367e-33
2997 // stddev(f - f_GSL): 9.3390964316604188e-17
2998 const testcase_hyperg<double>
2999 data060[19] =
3000 {
3001   { 0.83322694172301981, 0.50000000000000000, 5.0000000000000000,
3002 	  10.000000000000000, -0.90000000000000002, 0.0 },
3003   { 0.84753931604765675, 0.50000000000000000, 5.0000000000000000,
3004 	  10.000000000000000, -0.80000000000000004, 0.0 },
3005   { 0.86265784532195022, 0.50000000000000000, 5.0000000000000000,
3006 	  10.000000000000000, -0.69999999999999996, 0.0 },
3007   { 0.87866479300707090, 0.50000000000000000, 5.0000000000000000,
3008 	  10.000000000000000, -0.59999999999999998, 0.0 },
3009   { 0.89565516540263501, 0.50000000000000000, 5.0000000000000000,
3010 	  10.000000000000000, -0.50000000000000000, 0.0 },
3011   { 0.91373946207610557, 0.50000000000000000, 5.0000000000000000,
3012 	  10.000000000000000, -0.39999999999999991, 0.0 },
3013   { 0.93304721345881914, 0.50000000000000000, 5.0000000000000000,
3014 	  10.000000000000000, -0.29999999999999993, 0.0 },
3015   { 0.95373159512905148, 0.50000000000000000, 5.0000000000000000,
3016 	  10.000000000000000, -0.19999999999999996, 0.0 },
3017   { 0.97597554238828121, 0.50000000000000000, 5.0000000000000000,
3018 	  10.000000000000000, -0.099999999999999978, 0.0 },
3019   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
3020 	  10.000000000000000, 0.0000000000000000, 0.0 },
3021   { 1.0260752851887982, 0.50000000000000000, 5.0000000000000000,
3022 	  10.000000000000000, 0.10000000000000009, 0.0 },
3023   { 1.0545371197996178, 0.50000000000000000, 5.0000000000000000,
3024 	  10.000000000000000, 0.20000000000000018, 0.0 },
3025   { 1.0858099017045830, 0.50000000000000000, 5.0000000000000000,
3026 	  10.000000000000000, 0.30000000000000004, 0.0 },
3027   { 1.1204416568688709, 0.50000000000000000, 5.0000000000000000,
3028 	  10.000000000000000, 0.40000000000000013, 0.0 },
3029   { 1.1591587835964847, 0.50000000000000000, 5.0000000000000000,
3030 	  10.000000000000000, 0.50000000000000000, 0.0 },
3031   { 1.2029564720303347, 0.50000000000000000, 5.0000000000000000,
3032 	  10.000000000000000, 0.60000000000000009, 0.0 },
3033   { 1.2532588722007874, 0.50000000000000000, 5.0000000000000000,
3034 	  10.000000000000000, 0.70000000000000018, 0.0 },
3035   { 1.3122319926925459, 0.50000000000000000, 5.0000000000000000,
3036 	  10.000000000000000, 0.80000000000000004, 0.0 },
3037   { 1.3834948587364102, 0.50000000000000000, 5.0000000000000000,
3038 	  10.000000000000000, 0.90000000000000013, 0.0 },
3039 };
3040 const double toler060 = 2.5000000000000020e-13;
3041 
3042 // Test data for a=0.50000000000000000, b=10.000000000000000, c=2.0000000000000000.
3043 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
3044 // max(|f - f_GSL| / |f_GSL|): 1.8229127098647768e-15
3045 // mean(f - f_GSL): 7.8543415046726153e-10
3046 // variance(f - f_GSL): 1.1684633485497506e-17
3047 // stddev(f - f_GSL): 3.4182793164832956e-09
3048 const testcase_hyperg<double>
3049 data061[19] =
3050 {
3051   { 0.37727530159464628, 0.50000000000000000, 10.000000000000000,
3052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3053   { 0.39816010922169059, 0.50000000000000000, 10.000000000000000,
3054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3055   { 0.42283703041362447, 0.50000000000000000, 10.000000000000000,
3056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3057   { 0.45255640448730527, 0.50000000000000000, 10.000000000000000,
3058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3059   { 0.48919507154431119, 0.50000000000000000, 10.000000000000000,
3060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3061   { 0.53569358917731902, 0.50000000000000000, 10.000000000000000,
3062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3063   { 0.59689778897029577, 0.50000000000000000, 10.000000000000000,
3064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3065   { 0.68128587569875765, 0.50000000000000000, 10.000000000000000,
3066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3067   { 0.80478739308790359, 0.50000000000000000, 10.000000000000000,
3068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3069   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3071   { 1.3408664196153621, 0.50000000000000000, 10.000000000000000,
3072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3073   { 2.0175364359923882, 0.50000000000000000, 10.000000000000000,
3074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3075   { 3.6011214553736646, 0.50000000000000000, 10.000000000000000,
3076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3077   { 8.1799429939495489, 0.50000000000000000, 10.000000000000000,
3078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3079   { 25.644834637536000, 0.50000000000000000, 10.000000000000000,
3080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3081   { 123.13738891597615, 0.50000000000000000, 10.000000000000000,
3082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3083   { 1088.7122410321385, 0.50000000000000000, 10.000000000000000,
3084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3085   { 27358.291704709951, 0.50000000000000000, 10.000000000000000,
3086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3087   { 8174369.0266732639, 0.50000000000000000, 10.000000000000000,
3088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3089 };
3090 const double toler061 = 2.5000000000000020e-13;
3091 
3092 // Test data for a=0.50000000000000000, b=10.000000000000000, c=4.0000000000000000.
3093 // max(|f - f_GSL|): 2.0008883439004421e-11 at index 18
3094 // max(|f - f_GSL| / |f_GSL|): 1.5684473872214445e-15
3095 // mean(f - f_GSL): 1.0626587329385841e-12
3096 // variance(f - f_GSL): 2.1050090066796454e-23
3097 // stddev(f - f_GSL): 4.5880377141863658e-12
3098 const testcase_hyperg<double>
3099 data062[19] =
3100 {
3101   { 0.53905528308450823, 0.50000000000000000, 10.000000000000000,
3102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3103   { 0.56235533974376162, 0.50000000000000000, 10.000000000000000,
3104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3105   { 0.58887657983263575, 0.50000000000000000, 10.000000000000000,
3106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3107   { 0.61941227047262937, 0.50000000000000000, 10.000000000000000,
3108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3109   { 0.65504896640793864, 0.50000000000000000, 10.000000000000000,
3110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3111   { 0.69731666644529977, 0.50000000000000000, 10.000000000000000,
3112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3113   { 0.74844073299399116, 0.50000000000000000, 10.000000000000000,
3114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3115   { 0.81178446800105830, 0.50000000000000000, 10.000000000000000,
3116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3117   { 0.89266981277598045, 0.50000000000000000, 10.000000000000000,
3118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3119   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3121   { 1.1497248473106778, 0.50000000000000000, 10.000000000000000,
3122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3123   { 1.3729717112654578, 0.50000000000000000, 10.000000000000000,
3124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3125   { 1.7374982340374392, 0.50000000000000000, 10.000000000000000,
3126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3127   { 2.4134479340960602, 0.50000000000000000, 10.000000000000000,
3128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3129   { 3.9191255240471192, 0.50000000000000000, 10.000000000000000,
3130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3131   { 8.3316373077761270, 0.50000000000000000, 10.000000000000000,
3132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3133   { 28.323020339843417, 0.50000000000000000, 10.000000000000000,
3134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3135   { 225.84286572747891, 0.50000000000000000, 10.000000000000000,
3136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3137   { 12757.127591286826, 0.50000000000000000, 10.000000000000000,
3138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3139 };
3140 const double toler062 = 2.5000000000000020e-13;
3141 
3142 // Test data for a=0.50000000000000000, b=10.000000000000000, c=6.0000000000000000.
3143 // max(|f - f_GSL|): 1.9895196601282805e-13 at index 18
3144 // max(|f - f_GSL| / |f_GSL|): 1.4567107859209851e-15
3145 // mean(f - f_GSL): 1.1043797455481820e-14
3146 // variance(f - f_GSL): 2.0706176432127926e-27
3147 // stddev(f - f_GSL): 4.5504039855959963e-14
3148 const testcase_hyperg<double>
3149 data063[19] =
3150 {
3151   { 0.62672622092226027, 0.50000000000000000, 10.000000000000000,
3152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3153   { 0.64931010269769840, 0.50000000000000000, 10.000000000000000,
3154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3155   { 0.67448067519076293, 0.50000000000000000, 10.000000000000000,
3156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3157   { 0.70276306239803643, 0.50000000000000000, 10.000000000000000,
3158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3159   { 0.73484179773087521, 0.50000000000000000, 10.000000000000000,
3160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3161   { 0.77162761412743874, 0.50000000000000000, 10.000000000000000,
3162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3163   { 0.81436116844816553, 0.50000000000000000, 10.000000000000000,
3164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3165   { 0.86477994787944579, 0.50000000000000000, 10.000000000000000,
3166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3167   { 0.92539820516603888, 0.50000000000000000, 10.000000000000000,
3168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3169   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3171   { 1.0945599448210315, 0.50000000000000000, 10.000000000000000,
3172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3173   { 1.2190897395597269, 0.50000000000000000, 10.000000000000000,
3174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3175   { 1.3916844336856475, 0.50000000000000000, 10.000000000000000,
3176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3177   { 1.6484497630432020, 0.50000000000000000, 10.000000000000000,
3178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3179   { 2.0717772717131155, 0.50000000000000000, 10.000000000000000,
3180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3181   { 2.8893613630810924, 0.50000000000000000, 10.000000000000000,
3182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3183   { 4.9459404075413573, 0.50000000000000000, 10.000000000000000,
3184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3185   { 13.487394149998716, 0.50000000000000000, 10.000000000000000,
3186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3187   { 136.57616044014080, 0.50000000000000000, 10.000000000000000,
3188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3189 };
3190 const double toler063 = 2.5000000000000020e-13;
3191 
3192 // Test data for a=0.50000000000000000, b=10.000000000000000, c=8.0000000000000000.
3193 // max(|f - f_GSL|): 1.2434497875801753e-14 at index 18
3194 // max(|f - f_GSL| / |f_GSL|): 1.3245081211977792e-15
3195 // mean(f - f_GSL): 8.5311874523827817e-16
3196 // variance(f - f_GSL): 7.8655509529357183e-30
3197 // stddev(f - f_GSL): 2.8045589587198410e-15
3198 const testcase_hyperg<double>
3199 data064[19] =
3200 {
3201   { 0.68421604440344319, 0.50000000000000000, 10.000000000000000,
3202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3203   { 0.70548098055548925, 0.50000000000000000, 10.000000000000000,
3204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3205   { 0.72884342311710337, 0.50000000000000000, 10.000000000000000,
3206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3207   { 0.75466953437856232, 0.50000000000000000, 10.000000000000000,
3208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3209   { 0.78342090924662589, 0.50000000000000000, 10.000000000000000,
3210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3211   { 0.81568884278645115, 0.50000000000000000, 10.000000000000000,
3212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3213   { 0.85224480241465261, 0.50000000000000000, 10.000000000000000,
3214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3215   { 0.89411692571131685, 0.50000000000000000, 10.000000000000000,
3216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3217   { 0.94270986892954811, 0.50000000000000000, 10.000000000000000,
3218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3219   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3221   { 1.0688682849120232, 0.50000000000000000, 10.000000000000000,
3222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3223   { 1.1537004376097553, 0.50000000000000000, 10.000000000000000,
3224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3225   { 1.2615455028370031, 0.50000000000000000, 10.000000000000000,
3226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3227   { 1.4045541456153443, 0.50000000000000000, 10.000000000000000,
3228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3229   { 1.6057216489444517, 0.50000000000000000, 10.000000000000000,
3230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3231   { 1.9146603020550739, 0.50000000000000000, 10.000000000000000,
3232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3233   { 2.4617931307620307, 0.50000000000000000, 10.000000000000000,
3234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3235   { 3.7267799624996498, 0.50000000000000000, 10.000000000000000,
3236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3237   { 9.3880118036248721, 0.50000000000000000, 10.000000000000000,
3238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3239 };
3240 const double toler064 = 2.5000000000000020e-13;
3241 
3242 // Test data for a=0.50000000000000000, b=10.000000000000000, c=10.000000000000000.
3243 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
3244 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
3245 // mean(f - f_GSL): 5.8432790769745078e-18
3246 // variance(f - f_GSL): 1.1262748212790853e-32
3247 // stddev(f - f_GSL): 1.0612609581432294e-16
3248 const testcase_hyperg<double>
3249 data065[19] =
3250 {
3251   { 0.72547625011001160, 0.50000000000000000, 10.000000000000000,
3252 	  10.000000000000000, -0.90000000000000002, 0.0 },
3253   { 0.74535599249992990, 0.50000000000000000, 10.000000000000000,
3254 	  10.000000000000000, -0.80000000000000004, 0.0 },
3255   { 0.76696498884737041, 0.50000000000000000, 10.000000000000000,
3256 	  10.000000000000000, -0.69999999999999996, 0.0 },
3257   { 0.79056941504209477, 0.50000000000000000, 10.000000000000000,
3258 	  10.000000000000000, -0.59999999999999998, 0.0 },
3259   { 0.81649658092772603, 0.50000000000000000, 10.000000000000000,
3260 	  10.000000000000000, -0.50000000000000000, 0.0 },
3261   { 0.84515425472851669, 0.50000000000000000, 10.000000000000000,
3262 	  10.000000000000000, -0.39999999999999991, 0.0 },
3263   { 0.87705801930702931, 0.50000000000000000, 10.000000000000000,
3264 	  10.000000000000000, -0.29999999999999993, 0.0 },
3265   { 0.91287092917527690, 0.50000000000000000, 10.000000000000000,
3266 	  10.000000000000000, -0.19999999999999996, 0.0 },
3267   { 0.95346258924559224, 0.50000000000000000, 10.000000000000000,
3268 	  10.000000000000000, -0.099999999999999978, 0.0 },
3269   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3270 	  10.000000000000000, 0.0000000000000000, 0.0 },
3271   { 1.0540925533894598, 0.50000000000000000, 10.000000000000000,
3272 	  10.000000000000000, 0.10000000000000009, 0.0 },
3273   { 1.1180339887498949, 0.50000000000000000, 10.000000000000000,
3274 	  10.000000000000000, 0.20000000000000018, 0.0 },
3275   { 1.1952286093343938, 0.50000000000000000, 10.000000000000000,
3276 	  10.000000000000000, 0.30000000000000004, 0.0 },
3277   { 1.2909944487358058, 0.50000000000000000, 10.000000000000000,
3278 	  10.000000000000000, 0.40000000000000013, 0.0 },
3279   { 1.4142135623730951, 0.50000000000000000, 10.000000000000000,
3280 	  10.000000000000000, 0.50000000000000000, 0.0 },
3281   { 1.5811388300841900, 0.50000000000000000, 10.000000000000000,
3282 	  10.000000000000000, 0.60000000000000009, 0.0 },
3283   { 1.8257418583505542, 0.50000000000000000, 10.000000000000000,
3284 	  10.000000000000000, 0.70000000000000018, 0.0 },
3285   { 2.2360679774997898, 0.50000000000000000, 10.000000000000000,
3286 	  10.000000000000000, 0.80000000000000004, 0.0 },
3287   { 3.1622776601683809, 0.50000000000000000, 10.000000000000000,
3288 	  10.000000000000000, 0.90000000000000013, 0.0 },
3289 };
3290 const double toler065 = 2.5000000000000020e-13;
3291 
3292 // Test data for a=0.50000000000000000, b=20.000000000000000, c=2.0000000000000000.
3293 // max(|f - f_GSL|): 48.000000000000000 at index 18
3294 // max(|f - f_GSL| / |f_GSL|): 1.8556481344874416e-15
3295 // mean(f - f_GSL): 2.5263190030329112
3296 // variance(f - f_GSL): 121.26314075575490
3297 // stddev(f - f_GSL): 11.011954447588080
3298 const testcase_hyperg<double>
3299 data066[19] =
3300 {
3301   { 0.26690449940521549, 0.50000000000000000, 20.000000000000000,
3302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3303   { 0.28252302866181833, 0.50000000000000000, 20.000000000000000,
3304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3305   { 0.30123616141153836, 0.50000000000000000, 20.000000000000000,
3306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3307   { 0.32421384687602633, 0.50000000000000000, 20.000000000000000,
3308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3309   { 0.35334630811776774, 0.50000000000000000, 20.000000000000000,
3310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3311   { 0.39191793127466995, 0.50000000000000000, 20.000000000000000,
3312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3313   { 0.44620488618129212, 0.50000000000000000, 20.000000000000000,
3314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3315   { 0.52980896919265719, 0.50000000000000000, 20.000000000000000,
3316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3317   { 0.67754711477562324, 0.50000000000000000, 20.000000000000000,
3318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3319   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3321   { 1.9567557771780317, 0.50000000000000000, 20.000000000000000,
3322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3323   { 6.1816042148333272, 0.50000000000000000, 20.000000000000000,
3324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3325   { 35.653088618561227, 0.50000000000000000, 20.000000000000000,
3326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3327   { 377.51482843180133, 0.50000000000000000, 20.000000000000000,
3328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3329   { 7645.8816551195359, 0.50000000000000000, 20.000000000000000,
3330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3331   { 354791.74537980522, 0.50000000000000000, 20.000000000000000,
3332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3333   { 57009889.966639392, 0.50000000000000000, 20.000000000000000,
3334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3335   { 83771357024.863937, 0.50000000000000000, 20.000000000000000,
3336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3337   { 25866972896377436., 0.50000000000000000, 20.000000000000000,
3338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3339 };
3340 const double toler066 = 2.5000000000000020e-13;
3341 
3342 // Test data for a=0.50000000000000000, b=20.000000000000000, c=4.0000000000000000.
3343 // max(|f - f_GSL|): 0.011718750000000000 at index 18
3344 // max(|f - f_GSL| / |f_GSL|): 1.7519521419033478e-15
3345 // mean(f - f_GSL): 0.00061678102606403001
3346 // variance(f - f_GSL): 7.2278413174892008e-06
3347 // stddev(f - f_GSL): 0.0026884644906506020
3348 const testcase_hyperg<double>
3349 data067[19] =
3350 {
3351   { 0.40342659436153389, 0.50000000000000000, 20.000000000000000,
3352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3353   { 0.42420571192034318, 0.50000000000000000, 20.000000000000000,
3354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3355   { 0.44852768286073041, 0.50000000000000000, 20.000000000000000,
3356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3357   { 0.47751245808592863, 0.50000000000000000, 20.000000000000000,
3358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3359   { 0.51283632632707765, 0.50000000000000000, 20.000000000000000,
3360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3361   { 0.55713468814894329, 0.50000000000000000, 20.000000000000000,
3362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3363   { 0.61481320817757346, 0.50000000000000000, 20.000000000000000,
3364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3365   { 0.69383483410097213, 0.50000000000000000, 20.000000000000000,
3366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3367   { 0.81012002526006044, 0.50000000000000000, 20.000000000000000,
3368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3369   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3371   { 1.3622225506603911, 0.50000000000000000, 20.000000000000000,
3372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3373   { 2.2349513086109027, 0.50000000000000000, 20.000000000000000,
3374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3375   { 5.1864917536761723, 0.50000000000000000, 20.000000000000000,
3376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3377   { 21.020560423779497, 0.50000000000000000, 20.000000000000000,
3378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3379   { 175.19649997100612, 0.50000000000000000, 20.000000000000000,
3380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3381   { 3467.1587803688708, 0.50000000000000000, 20.000000000000000,
3382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3383   { 225003.88683446089, 0.50000000000000000, 20.000000000000000,
3384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3385   { 110837674.65652709, 0.50000000000000000, 20.000000000000000,
3386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3387   { 6688966964170.9326, 0.50000000000000000, 20.000000000000000,
3388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3389 };
3390 const double toler067 = 2.5000000000000020e-13;
3391 
3392 // Test data for a=0.50000000000000000, b=20.000000000000000, c=6.0000000000000000.
3393 // max(|f - f_GSL|): 1.4305114746093750e-05 at index 18
3394 // max(|f - f_GSL| / |f_GSL|): 1.9261147266353426e-15
3395 // mean(f - f_GSL): 7.5292535813082699e-07
3396 // variance(f - f_GSL): 1.0770292922645316e-11
3397 // stddev(f - f_GSL): 3.2818124447697064e-06
3398 const testcase_hyperg<double>
3399 data068[19] =
3400 {
3401   { 0.48716309885816822, 0.50000000000000000, 20.000000000000000,
3402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3403   { 0.50965859152542337, 0.50000000000000000, 20.000000000000000,
3404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3405   { 0.53554809210658938, 0.50000000000000000, 20.000000000000000,
3406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3407   { 0.56576689207507136, 0.50000000000000000, 20.000000000000000,
3408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3409   { 0.60164849637133655, 0.50000000000000000, 20.000000000000000,
3410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3411   { 0.64516711595404408, 0.50000000000000000, 20.000000000000000,
3412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3413   { 0.69938278735493553, 0.50000000000000000, 20.000000000000000,
3414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3415   { 0.76931621518401860, 0.50000000000000000, 20.000000000000000,
3416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3417   { 0.86381808725530662, 0.50000000000000000, 20.000000000000000,
3418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3419   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3421   { 1.2152051956815531, 0.50000000000000000, 20.000000000000000,
3422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3423   { 1.6052546785425557, 0.50000000000000000, 20.000000000000000,
3424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3425   { 2.4765586046012635, 0.50000000000000000, 20.000000000000000,
3426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3427   { 5.1564492216997611, 0.50000000000000000, 20.000000000000000,
3428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3429   { 18.446158392136365, 0.50000000000000000, 20.000000000000000,
3430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3431   { 150.44577670123971, 0.50000000000000000, 20.000000000000000,
3432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3433   { 3862.6317400116104, 0.50000000000000000, 20.000000000000000,
3434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3435   { 632428.34833625401, 0.50000000000000000, 20.000000000000000,
3436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3437   { 7426927663.3810987, 0.50000000000000000, 20.000000000000000,
3438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3439 };
3440 const double toler068 = 2.5000000000000020e-13;
3441 
3442 // Test data for a=0.50000000000000000, b=20.000000000000000, c=8.0000000000000000.
3443 // max(|f - f_GSL|): 4.0978193283081055e-08 at index 18
3444 // max(|f - f_GSL| / |f_GSL|): 1.7692881266931270e-15
3445 // mean(f - f_GSL): 2.1571346930926438e-09
3446 // variance(f - f_GSL): 8.8377830897836260e-17
3447 // stddev(f - f_GSL): 9.4009484041683924e-09
3448 const testcase_hyperg<double>
3449 data069[19] =
3450 {
3451   { 0.54703266209548373, 0.50000000000000000, 20.000000000000000,
3452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3453   { 0.56997321774144960, 0.50000000000000000, 20.000000000000000,
3454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3455   { 0.59603026159654982, 0.50000000000000000, 20.000000000000000,
3456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3457   { 0.62596978851120511, 0.50000000000000000, 20.000000000000000,
3458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3459   { 0.66084565876898915, 0.50000000000000000, 20.000000000000000,
3460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3461   { 0.70215256667232862, 0.50000000000000000, 20.000000000000000,
3462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3463   { 0.75208916592008568, 0.50000000000000000, 20.000000000000000,
3464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3465   { 0.81403631111658625, 0.50000000000000000, 20.000000000000000,
3466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3467   { 0.89348608489854597, 0.50000000000000000, 20.000000000000000,
3468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3469   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3471   { 1.1517793185139173, 0.50000000000000000, 20.000000000000000,
3472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3473   { 1.3878110313656606, 0.50000000000000000, 20.000000000000000,
3474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3475   { 1.8061071794572381, 0.50000000000000000, 20.000000000000000,
3476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3477   { 2.7148594517859612, 0.50000000000000000, 20.000000000000000,
3478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3479   { 5.4529435709049361, 0.50000000000000000, 20.000000000000000,
3480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3481   { 19.487310275377109, 0.50000000000000000, 20.000000000000000,
3482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3483   { 191.69079165937592, 0.50000000000000000, 20.000000000000000,
3484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3485   { 10218.543981792311, 0.50000000000000000, 20.000000000000000,
3486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3487   { 23160836.646584522, 0.50000000000000000, 20.000000000000000,
3488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3489 };
3490 const double toler069 = 2.5000000000000020e-13;
3491 
3492 // Test data for a=0.50000000000000000, b=20.000000000000000, c=10.000000000000000.
3493 // max(|f - f_GSL|): 2.9103830456733704e-10 at index 18
3494 // max(|f - f_GSL| / |f_GSL|): 1.6694673196526424e-15
3495 // mean(f - f_GSL): 1.5333453804912193e-11
3496 // variance(f - f_GSL): 4.4575621294589140e-21
3497 // stddev(f - f_GSL): 6.6764976817631821e-11
3498 const testcase_hyperg<double>
3499 data070[19] =
3500 {
3501   { 0.59292067298616025, 0.50000000000000000, 20.000000000000000,
3502 	  10.000000000000000, -0.90000000000000002, 0.0 },
3503   { 0.61572496720679892, 0.50000000000000000, 20.000000000000000,
3504 	  10.000000000000000, -0.80000000000000004, 0.0 },
3505   { 0.64135339122875590, 0.50000000000000000, 20.000000000000000,
3506 	  10.000000000000000, -0.69999999999999996, 0.0 },
3507   { 0.67043457419280461, 0.50000000000000000, 20.000000000000000,
3508 	  10.000000000000000, -0.59999999999999998, 0.0 },
3509   { 0.70380956268170969, 0.50000000000000000, 20.000000000000000,
3510 	  10.000000000000000, -0.50000000000000000, 0.0 },
3511   { 0.74263251901495264, 0.50000000000000000, 20.000000000000000,
3512 	  10.000000000000000, -0.39999999999999991, 0.0 },
3513   { 0.78853555445528289, 0.50000000000000000, 20.000000000000000,
3514 	  10.000000000000000, -0.29999999999999993, 0.0 },
3515   { 0.84391122775673755, 0.50000000000000000, 20.000000000000000,
3516 	  10.000000000000000, -0.19999999999999996, 0.0 },
3517   { 0.91242401018807373, 0.50000000000000000, 20.000000000000000,
3518 	  10.000000000000000, -0.099999999999999978, 0.0 },
3519   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3520 	  10.000000000000000, 0.0000000000000000, 0.0 },
3521   { 1.1169059681274873, 0.50000000000000000, 20.000000000000000,
3522 	  10.000000000000000, 0.10000000000000009, 0.0 },
3523   { 1.2825928301302669, 0.50000000000000000, 20.000000000000000,
3524 	  10.000000000000000, 0.20000000000000018, 0.0 },
3525   { 1.5385937789924939, 0.50000000000000000, 20.000000000000000,
3526 	  10.000000000000000, 0.30000000000000004, 0.0 },
3527   { 1.9895771187893914, 0.50000000000000000, 20.000000000000000,
3528 	  10.000000000000000, 0.40000000000000013, 0.0 },
3529   { 2.9707335806970168, 0.50000000000000000, 20.000000000000000,
3530 	  10.000000000000000, 0.50000000000000000, 0.0 },
3531   { 6.0299506157180467, 0.50000000000000000, 20.000000000000000,
3532 	  10.000000000000000, 0.60000000000000009, 0.0 },
3533   { 24.259090336955669, 0.50000000000000000, 20.000000000000000,
3534 	  10.000000000000000, 0.70000000000000018, 0.0 },
3535   { 406.27267173257223, 0.50000000000000000, 20.000000000000000,
3536 	  10.000000000000000, 0.80000000000000004, 0.0 },
3537   { 174330.03997220617, 0.50000000000000000, 20.000000000000000,
3538 	  10.000000000000000, 0.90000000000000013, 0.0 },
3539 };
3540 const double toler070 = 2.5000000000000020e-13;
3541 
3542 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
3543 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3544 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3545 // mean(f - f_GSL): 0.0000000000000000
3546 // variance(f - f_GSL): 0.0000000000000000
3547 // stddev(f - f_GSL): 0.0000000000000000
3548 const testcase_hyperg<double>
3549 data071[19] =
3550 {
3551   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3553   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3555   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3557   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3559   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3561   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3563   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3565   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3567   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3569   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3571   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3573   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3575   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3577   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3579   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3581   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3583   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3585   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3587   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3589 };
3590 const double toler071 = 2.5000000000000020e-13;
3591 
3592 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
3593 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3594 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3595 // mean(f - f_GSL): 0.0000000000000000
3596 // variance(f - f_GSL): 0.0000000000000000
3597 // stddev(f - f_GSL): 0.0000000000000000
3598 const testcase_hyperg<double>
3599 data072[19] =
3600 {
3601   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3603   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3605   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3607   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3609   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3611   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3613   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3615   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3617   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3619   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3621   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3623   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3625   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3627   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3629   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3631   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3633   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3635   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3637   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3639 };
3640 const double toler072 = 2.5000000000000020e-13;
3641 
3642 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
3643 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3644 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3645 // mean(f - f_GSL): 0.0000000000000000
3646 // variance(f - f_GSL): 0.0000000000000000
3647 // stddev(f - f_GSL): 0.0000000000000000
3648 const testcase_hyperg<double>
3649 data073[19] =
3650 {
3651   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3653   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3655   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3657   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3659   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3661   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3663   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3665   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3667   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3669   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3671   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3673   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3675   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3677   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3679   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3681   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3683   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3685   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3687   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3689 };
3690 const double toler073 = 2.5000000000000020e-13;
3691 
3692 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
3693 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3694 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3695 // mean(f - f_GSL): 0.0000000000000000
3696 // variance(f - f_GSL): 0.0000000000000000
3697 // stddev(f - f_GSL): 0.0000000000000000
3698 const testcase_hyperg<double>
3699 data074[19] =
3700 {
3701   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3703   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3705   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3707   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3709   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3711   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3713   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3715   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3717   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3719   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3721   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3723   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3725   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3727   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3729   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3731   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3733   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3735   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3737   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3739 };
3740 const double toler074 = 2.5000000000000020e-13;
3741 
3742 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
3743 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3744 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3745 // mean(f - f_GSL): 0.0000000000000000
3746 // variance(f - f_GSL): 0.0000000000000000
3747 // stddev(f - f_GSL): 0.0000000000000000
3748 const testcase_hyperg<double>
3749 data075[19] =
3750 {
3751   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3752 	  10.000000000000000, -0.90000000000000002, 0.0 },
3753   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3754 	  10.000000000000000, -0.80000000000000004, 0.0 },
3755   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3756 	  10.000000000000000, -0.69999999999999996, 0.0 },
3757   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3758 	  10.000000000000000, -0.59999999999999998, 0.0 },
3759   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3760 	  10.000000000000000, -0.50000000000000000, 0.0 },
3761   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3762 	  10.000000000000000, -0.39999999999999991, 0.0 },
3763   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3764 	  10.000000000000000, -0.29999999999999993, 0.0 },
3765   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3766 	  10.000000000000000, -0.19999999999999996, 0.0 },
3767   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3768 	  10.000000000000000, -0.099999999999999978, 0.0 },
3769   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3770 	  10.000000000000000, 0.0000000000000000, 0.0 },
3771   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3772 	  10.000000000000000, 0.10000000000000009, 0.0 },
3773   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3774 	  10.000000000000000, 0.20000000000000018, 0.0 },
3775   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3776 	  10.000000000000000, 0.30000000000000004, 0.0 },
3777   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3778 	  10.000000000000000, 0.40000000000000013, 0.0 },
3779   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3780 	  10.000000000000000, 0.50000000000000000, 0.0 },
3781   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3782 	  10.000000000000000, 0.60000000000000009, 0.0 },
3783   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3784 	  10.000000000000000, 0.70000000000000018, 0.0 },
3785   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3786 	  10.000000000000000, 0.80000000000000004, 0.0 },
3787   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3788 	  10.000000000000000, 0.90000000000000013, 0.0 },
3789 };
3790 const double toler075 = 2.5000000000000020e-13;
3791 
3792 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
3793 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
3794 // max(|f - f_GSL| / |f_GSL|): 5.8452254859313207e-16
3795 // mean(f - f_GSL): 8.1805907077643109e-17
3796 // variance(f - f_GSL): 3.8131160349224712e-32
3797 // stddev(f - f_GSL): 1.9527201629835421e-16
3798 const testcase_hyperg<double>
3799 data076[19] =
3800 {
3801   { 0.84089972268671531, 1.0000000000000000, 0.50000000000000000,
3802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3803   { 0.85410196624968460, 1.0000000000000000, 0.50000000000000000,
3804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3805   { 0.86811566011579955, 1.0000000000000000, 0.50000000000000000,
3806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3807   { 0.88303688022450522, 1.0000000000000000, 0.50000000000000000,
3808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3809   { 0.89897948556635621, 1.0000000000000000, 0.50000000000000000,
3810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3811   { 0.91607978309961580, 1.0000000000000000, 0.50000000000000000,
3812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3813   { 0.93450283399425327, 1.0000000000000000, 0.50000000000000000,
3814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3815   { 0.95445115010332193, 1.0000000000000000, 0.50000000000000000,
3816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3817   { 0.97617696340303095, 1.0000000000000000, 0.50000000000000000,
3818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3819   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3821   { 1.0263340389897240, 1.0000000000000000, 0.50000000000000000,
3822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3823   { 1.0557280900008412, 1.0000000000000000, 0.50000000000000000,
3824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3825   { 1.0889331564394962, 1.0000000000000000, 0.50000000000000000,
3826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3827   { 1.1270166537925830, 1.0000000000000000, 0.50000000000000000,
3828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3829   { 1.1715728752538095, 1.0000000000000000, 0.50000000000000000,
3830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3831   { 1.2251482265544145, 1.0000000000000000, 0.50000000000000000,
3832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3833   { 1.2922212642709543, 1.0000000000000000, 0.50000000000000000,
3834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3835   { 1.3819660112501042, 1.0000000000000000, 0.50000000000000000,
3836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3837   { 1.5194938532959121, 1.0000000000000000, 0.50000000000000000,
3838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3839 };
3840 const double toler076 = 2.5000000000000020e-13;
3841 
3842 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
3843 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
3844 // max(|f - f_GSL| / |f_GSL|): 1.9508457915403988e-16
3845 // mean(f - f_GSL): 2.3373116307898031e-17
3846 // variance(f - f_GSL): 2.3146198993753289e-33
3847 // stddev(f - f_GSL): 4.8110496769159731e-17
3848 const testcase_hyperg<double>
3849 data077[19] =
3850 {
3851   { 0.90992197313391454, 1.0000000000000000, 0.50000000000000000,
3852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3853   { 0.91822592662244484, 1.0000000000000000, 0.50000000000000000,
3854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3855   { 0.92687104566419554, 1.0000000000000000, 0.50000000000000000,
3856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3857   { 0.93588628166548848, 1.0000000000000000, 0.50000000000000000,
3858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3859   { 0.94530459215552909, 1.0000000000000000, 0.50000000000000000,
3860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3861   { 0.95516374875247434, 1.0000000000000000, 0.50000000000000000,
3862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3863   { 0.96550736800511816, 1.0000000000000000, 0.50000000000000000,
3864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3865   { 0.97638624595136270, 1.0000000000000000, 0.50000000000000000,
3866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3867   { 0.98786011482678993, 1.0000000000000000, 0.50000000000000000,
3868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3869   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3871   { 1.0128914530682316, 1.0000000000000000, 0.50000000000000000,
3872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3873   { 1.0266391040215350, 1.0000000000000000, 0.50000000000000000,
3874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3875   { 1.0413732738729464, 1.0000000000000000, 0.50000000000000000,
3876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3877   { 1.0572599536532992, 1.0000000000000000, 0.50000000000000000,
3878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3879   { 1.0745166004060953, 1.0000000000000000, 0.50000000000000000,
3880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3881   { 1.0934387388831386, 1.0000000000000000, 0.50000000000000000,
3882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3883   { 1.1144486980714641, 1.0000000000000000, 0.50000000000000000,
3884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3885   { 1.1381966011250106, 1.0000000000000000, 0.50000000000000000,
3886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3887   { 1.1658171625342397, 1.0000000000000000, 0.50000000000000000,
3888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3889 };
3890 const double toler077 = 2.5000000000000020e-13;
3891 
3892 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
3893 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
3894 // max(|f - f_GSL| / |f_GSL|): 4.5130734546221216e-16
3895 // mean(f - f_GSL): 4.6746232615796062e-17
3896 // variance(f - f_GSL): 1.2814504633219814e-34
3897 // stddev(f - f_GSL): 1.1320116886861114e-17
3898 const testcase_hyperg<double>
3899 data078[19] =
3900 {
3901   { 0.93641908369732896, 1.0000000000000000, 0.50000000000000000,
3902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3903   { 0.94256349654111271, 1.0000000000000000, 0.50000000000000000,
3904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3905   { 0.94890138508461319, 1.0000000000000000, 0.50000000000000000,
3906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3907   { 0.95544578858430029, 1.0000000000000000, 0.50000000000000000,
3908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3909   { 0.96221121193620762, 1.0000000000000000, 0.50000000000000000,
3910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3911   { 0.96921386948293542, 1.0000000000000000, 0.50000000000000000,
3912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3913   { 0.97647198488394704, 1.0000000000000000, 0.50000000000000000,
3914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3915   { 0.98400616412578656, 1.0000000000000000, 0.50000000000000000,
3916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3917   { 0.99183986544963032, 1.0000000000000000, 0.50000000000000000,
3918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3919   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3921   { 1.0085177124149158, 1.0000000000000000, 0.50000000000000000,
3922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3923   { 1.0174294150407122, 1.0000000000000000, 0.50000000000000000,
3924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3925   { 1.0267781897388850, 1.0000000000000000, 0.50000000000000000,
3926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3927   { 1.0366157405967287, 1.0000000000000000, 0.50000000000000000,
3928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3929   { 1.0470052068648839, 1.0000000000000000, 0.50000000000000000,
3930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3931   { 1.0580253905513313, 1.0000000000000000, 0.50000000000000000,
3932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3933   { 1.0697774741209765, 1.0000000000000000, 0.50000000000000000,
3934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3935   { 1.0823965556448414, 1.0000000000000000, 0.50000000000000000,
3936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3937   { 1.0960739512057103, 1.0000000000000000, 0.50000000000000000,
3938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3939 };
3940 const double toler078 = 2.5000000000000020e-13;
3941 
3942 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
3943 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 7
3944 // max(|f - f_GSL| / |f_GSL|): 2.2476491960642283e-16
3945 // mean(f - f_GSL): -5.8432790769745078e-18
3946 // variance(f - f_GSL): 2.0022663489405960e-36
3947 // stddev(f - f_GSL): 1.4150146108576393e-18
3948 const testcase_hyperg<double>
3949 data079[19] =
3950 {
3951   { 0.95069883346936235, 1.0000000000000000, 0.50000000000000000,
3952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3953   { 0.95559618047704131, 1.0000000000000000, 0.50000000000000000,
3954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3955   { 0.96061938755931664, 1.0000000000000000, 0.50000000000000000,
3956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3957   { 0.96577553912851333, 1.0000000000000000, 0.50000000000000000,
3958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3959   { 0.97107239473807716, 1.0000000000000000, 0.50000000000000000,
3960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3961   { 0.97651848528588481, 1.0000000000000000, 0.50000000000000000,
3962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3963   { 0.98212322830227128, 1.0000000000000000, 0.50000000000000000,
3964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3965   { 0.98789706736195781, 1.0000000000000000, 0.50000000000000000,
3966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3967   { 0.99385164237825074, 1.0000000000000000, 0.50000000000000000,
3968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3969   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3971   { 1.0063568569383123, 1.0000000000000000, 0.50000000000000000,
3972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3973   { 1.0129389344715818, 1.0000000000000000, 0.50000000000000000,
3974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3975   { 1.0197653907773940, 1.0000000000000000, 0.50000000000000000,
3976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3977   { 1.0268583912277143, 1.0000000000000000, 0.50000000000000000,
3978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3979   { 1.0342438793937092, 1.0000000000000000, 0.50000000000000000,
3980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3981   { 1.0419526514766855, 1.0000000000000000, 0.50000000000000000,
3982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3983   { 1.0500219124976327, 1.0000000000000000, 0.50000000000000000,
3984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3985   { 1.0584976491907043, 1.0000000000000000, 0.50000000000000000,
3986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3987   { 1.0674385240268101, 1.0000000000000000, 0.50000000000000000,
3988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3989 };
3990 const double toler079 = 2.5000000000000020e-13;
3991 
3992 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
3993 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3994 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3995 // mean(f - f_GSL): 0.0000000000000000
3996 // variance(f - f_GSL): 0.0000000000000000
3997 // stddev(f - f_GSL): 0.0000000000000000
3998 const testcase_hyperg<double>
3999 data080[19] =
4000 {
4001   { 0.95968319138913905, 1.0000000000000000, 0.50000000000000000,
4002 	  10.000000000000000, -0.90000000000000002, 0.0 },
4003   { 0.96376169072755802, 1.0000000000000000, 0.50000000000000000,
4004 	  10.000000000000000, -0.80000000000000004, 0.0 },
4005   { 0.96792900082729372, 1.0000000000000000, 0.50000000000000000,
4006 	  10.000000000000000, -0.69999999999999996, 0.0 },
4007   { 0.97218942798115737, 1.0000000000000000, 0.50000000000000000,
4008 	  10.000000000000000, -0.59999999999999998, 0.0 },
4009   { 0.97654763592586835, 1.0000000000000000, 0.50000000000000000,
4010 	  10.000000000000000, -0.50000000000000000, 0.0 },
4011   { 0.98100869054353890, 1.0000000000000000, 0.50000000000000000,
4012 	  10.000000000000000, -0.39999999999999991, 0.0 },
4013   { 0.98557811238699278, 1.0000000000000000, 0.50000000000000000,
4014 	  10.000000000000000, -0.29999999999999993, 0.0 },
4015   { 0.99026193885795544, 1.0000000000000000, 0.50000000000000000,
4016 	  10.000000000000000, -0.19999999999999996, 0.0 },
4017   { 0.99506679842072221, 1.0000000000000000, 0.50000000000000000,
4018 	  10.000000000000000, -0.099999999999999978, 0.0 },
4019   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
4020 	  10.000000000000000, 0.0000000000000000, 0.0 },
4021   { 1.0050696417919618, 1.0000000000000000, 0.50000000000000000,
4022 	  10.000000000000000, 0.10000000000000009, 0.0 },
4023   { 1.0102847452747090, 1.0000000000000000, 0.50000000000000000,
4024 	  10.000000000000000, 0.20000000000000018, 0.0 },
4025   { 1.0156554225057022, 1.0000000000000000, 0.50000000000000000,
4026 	  10.000000000000000, 0.30000000000000004, 0.0 },
4027   { 1.0211930882963096, 1.0000000000000000, 0.50000000000000000,
4028 	  10.000000000000000, 0.40000000000000013, 0.0 },
4029   { 1.0269107343740711, 1.0000000000000000, 0.50000000000000000,
4030 	  10.000000000000000, 0.50000000000000000, 0.0 },
4031   { 1.0328232917216298, 1.0000000000000000, 0.50000000000000000,
4032 	  10.000000000000000, 0.60000000000000009, 0.0 },
4033   { 1.0389481230247195, 1.0000000000000000, 0.50000000000000000,
4034 	  10.000000000000000, 0.70000000000000018, 0.0 },
4035   { 1.0453057164134614, 1.0000000000000000, 0.50000000000000000,
4036 	  10.000000000000000, 0.80000000000000004, 0.0 },
4037   { 1.0519207114461246, 1.0000000000000000, 0.50000000000000000,
4038 	  10.000000000000000, 0.90000000000000013, 0.0 },
4039 };
4040 const double toler080 = 2.5000000000000020e-13;
4041 
4042 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
4043 // max(|f - f_GSL|): 3.5527136788005009e-15 at index 18
4044 // max(|f - f_GSL| / |f_GSL|): 1.3886315518367350e-15
4045 // mean(f - f_GSL): 2.6879083754082737e-16
4046 // variance(f - f_GSL): 6.3240381271479359e-31
4047 // stddev(f - f_GSL): 7.9523821130199324e-16
4048 const testcase_hyperg<double>
4049 data081[19] =
4050 {
4051   { 0.71317098463599415, 1.0000000000000000, 1.0000000000000000,
4052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4053   { 0.73473333112764883, 1.0000000000000000, 1.0000000000000000,
4054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4055   { 0.75804035866024344, 1.0000000000000000, 1.0000000000000000,
4056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4057   { 0.78333938207622589, 1.0000000000000000, 1.0000000000000000,
4058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4059   { 0.81093021621632866, 1.0000000000000000, 1.0000000000000000,
4060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4061   { 0.84118059155303215, 1.0000000000000000, 1.0000000000000000,
4062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4063   { 0.87454754822497005, 1.0000000000000000, 1.0000000000000000,
4064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4065   { 0.91160778396977304, 1.0000000000000000, 1.0000000000000000,
4066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4067   { 0.95310179804324857, 1.0000000000000000, 1.0000000000000000,
4068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4069   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4071   { 1.0536051565782629, 1.0000000000000000, 1.0000000000000000,
4072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4073   { 1.1157177565710485, 1.0000000000000000, 1.0000000000000000,
4074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4075   { 1.1889164797957747, 1.0000000000000000, 1.0000000000000000,
4076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4077   { 1.2770640594149769, 1.0000000000000000, 1.0000000000000000,
4078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4079   { 1.3862943611198899, 1.0000000000000000, 1.0000000000000000,
4080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4081   { 1.5271512197902593, 1.0000000000000000, 1.0000000000000000,
4082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4083   { 1.7199611490370503, 1.0000000000000000, 1.0000000000000000,
4084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4085   { 2.0117973905426232, 1.0000000000000000, 1.0000000000000000,
4086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4087   { 2.5584278811044925, 1.0000000000000000, 1.0000000000000000,
4088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4089 };
4090 const double toler081 = 2.5000000000000020e-13;
4091 
4092 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
4093 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
4094 // max(|f - f_GSL| / |f_GSL|): 3.1924682001889760e-16
4095 // mean(f - f_GSL): 6.4276069846719592e-17
4096 // variance(f - f_GSL): 8.4595753242740185e-33
4097 // stddev(f - f_GSL): 9.1975949705746545e-17
4098 const testcase_hyperg<double>
4099 data082[19] =
4100 {
4101   { 0.83165649828125487, 1.0000000000000000, 1.0000000000000000,
4102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4103   { 0.84626246650116621, 1.0000000000000000, 1.0000000000000000,
4104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4105   { 0.86165287670267476, 1.0000000000000000, 1.0000000000000000,
4106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4107   { 0.87790681762615264, 1.0000000000000000, 1.0000000000000000,
4108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4109   { 0.89511583784087634, 1.0000000000000000, 1.0000000000000000,
4110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4111   { 0.91338673957393823, 1.0000000000000000, 1.0000000000000000,
4112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4113   { 0.93284521667332010, 1.0000000000000000, 1.0000000000000000,
4114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4115   { 0.95364066873549813, 1.0000000000000000, 1.0000000000000000,
4116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4117   { 0.97595268969924187, 1.0000000000000000, 1.0000000000000000,
4118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4119   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4121   { 1.0260530485179122, 1.0000000000000000, 1.0000000000000000,
4122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4123   { 1.0544523154103413, 1.0000000000000000, 1.0000000000000000,
4124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4125   { 1.0856358366643180, 1.0000000000000000, 1.0000000000000000,
4126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4127   { 1.1201824010510930, 1.0000000000000000, 1.0000000000000000,
4128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4129   { 1.1588830833596719, 1.0000000000000000, 1.0000000000000000,
4130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4131   { 1.2028682930536780, 1.0000000000000000, 1.0000000000000000,
4132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4133   { 1.2538561433469468, 1.0000000000000000, 1.0000000000000000,
4134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4135   { 1.3147120107267418, 1.0000000000000000, 1.0000000000000000,
4136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4137   { 1.3910528844853491, 1.0000000000000000, 1.0000000000000000,
4138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4139 };
4140 const double toler082 = 2.5000000000000020e-13;
4141 
4142 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
4143 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
4144 // max(|f - f_GSL| / |f_GSL|): 4.5856134910670077e-16
4145 // mean(f - f_GSL): 5.2589511692770570e-17
4146 // variance(f - f_GSL): 8.9881736403943358e-33
4147 // stddev(f - f_GSL): 9.4805978927461832e-17
4148 const testcase_hyperg<double>
4149 data083[19] =
4150 {
4151   { 0.87917686994924560, 1.0000000000000000, 1.0000000000000000,
4152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4153   { 0.89033956110358403, 1.0000000000000000, 1.0000000000000000,
4154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4155   { 0.90196195126098355, 1.0000000000000000, 1.0000000000000000,
4156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4157   { 0.91408080149514681, 1.0000000000000000, 1.0000000000000000,
4158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4159   { 0.92673756761314952, 1.0000000000000000, 1.0000000000000000,
4160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4161   { 0.93997926630123430, 1.0000000000000000, 1.0000000000000000,
4162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4163   { 0.95385955885019325, 1.0000000000000000, 1.0000000000000000,
4164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4165   { 0.96844012412988900, 1.0000000000000000, 1.0000000000000000,
4166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4167   { 0.98379242268046208, 1.0000000000000000, 1.0000000000000000,
4168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4169   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4171   { 1.0171615499181177, 1.0000000000000000, 1.0000000000000000,
4172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4173   { 1.0353950776091039, 1.0000000000000000, 1.0000000000000000,
4174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4175   { 1.0548437030651112, 1.0000000000000000, 1.0000000000000000,
4176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4177   { 1.0756840039415978, 1.0000000000000000, 1.0000000000000000,
4178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4179   { 1.0981384722661196, 1.0000000000000000, 1.0000000000000000,
4180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4181   { 1.1224950318916129, 1.0000000000000000, 1.0000000000000000,
4182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4183   { 1.1491396357184527, 1.0000000000000000, 1.0000000000000000,
4184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4185   { 1.1786158344507012, 1.0000000000000000, 1.0000000000000000,
4186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4187   { 1.2117500593515478, 1.0000000000000000, 1.0000000000000000,
4188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4189 };
4190 const double toler083 = 2.5000000000000020e-13;
4191 
4192 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
4193 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
4194 // max(|f - f_GSL| / |f_GSL|): 1.9755522134245812e-16
4195 // mean(f - f_GSL): 1.7529837230923523e-17
4196 // variance(f - f_GSL): 1.8020397140465364e-35
4197 // stddev(f - f_GSL): 4.2450438325729174e-18
4198 const testcase_hyperg<double>
4199 data084[19] =
4200 {
4201   { 0.90538259348578420, 1.0000000000000000, 1.0000000000000000,
4202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4203   { 0.91444830598832061, 1.0000000000000000, 1.0000000000000000,
4204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4205   { 0.92381915945973991, 1.0000000000000000, 1.0000000000000000,
4206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4207   { 0.93351553488501793, 1.0000000000000000, 1.0000000000000000,
4208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4209   { 0.94356001859234861, 1.0000000000000000, 1.0000000000000000,
4210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4211   { 0.95397775039949628, 1.0000000000000000, 1.0000000000000000,
4212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4213   { 0.96479684710618008, 1.0000000000000000, 1.0000000000000000,
4214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4215   { 0.97604892281308531, 1.0000000000000000, 1.0000000000000000,
4216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4217   { 0.98776973540356938, 1.0000000000000000, 1.0000000000000000,
4218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4219   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4221   { 1.0127864273812119, 1.0000000000000000, 1.0000000000000000,
4222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4223   { 1.0261830717772533, 1.0000000000000000, 1.0000000000000000,
4224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4225   { 1.0402531144740719, 1.0000000000000000, 1.0000000000000000,
4226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4227   { 1.0550712790827002, 1.0000000000000000, 1.0000000000000000,
4228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4229   { 1.0707271945059007, 1.0000000000000000, 1.0000000000000000,
4230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4231   { 1.0873302420658923, 1.0000000000000000, 1.0000000000000000,
4232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4233   { 1.1050168587085545, 1.0000000000000000, 1.0000000000000000,
4234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4235   { 1.1239622188477687, 1.0000000000000000, 1.0000000000000000,
4236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4237   { 1.1444006183097781, 1.0000000000000000, 1.0000000000000000,
4238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4239 };
4240 const double toler084 = 2.5000000000000020e-13;
4241 
4242 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
4243 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 18
4244 // max(|f - f_GSL| / |f_GSL|): 2.0014207127505480e-16
4245 // mean(f - f_GSL): 0.0000000000000000
4246 // variance(f - f_GSL): 2.8912726078702206e-33
4247 // stddev(f - f_GSL): 5.3770555212590287e-17
4248 const testcase_hyperg<double>
4249 data085[19] =
4250 {
4251   { 0.92211295632330392, 1.0000000000000000, 1.0000000000000000,
4252 	  10.000000000000000, -0.90000000000000002, 0.0 },
4253   { 0.92975727737040625, 1.0000000000000000, 1.0000000000000000,
4254 	  10.000000000000000, -0.80000000000000004, 0.0 },
4255   { 0.93761992348333489, 1.0000000000000000, 1.0000000000000000,
4256 	  10.000000000000000, -0.69999999999999996, 0.0 },
4257   { 0.94571346180587790, 1.0000000000000000, 1.0000000000000000,
4258 	  10.000000000000000, -0.59999999999999998, 0.0 },
4259   { 0.95405164371146900, 1.0000000000000000, 1.0000000000000000,
4260 	  10.000000000000000, -0.50000000000000000, 0.0 },
4261   { 0.96264956879205987, 1.0000000000000000, 1.0000000000000000,
4262 	  10.000000000000000, -0.39999999999999991, 0.0 },
4263   { 0.97152388013493107, 1.0000000000000000, 1.0000000000000000,
4264 	  10.000000000000000, -0.29999999999999993, 0.0 },
4265   { 0.98069299877709348, 1.0000000000000000, 1.0000000000000000,
4266 	  10.000000000000000, -0.19999999999999996, 0.0 },
4267   { 0.99017740778385854, 1.0000000000000000, 1.0000000000000000,
4268 	  10.000000000000000, -0.099999999999999978, 0.0 },
4269   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4270 	  10.000000000000000, 0.0000000000000000, 0.0 },
4271   { 1.0101865087004833, 1.0000000000000000, 1.0000000000000000,
4272 	  10.000000000000000, 0.10000000000000009, 0.0 },
4273   { 1.0207660479892111, 1.0000000000000000, 1.0000000000000000,
4274 	  10.000000000000000, 0.20000000000000018, 0.0 },
4275   { 1.0317718013185031, 1.0000000000000000, 1.0000000000000000,
4276 	  10.000000000000000, 0.30000000000000004, 0.0 },
4277   { 1.0432419144892398, 1.0000000000000000, 1.0000000000000000,
4278 	  10.000000000000000, 0.40000000000000013, 0.0 },
4279   { 1.0552206786504446, 1.0000000000000000, 1.0000000000000000,
4280 	  10.000000000000000, 0.50000000000000000, 0.0 },
4281   { 1.0677601383233675, 1.0000000000000000, 1.0000000000000000,
4282 	  10.000000000000000, 0.60000000000000009, 0.0 },
4283   { 1.0809223485579968, 1.0000000000000000, 1.0000000000000000,
4284 	  10.000000000000000, 0.70000000000000018, 0.0 },
4285   { 1.0947826783002668, 1.0000000000000000, 1.0000000000000000,
4286 	  10.000000000000000, 0.80000000000000004, 0.0 },
4287   { 1.1094349304493603, 1.0000000000000000, 1.0000000000000000,
4288 	  10.000000000000000, 0.90000000000000013, 0.0 },
4289 };
4290 const double toler085 = 2.5000000000000020e-13;
4291 
4292 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
4293 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
4294 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
4295 // mean(f - f_GSL): 7.5962628000668607e-17
4296 // variance(f - f_GSL): 1.6955391669463862e-31
4297 // stddev(f - f_GSL): 4.1176925175957300e-16
4298 const testcase_hyperg<double>
4299 data086[19] =
4300 {
4301   { 0.52631578947368429, 1.0000000000000000, 2.0000000000000000,
4302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4303   { 0.55555555555555558, 1.0000000000000000, 2.0000000000000000,
4304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4305   { 0.58823529411764708, 1.0000000000000000, 2.0000000000000000,
4306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4307   { 0.62500000000000000, 1.0000000000000000, 2.0000000000000000,
4308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4309   { 0.66666666666666663, 1.0000000000000000, 2.0000000000000000,
4310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4311   { 0.71428571428571430, 1.0000000000000000, 2.0000000000000000,
4312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4313   { 0.76923076923076938, 1.0000000000000000, 2.0000000000000000,
4314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4315   { 0.83333333333333337, 1.0000000000000000, 2.0000000000000000,
4316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4317   { 0.90909090909090906, 1.0000000000000000, 2.0000000000000000,
4318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4319   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4321   { 1.1111111111111112, 1.0000000000000000, 2.0000000000000000,
4322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4323   { 1.2500000000000002, 1.0000000000000000, 2.0000000000000000,
4324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4325   { 1.4285714285714286, 1.0000000000000000, 2.0000000000000000,
4326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4327   { 1.6666666666666670, 1.0000000000000000, 2.0000000000000000,
4328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4329   { 2.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4331   { 2.5000000000000009, 1.0000000000000000, 2.0000000000000000,
4332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4333   { 3.3333333333333348, 1.0000000000000000, 2.0000000000000000,
4334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4335   { 5.0000000000000009, 1.0000000000000000, 2.0000000000000000,
4336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4337   { 10.000000000000011, 1.0000000000000000, 2.0000000000000000,
4338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4339 };
4340 const double toler086 = 2.5000000000000020e-13;
4341 
4342 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
4343 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
4344 // max(|f - f_GSL| / |f_GSL|): 1.2228571846595245e-15
4345 // mean(f - f_GSL): 1.9282820954015878e-16
4346 // variance(f - f_GSL): 3.5826351554959189e-31
4347 // stddev(f - f_GSL): 5.9855118039278136e-16
4348 const testcase_hyperg<double>
4349 data087[19] =
4350 {
4351   { 0.70351947549341554, 1.0000000000000000, 2.0000000000000000,
4352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4353   { 0.72637503722092756, 1.0000000000000000, 2.0000000000000000,
4354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4355   { 0.75099661564391240, 1.0000000000000000, 2.0000000000000000,
4356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4357   { 0.77761647796730871, 1.0000000000000000, 2.0000000000000000,
4358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4359   { 0.80651221621216473, 1.0000000000000000, 2.0000000000000000,
4360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4361   { 0.83801894346580275, 1.0000000000000000, 2.0000000000000000,
4362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4363   { 0.87254582050258456, 1.0000000000000000, 2.0000000000000000,
4364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4365   { 0.91059888544083678, 1.0000000000000000, 2.0000000000000000,
4366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4367   { 0.95281329145592386, 1.0000000000000000, 2.0000000000000000,
4368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4369   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4371   { 1.0532154477379738, 1.0000000000000000, 2.0000000000000000,
4372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4373   { 1.1138692114741471, 1.0000000000000000, 2.0000000000000000,
4374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4375   { 1.1838976095305187, 1.0000000000000000, 2.0000000000000000,
4376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4377   { 1.2660586631630240, 1.0000000000000000, 2.0000000000000000,
4378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4379   { 1.3644676665613118, 1.0000000000000000, 2.0000000000000000,
4380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4381   { 1.4856585347316102, 1.0000000000000000, 2.0000000000000000,
4382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4383   { 1.6409590443536872, 1.0000000000000000, 2.0000000000000000,
4384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4385   { 1.8528798927325769, 1.0000000000000000, 2.0000000000000000,
4386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4387   { 2.1789423102929653, 1.0000000000000000, 2.0000000000000000,
4388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4389 };
4390 const double toler087 = 2.5000000000000020e-13;
4391 
4392 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
4393 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
4394 // max(|f - f_GSL| / |f_GSL|): 5.8050967180790176e-16
4395 // mean(f - f_GSL): 5.8432790769745078e-17
4396 // variance(f - f_GSL): 4.0373698660038179e-32
4397 // stddev(f - f_GSL): 2.0093207474178476e-16
4398 const testcase_hyperg<double>
4399 data088[19] =
4400 {
4401   { 0.78068027379106275, 1.0000000000000000, 2.0000000000000000,
4402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4403   { 0.79924541976981278, 1.0000000000000000, 2.0000000000000000,
4404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4405   { 0.81891305585650975, 1.0000000000000000, 2.0000000000000000,
4406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4407   { 0.83979799626213247, 1.0000000000000000, 2.0000000000000000,
4408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4409   { 0.86203315303160111, 1.0000000000000000, 2.0000000000000000,
4410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4411   { 0.88577352485361693, 1.0000000000000000, 2.0000000000000000,
4412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4413   { 0.91120135738402230, 1.0000000000000000, 2.0000000000000000,
4414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4415   { 0.93853291956703588, 1.0000000000000000, 2.0000000000000000,
4416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4417   { 0.96802755388922956, 1.0000000000000000, 2.0000000000000000,
4418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4419   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4421   { 1.0348375559194773, 1.0000000000000000, 2.0000000000000000,
4422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4423   { 1.0730246119544820, 1.0000000000000000, 2.0000000000000000,
4424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4425   { 1.1151788396279341, 1.0000000000000000, 2.0000000000000000,
4426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4427   { 1.1621066403893472, 1.0000000000000000, 2.0000000000000000,
4428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4429   { 1.2148922218710421, 1.0000000000000000, 2.0000000000000000,
4430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4431   { 1.2750496810838674, 1.0000000000000000, 2.0000000000000000,
4432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4433   { 1.3448048570872917, 1.0000000000000000, 2.0000000000000000,
4434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4435   { 1.4276833109859521, 1.0000000000000000, 2.0000000000000000,
4436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4437   { 1.5299976259379793, 1.0000000000000000, 2.0000000000000000,
4438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4439 };
4440 const double toler088 = 2.5000000000000020e-13;
4441 
4442 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
4443 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
4444 // max(|f - f_GSL| / |f_GSL|): 3.4946054932156233e-16
4445 // mean(f - f_GSL): 3.5059674461847047e-17
4446 // variance(f - f_GSL): 9.8111051098089209e-33
4447 // stddev(f - f_GSL): 9.9051022760034738e-17
4448 const testcase_hyperg<double>
4449 data089[19] =
4450 {
4451   { 0.82510759951857615, 1.0000000000000000, 2.0000000000000000,
4452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4453   { 0.84072786892782070, 1.0000000000000000, 2.0000000000000000,
4454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4455   { 0.85710884896562356, 1.0000000000000000, 2.0000000000000000,
4456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4457   { 0.87431674418118244, 1.0000000000000000, 2.0000000000000000,
4458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4459   { 0.89242659229726995, 1.0000000000000000, 2.0000000000000000,
4460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4461   { 0.91152392685930339, 1.0000000000000000, 2.0000000000000000,
4462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4463   { 0.93170685950993570, 1.0000000000000000, 2.0000000000000000,
4464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4465   { 0.95308871926790661, 1.0000000000000000, 2.0000000000000000,
4466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4467   { 0.97580144325325802, 1.0000000000000000, 2.0000000000000000,
4468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4469   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4471   { 1.0258682619030324, 1.0000000000000000, 2.0000000000000000,
4472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4473   { 1.0536269616706000, 1.0000000000000000, 2.0000000000000000,
4474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4475   { 1.0835447330793833, 1.0000000000000000, 2.0000000000000000,
4476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4477   { 1.1159538758396654, 1.0000000000000000, 2.0000000000000000,
4478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4479   { 1.1512736659291880, 1.0000000000000000, 2.0000000000000000,
4480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4481   { 1.1900463690116090, 1.0000000000000000, 2.0000000000000000,
4482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4483   { 1.2329961591622411, 1.0000000000000000, 2.0000000000000000,
4484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4485   { 1.2811334345669059, 1.0000000000000000, 2.0000000000000000,
4486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4487   { 1.3359629014132053, 1.0000000000000000, 2.0000000000000000,
4488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4489 };
4490 const double toler089 = 2.5000000000000020e-13;
4491 
4492 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
4493 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
4494 // max(|f - f_GSL| / |f_GSL|): 4.6160879869309861e-16
4495 // mean(f - f_GSL): -2.9216395384872539e-17
4496 // variance(f - f_GSL): 3.7021904791911625e-33
4497 // stddev(f - f_GSL): 6.0845628266878486e-17
4498 const testcase_hyperg<double>
4499 data090[19] =
4500 {
4501   { 0.85426123653345876, 1.0000000000000000, 2.0000000000000000,
4502 	  10.000000000000000, -0.90000000000000002, 0.0 },
4503   { 0.86774543390930414, 1.0000000000000000, 2.0000000000000000,
4504 	  10.000000000000000, -0.80000000000000004, 0.0 },
4505   { 0.88178859537254239, 1.0000000000000000, 2.0000000000000000,
4506 	  10.000000000000000, -0.69999999999999996, 0.0 },
4507   { 0.89643269097060951, 1.0000000000000000, 2.0000000000000000,
4508 	  10.000000000000000, -0.59999999999999998, 0.0 },
4509   { 0.91172456687216819, 1.0000000000000000, 2.0000000000000000,
4510 	  10.000000000000000, -0.50000000000000000, 0.0 },
4511   { 0.92771674975966134, 1.0000000000000000, 2.0000000000000000,
4512 	  10.000000000000000, -0.39999999999999991, 0.0 },
4513   { 0.94446842993888669, 1.0000000000000000, 2.0000000000000000,
4514 	  10.000000000000000, -0.29999999999999993, 0.0 },
4515   { 0.96204667481937678, 1.0000000000000000, 2.0000000000000000,
4516 	  10.000000000000000, -0.19999999999999996, 0.0 },
4517   { 0.98052794339012128, 1.0000000000000000, 2.0000000000000000,
4518 	  10.000000000000000, -0.099999999999999978, 0.0 },
4519   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4520 	  10.000000000000000, 0.0000000000000000, 0.0 },
4521   { 1.0205643671068179, 1.0000000000000000, 2.0000000000000000,
4522 	  10.000000000000000, 0.10000000000000009, 0.0 },
4523   { 1.0423395201078882, 1.0000000000000000, 2.0000000000000000,
4524 	  10.000000000000000, 0.20000000000000018, 0.0 },
4525   { 1.0654651277885334, 1.0000000000000000, 2.0000000000000000,
4526 	  10.000000000000000, 0.30000000000000004, 0.0 },
4527   { 1.0901078068101382, 1.0000000000000000, 2.0000000000000000,
4528 	  10.000000000000000, 0.40000000000000013, 0.0 },
4529   { 1.1164691415928940, 1.0000000000000000, 2.0000000000000000,
4530 	  10.000000000000000, 0.50000000000000000, 0.0 },
4531   { 1.1447972335326551, 1.0000000000000000, 2.0000000000000000,
4532 	  10.000000000000000, 0.60000000000000009, 0.0 },
4533   { 1.1754040384534163, 1.0000000000000000, 2.0000000000000000,
4534 	  10.000000000000000, 0.70000000000000018, 0.0 },
4535   { 1.2086928679893112, 1.0000000000000000, 2.0000000000000000,
4536 	  10.000000000000000, 0.80000000000000004, 0.0 },
4537   { 1.2452055640510711, 1.0000000000000000, 2.0000000000000000,
4538 	  10.000000000000000, 0.90000000000000013, 0.0 },
4539 };
4540 const double toler090 = 2.5000000000000020e-13;
4541 
4542 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
4543 // max(|f - f_GSL|): 4.0927261579781771e-12 at index 18
4544 // max(|f - f_GSL| / |f_GSL|): 1.4735287697491136e-15
4545 // mean(f - f_GSL): 2.2385017815981644e-13
4546 // variance(f - f_GSL): 8.7776489381819171e-25
4547 // stddev(f - f_GSL): 9.3689107895111895e-13
4548 const testcase_hyperg<double>
4549 data091[19] =
4550 {
4551   { 0.25646288779245086, 1.0000000000000000, 5.0000000000000000,
4552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4553   { 0.28273129096174376, 1.0000000000000000, 5.0000000000000000,
4554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4555   { 0.31438201170962982, 1.0000000000000000, 5.0000000000000000,
4556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4557   { 0.35308837890625017, 1.0000000000000000, 5.0000000000000000,
4558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4559   { 0.40123456790123452, 1.0000000000000000, 5.0000000000000000,
4560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4561   { 0.46230737192836352, 1.0000000000000000, 5.0000000000000000,
4562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4563   { 0.54156016946185348, 1.0000000000000000, 5.0000000000000000,
4564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4565   { 0.64718364197530875, 1.0000000000000000, 5.0000000000000000,
4566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4567   { 0.79246636158732342, 1.0000000000000000, 5.0000000000000000,
4568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4569   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4571   { 1.3103947568968148, 1.0000000000000000, 5.0000000000000000,
4572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4573   { 1.8017578125000016, 1.0000000000000000, 5.0000000000000000,
4574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4575   { 2.6374427321949185, 1.0000000000000000, 5.0000000000000000,
4576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4577   { 4.1975308641975335, 1.0000000000000000, 5.0000000000000000,
4578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4579   { 7.4999999999999964, 1.0000000000000000, 5.0000000000000000,
4580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4581   { 15.859375000000012, 1.0000000000000000, 5.0000000000000000,
4582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4583   { 43.734567901234662, 1.0000000000000000, 5.0000000000000000,
4584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4585   { 194.99999999999994, 1.0000000000000000, 5.0000000000000000,
4586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4587   { 2777.5000000000095, 1.0000000000000000, 5.0000000000000000,
4588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4589 };
4590 const double toler091 = 2.5000000000000020e-13;
4591 
4592 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
4593 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
4594 // max(|f - f_GSL| / |f_GSL|): 1.3117712044801870e-15
4595 // mean(f - f_GSL): 2.6879083754082736e-15
4596 // variance(f - f_GSL): 9.3567700516642700e-29
4597 // stddev(f - f_GSL): 9.6730398798228218e-15
4598 const testcase_hyperg<double>
4599 data092[19] =
4600 {
4601   { 0.46398891966759009, 1.0000000000000000, 5.0000000000000000,
4602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4603   { 0.49382716049382724, 1.0000000000000000, 5.0000000000000000,
4604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4605   { 0.52768166089965407, 1.0000000000000000, 5.0000000000000000,
4606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4607   { 0.56640625000000000, 1.0000000000000000, 5.0000000000000000,
4608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4609   { 0.61111111111111094, 1.0000000000000000, 5.0000000000000000,
4610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4611   { 0.66326530612244916, 1.0000000000000000, 5.0000000000000000,
4612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4613   { 0.72485207100591709, 1.0000000000000000, 5.0000000000000000,
4614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4615   { 0.79861111111111094, 1.0000000000000000, 5.0000000000000000,
4616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4617   { 0.88842975206611552, 1.0000000000000000, 5.0000000000000000,
4618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4619   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4621   { 1.1419753086419753, 1.0000000000000000, 5.0000000000000000,
4622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4623   { 1.3281250000000000, 1.0000000000000000, 5.0000000000000000,
4624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4625   { 1.5816326530612239, 1.0000000000000000, 5.0000000000000000,
4626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4627   { 1.9444444444444458, 1.0000000000000000, 5.0000000000000000,
4628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4629   { 2.5000000000000000, 1.0000000000000000, 5.0000000000000000,
4630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4631   { 3.4374999999999996, 1.0000000000000000, 5.0000000000000000,
4632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4633   { 5.2777777777777786, 1.0000000000000000, 5.0000000000000000,
4634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4635   { 9.9999999999999947, 1.0000000000000000, 5.0000000000000000,
4636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4637   { 32.499999999999950, 1.0000000000000000, 5.0000000000000000,
4638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4639 };
4640 const double toler092 = 2.5000000000000020e-13;
4641 
4642 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
4643 // max(|f - f_GSL|): 6.2172489379008766e-15 at index 18
4644 // max(|f - f_GSL| / |f_GSL|): 1.2433022037532449e-15
4645 // mean(f - f_GSL): 4.9083544246585873e-16
4646 // variance(f - f_GSL): 1.9229766015225486e-30
4647 // stddev(f - f_GSL): 1.3867143186404864e-15
4648 const testcase_hyperg<double>
4649 data093[19] =
4650 {
4651   { 0.57476744883397490, 1.0000000000000000, 5.0000000000000000,
4652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4653   { 0.60302731682513966, 1.0000000000000000, 5.0000000000000000,
4654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4655   { 0.63425708719096374, 1.0000000000000000, 5.0000000000000000,
4656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4657   { 0.66895764182970430, 1.0000000000000000, 5.0000000000000000,
4658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4659   { 0.70775063063963473, 1.0000000000000000, 5.0000000000000000,
4660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4661   { 0.75141762103495946, 1.0000000000000000, 5.0000000000000000,
4662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4663   { 0.80095569442603320, 1.0000000000000000, 5.0000000000000000,
4664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4665   { 0.85765823887436754, 1.0000000000000000, 5.0000000000000000,
4666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4667   { 0.92323549576335540, 1.0000000000000000, 5.0000000000000000,
4668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4669   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4671   { 1.0911622464839472, 1.0000000000000000, 5.0000000000000000,
4672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4673   { 1.2013226178607672, 1.0000000000000000, 5.0000000000000000,
4674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4675   { 1.3373332072682687, 1.0000000000000000, 5.0000000000000000,
4676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4677   { 1.5099074378209718, 1.0000000000000000, 5.0000000000000000,
4678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4679   { 1.7368822229245819, 1.0000000000000000, 5.0000000000000000,
4680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4681   { 2.0505871832661429, 1.0000000000000000, 5.0000000000000000,
4682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4683   { 2.5172389775867976, 1.0000000000000000, 5.0000000000000000,
4684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4685   { 3.3015631983556144, 1.0000000000000000, 5.0000000000000000,
4686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4687   { 5.0005935155044563, 1.0000000000000000, 5.0000000000000000,
4688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4689 };
4690 const double toler093 = 2.5000000000000020e-13;
4691 
4692 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
4693 // max(|f - f_GSL|): 3.1086244689504383e-15 at index 18
4694 // max(|f - f_GSL| / |f_GSL|): 1.1989697058841885e-15
4695 // mean(f - f_GSL): 2.4541772123292936e-16
4696 // variance(f - f_GSL): 4.8074415038063715e-31
4697 // stddev(f - f_GSL): 6.9335715932024320e-16
4698 const testcase_hyperg<double>
4699 data094[19] =
4700 {
4701   { 0.64582752605387983, 1.0000000000000000, 5.0000000000000000,
4702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4703   { 0.67184161997264191, 1.0000000000000000, 5.0000000000000000,
4704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4705   { 0.70012779922368040, 1.0000000000000000, 5.0000000000000000,
4706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4707   { 0.73100784656910278, 1.0000000000000000, 5.0000000000000000,
4708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4709   { 0.76486919089091066, 1.0000000000000000, 5.0000000000000000,
4710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4711   { 0.80218301124334590, 1.0000000000000000, 5.0000000000000000,
4712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4713   { 0.84352883533234391, 1.0000000000000000, 5.0000000000000000,
4714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4715   { 0.88962858902212572, 1.0000000000000000, 5.0000000000000000,
4716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4717   { 0.94139473468584123, 1.0000000000000000, 5.0000000000000000,
4718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4719   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4721   { 1.0669812691939897, 1.0000000000000000, 5.0000000000000000,
4722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4723   { 1.1443996012177726, 1.0000000000000000, 5.0000000000000000,
4724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4725   { 1.2350966976721314, 1.0000000000000000, 5.0000000000000000,
4726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4727   { 1.3431264370409088, 1.0000000000000000, 5.0000000000000000,
4728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4729   { 1.4745266814162399, 1.0000000000000000, 5.0000000000000000,
4730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4731   { 1.6388137104840066, 1.0000000000000000, 5.0000000000000000,
4732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4733   { 1.8522074849776522, 1.0000000000000000, 5.0000000000000000,
4734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4735   { 2.1458016978417458, 1.0000000000000000, 5.0000000000000000,
4736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4737   { 2.5927464669826348, 1.0000000000000000, 5.0000000000000000,
4738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4739 };
4740 const double toler094 = 2.5000000000000020e-13;
4741 
4742 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
4743 // max(|f - f_GSL|): 1.3322676295501878e-15 at index 18
4744 // max(|f - f_GSL| / |f_GSL|): 6.8275390424723874e-16
4745 // mean(f - f_GSL): 1.0517902338554114e-16
4746 // variance(f - f_GSL): 8.8299945988280290e-32
4747 // stddev(f - f_GSL): 2.9715306828010425e-16
4748 const testcase_hyperg<double>
4749 data095[19] =
4750 {
4751   { 0.69583236336670584, 1.0000000000000000, 5.0000000000000000,
4752 	  10.000000000000000, -0.90000000000000002, 0.0 },
4753   { 0.71968920666899716, 1.0000000000000000, 5.0000000000000000,
4754 	  10.000000000000000, -0.80000000000000004, 0.0 },
4755   { 0.74533885416044232, 1.0000000000000000, 5.0000000000000000,
4756 	  10.000000000000000, -0.69999999999999996, 0.0 },
4757   { 0.77300145361503070, 1.0000000000000000, 5.0000000000000000,
4758 	  10.000000000000000, -0.59999999999999998, 0.0 },
4759   { 0.80293630810919447, 1.0000000000000000, 5.0000000000000000,
4760 	  10.000000000000000, -0.50000000000000000, 0.0 },
4761   { 0.83545132638592057, 1.0000000000000000, 5.0000000000000000,
4762 	  10.000000000000000, -0.39999999999999991, 0.0 },
4763   { 0.87091544744412497, 1.0000000000000000, 5.0000000000000000,
4764 	  10.000000000000000, -0.29999999999999993, 0.0 },
4765   { 0.90977522877919847, 1.0000000000000000, 5.0000000000000000,
4766 	  10.000000000000000, -0.19999999999999996, 0.0 },
4767   { 0.95257738192069130, 1.0000000000000000, 5.0000000000000000,
4768 	  10.000000000000000, -0.099999999999999978, 0.0 },
4769   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4770 	  10.000000000000000, 0.0000000000000000, 0.0 },
4771   { 1.0528968282789379, 1.0000000000000000, 5.0000000000000000,
4772 	  10.000000000000000, 0.10000000000000009, 0.0 },
4773   { 1.1123617169062123, 1.0000000000000000, 5.0000000000000000,
4774 	  10.000000000000000, 0.20000000000000018, 0.0 },
4775   { 1.1798254572896132, 1.0000000000000000, 5.0000000000000000,
4776 	  10.000000000000000, 0.30000000000000004, 0.0 },
4777   { 1.2572069000522701, 1.0000000000000000, 5.0000000000000000,
4778 	  10.000000000000000, 0.40000000000000013, 0.0 },
4779   { 1.3471600884974377, 1.0000000000000000, 5.0000000000000000,
4780 	  10.000000000000000, 0.50000000000000000, 0.0 },
4781   { 1.4535032279573519, 1.0000000000000000, 5.0000000000000000,
4782 	  10.000000000000000, 0.60000000000000009, 0.0 },
4783   { 1.5820245752814950, 1.0000000000000000, 5.0000000000000000,
4784 	  10.000000000000000, 0.70000000000000018, 0.0 },
4785   { 1.7421756366906538, 1.0000000000000000, 5.0000000000000000,
4786 	  10.000000000000000, 0.80000000000000004, 0.0 },
4787   { 1.9513145531098235, 1.0000000000000000, 5.0000000000000000,
4788 	  10.000000000000000, 0.90000000000000013, 0.0 },
4789 };
4790 const double toler095 = 2.5000000000000020e-13;
4791 
4792 // Test data for a=1.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
4793 // max(|f - f_GSL|): 2.0861625671386719e-07 at index 18
4794 // max(|f - f_GSL| / |f_GSL|): 1.6897916810721003e-15
4795 // mean(f - f_GSL): 1.0989192059253727e-08
4796 // variance(f - f_GSL): 2.2903477685061008e-15
4797 // stddev(f - f_GSL): 4.7857577963224392e-08
4798 const testcase_hyperg<double>
4799 data096[19] =
4800 {
4801   { 0.12307420104127866, 1.0000000000000000, 10.000000000000000,
4802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4803   { 0.13818870041457434, 1.0000000000000000, 10.000000000000000,
4804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4805   { 0.15739165631811705, 1.0000000000000000, 10.000000000000000,
4806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4807   { 0.18249038606882081, 1.0000000000000000, 10.000000000000000,
4808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4809   { 0.21644171225027795, 1.0000000000000000, 10.000000000000000,
4810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4811   { 0.26433326159804149, 1.0000000000000000, 10.000000000000000,
4812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4813   { 0.33544459430654527, 1.0000000000000000, 10.000000000000000,
4814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4815   { 0.44788516696232511, 1.0000000000000000, 10.000000000000000,
4816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4817   { 0.63989153514168373, 1.0000000000000000, 10.000000000000000,
4818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4819   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4821   { 1.7568608796813312, 1.0000000000000000, 10.000000000000000,
4822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4823   { 3.5836558871799102, 1.0000000000000000, 10.000000000000000,
4824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4825   { 8.8077526749963226, 1.0000000000000000, 10.000000000000000,
4826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4827   { 27.285841702089265, 1.0000000000000000, 10.000000000000000,
4828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4829   { 113.55555555555557, 1.0000000000000000, 10.000000000000000,
4830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4831   { 706.24023437500091, 1.0000000000000000, 10.000000000000000,
4832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4833   { 8064.1687976652511, 1.0000000000000000, 10.000000000000000,
4834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4835   { 271267.22222222196, 1.0000000000000000, 10.000000000000000,
4836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4837   { 123456790.00000113, 1.0000000000000000, 10.000000000000000,
4838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4839 };
4840 const double toler096 = 2.5000000000000020e-13;
4841 
4842 // Test data for a=1.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
4843 // max(|f - f_GSL|): 2.6193447411060333e-10 at index 18
4844 // max(|f - f_GSL| / |f_GSL|): 1.6039867544159698e-15
4845 // mean(f - f_GSL): 1.3861192895235850e-11
4846 // variance(f - f_GSL): 3.6088478524883243e-21
4847 // stddev(f - f_GSL): 6.0073686856129647e-11
4848 const testcase_hyperg<double>
4849 data097[19] =
4850 {
4851   { 0.28363728383055781, 1.0000000000000000, 10.000000000000000,
4852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4853   { 0.30933003169808387, 1.0000000000000000, 10.000000000000000,
4854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4855   { 0.33998437757128797, 1.0000000000000000, 10.000000000000000,
4856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4857   { 0.37713553224291113, 1.0000000000000000, 10.000000000000000,
4858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4859   { 0.42299736538419669, 1.0000000000000000, 10.000000000000000,
4860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4861   { 0.48086597727600089, 1.0000000000000000, 10.000000000000000,
4862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4863   { 0.55583495759293033, 1.0000000000000000, 10.000000000000000,
4864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4865   { 0.65612850114039678, 1.0000000000000000, 10.000000000000000,
4866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4867   { 0.79573668772968142, 1.0000000000000000, 10.000000000000000,
4868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4869   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4871   { 1.3184712058058303, 1.0000000000000000, 10.000000000000000,
4872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4873   { 1.8576958065941236, 1.0000000000000000, 10.000000000000000,
4874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4875   { 2.8759509651764228, 1.0000000000000000, 10.000000000000000,
4876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4877   { 5.1046225531822289, 1.0000000000000000, 10.000000000000000,
4878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4879   { 11.095238095238095, 1.0000000000000000, 10.000000000000000,
4880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4881   { 32.797154017857174, 1.0000000000000000, 10.000000000000000,
4882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4883   { 158.01935680536548, 1.0000000000000000, 10.000000000000000,
4884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4885   { 1815.9523809523814, 1.0000000000000000, 10.000000000000000,
4886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4887   { 163302.14285714392, 1.0000000000000000, 10.000000000000000,
4888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4889 };
4890 const double toler097 = 2.5000000000000020e-13;
4891 
4892 // Test data for a=1.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
4893 // max(|f - f_GSL|): 2.0463630789890885e-12 at index 18
4894 // max(|f - f_GSL| / |f_GSL|): 1.5238873992471854e-15
4895 // mean(f - f_GSL): 1.1029773585697082e-13
4896 // variance(f - f_GSL): 2.1981059026132227e-25
4897 // stddev(f - f_GSL): 4.6883962104468326e-13
4898 const testcase_hyperg<double>
4899 data098[19] =
4900 {
4901   { 0.39006633302741811, 1.0000000000000000, 10.000000000000000,
4902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4903   { 0.41898885698103278, 1.0000000000000000, 10.000000000000000,
4904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4905   { 0.45245557983812590, 1.0000000000000000, 10.000000000000000,
4906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4907   { 0.49160548618861627, 1.0000000000000000, 10.000000000000000,
4908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4909   { 0.53798419230517991, 1.0000000000000000, 10.000000000000000,
4910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4911   { 0.59373881442067322, 1.0000000000000000, 10.000000000000000,
4912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4913   { 0.66193391357076092, 1.0000000000000000, 10.000000000000000,
4914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4915   { 0.74708402736952118, 1.0000000000000000, 10.000000000000000,
4916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4917   { 0.85609281019430605, 1.0000000000000000, 10.000000000000000,
4918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4919   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4921   { 1.1974451135148187, 1.0000000000000000, 10.000000000000000,
4922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4923   { 1.4820886036706358, 1.0000000000000000, 10.000000000000000,
4924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4925   { 1.9201183180477521, 1.0000000000000000, 10.000000000000000,
4926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4927   { 2.6569338297733367, 1.0000000000000000, 10.000000000000000,
4928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4929   { 4.0634920634920650, 1.0000000000000000, 10.000000000000000,
4930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4931   { 7.3102678571428568, 1.0000000000000000, 10.000000000000000,
4932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4933   { 17.512574302697782, 1.0000000000000000, 10.000000000000000,
4934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4935   { 74.206349206349131, 1.0000000000000000, 10.000000000000000,
4936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4937   { 1342.8571428571502, 1.0000000000000000, 10.000000000000000,
4938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4939 };
4940 const double toler098 = 2.5000000000000020e-13;
4941 
4942 // Test data for a=1.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
4943 // max(|f - f_GSL|): 7.8159700933611020e-14 at index 18
4944 // max(|f - f_GSL| / |f_GSL|): 1.4210854715201975e-15
4945 // mean(f - f_GSL): 4.6629367034256575e-15
4946 // variance(f - f_GSL): 3.1677071819086927e-28
4947 // stddev(f - f_GSL): 1.7798053775367387e-14
4948 const testcase_hyperg<double>
4949 data099[19] =
4950 {
4951   { 0.46726928123633210, 1.0000000000000000, 10.000000000000000,
4952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4953   { 0.49687547629934464, 1.0000000000000000, 10.000000000000000,
4954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4955   { 0.53045208856322223, 1.0000000000000000, 10.000000000000000,
4956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4957   { 0.56884765624999989, 1.0000000000000000, 10.000000000000000,
4958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4959   { 0.61316872427983504, 1.0000000000000000, 10.000000000000000,
4960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4961   { 0.66488500161969544, 1.0000000000000000, 10.000000000000000,
4962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4963   { 0.72598998634501621, 1.0000000000000000, 10.000000000000000,
4964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4965   { 0.79925411522633760, 1.0000000000000000, 10.000000000000000,
4966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4967   { 0.88863845062192182, 1.0000000000000000, 10.000000000000000,
4968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4969   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4971   { 1.1423563481176653, 1.0000000000000000, 10.000000000000000,
4972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4973   { 1.3302951388888891, 1.0000000000000000, 10.000000000000000,
4974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4975   { 1.5889212827988335, 1.0000000000000000, 10.000000000000000,
4976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4977   { 1.9650205761316886, 1.0000000000000000, 10.000000000000000,
4978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4979   { 2.5555555555555549, 1.0000000000000000, 10.000000000000000,
4980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4981   { 3.5937500000000013, 1.0000000000000000, 10.000000000000000,
4982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4983   { 5.7818930041152274, 1.0000000000000000, 10.000000000000000,
4984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4985   { 12.222222222222220, 1.0000000000000000, 10.000000000000000,
4986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4987   { 55.000000000000114, 1.0000000000000000, 10.000000000000000,
4988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4989 };
4990 const double toler099 = 2.5000000000000020e-13;
4991 
4992 // Test data for a=1.0000000000000000, b=10.000000000000000, c=10.000000000000000.
4993 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
4994 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
4995 // mean(f - f_GSL): 7.5962628000668607e-17
4996 // variance(f - f_GSL): 1.6955391669463862e-31
4997 // stddev(f - f_GSL): 4.1176925175957300e-16
4998 const testcase_hyperg<double>
4999 data100[19] =
5000 {
5001   { 0.52631578947368429, 1.0000000000000000, 10.000000000000000,
5002 	  10.000000000000000, -0.90000000000000002, 0.0 },
5003   { 0.55555555555555558, 1.0000000000000000, 10.000000000000000,
5004 	  10.000000000000000, -0.80000000000000004, 0.0 },
5005   { 0.58823529411764708, 1.0000000000000000, 10.000000000000000,
5006 	  10.000000000000000, -0.69999999999999996, 0.0 },
5007   { 0.62500000000000000, 1.0000000000000000, 10.000000000000000,
5008 	  10.000000000000000, -0.59999999999999998, 0.0 },
5009   { 0.66666666666666663, 1.0000000000000000, 10.000000000000000,
5010 	  10.000000000000000, -0.50000000000000000, 0.0 },
5011   { 0.71428571428571430, 1.0000000000000000, 10.000000000000000,
5012 	  10.000000000000000, -0.39999999999999991, 0.0 },
5013   { 0.76923076923076938, 1.0000000000000000, 10.000000000000000,
5014 	  10.000000000000000, -0.29999999999999993, 0.0 },
5015   { 0.83333333333333337, 1.0000000000000000, 10.000000000000000,
5016 	  10.000000000000000, -0.19999999999999996, 0.0 },
5017   { 0.90909090909090906, 1.0000000000000000, 10.000000000000000,
5018 	  10.000000000000000, -0.099999999999999978, 0.0 },
5019   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
5020 	  10.000000000000000, 0.0000000000000000, 0.0 },
5021   { 1.1111111111111112, 1.0000000000000000, 10.000000000000000,
5022 	  10.000000000000000, 0.10000000000000009, 0.0 },
5023   { 1.2500000000000002, 1.0000000000000000, 10.000000000000000,
5024 	  10.000000000000000, 0.20000000000000018, 0.0 },
5025   { 1.4285714285714286, 1.0000000000000000, 10.000000000000000,
5026 	  10.000000000000000, 0.30000000000000004, 0.0 },
5027   { 1.6666666666666670, 1.0000000000000000, 10.000000000000000,
5028 	  10.000000000000000, 0.40000000000000013, 0.0 },
5029   { 2.0000000000000000, 1.0000000000000000, 10.000000000000000,
5030 	  10.000000000000000, 0.50000000000000000, 0.0 },
5031   { 2.5000000000000009, 1.0000000000000000, 10.000000000000000,
5032 	  10.000000000000000, 0.60000000000000009, 0.0 },
5033   { 3.3333333333333348, 1.0000000000000000, 10.000000000000000,
5034 	  10.000000000000000, 0.70000000000000018, 0.0 },
5035   { 5.0000000000000009, 1.0000000000000000, 10.000000000000000,
5036 	  10.000000000000000, 0.80000000000000004, 0.0 },
5037   { 10.000000000000011, 1.0000000000000000, 10.000000000000000,
5038 	  10.000000000000000, 0.90000000000000013, 0.0 },
5039 };
5040 const double toler100 = 2.5000000000000020e-13;
5041 
5042 // Test data for a=1.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
5043 // max(|f - f_GSL|): 1024.0000000000000 at index 18
5044 // max(|f - f_GSL| / |f_GSL|): 1.7510399999999635e-15
5045 // mean(f - f_GSL): 53.894788252704814
5046 // variance(f - f_GSL): 55188.204676932175
5047 // stddev(f - f_GSL): 234.92169903381034
5048 const testcase_hyperg<double>
5049 data101[19] =
5050 {
5051   { 0.058479236576646311, 1.0000000000000000, 20.000000000000000,
5052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5053   { 0.065788544763137821, 1.0000000000000000, 20.000000000000000,
5054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5055   { 0.075184824937824482, 1.0000000000000000, 20.000000000000000,
5056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5057   { 0.087707688693157121, 1.0000000000000000, 20.000000000000000,
5058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5059   { 0.10521567442213345, 1.0000000000000000, 20.000000000000000,
5060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5061   { 0.13135877960541509, 1.0000000000000000, 20.000000000000000,
5062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5063   { 0.17423854066297137, 1.0000000000000000, 20.000000000000000,
5064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5065   { 0.25492082527223520, 1.0000000000000000, 20.000000000000000,
5066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5067   { 0.44025895219654843, 1.0000000000000000, 20.000000000000000,
5068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5069   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5071   { 3.3698615820910360, 1.0000000000000000, 20.000000000000000,
5072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5073   { 17.997089220808562, 1.0000000000000000, 20.000000000000000,
5074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5075   { 153.73298291118951, 1.0000000000000000, 20.000000000000000,
5076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5077   { 2159.1667587825768, 1.0000000000000000, 20.000000000000000,
5078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5079   { 55188.105263157879, 1.0000000000000000, 20.000000000000000,
5080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5081   { 3191209.3921857267, 1.0000000000000000, 20.000000000000000,
5082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5083   { 646910975.29153574, 1.0000000000000000, 20.000000000000000,
5084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5085   { 1254834626850.2659, 1.0000000000000000, 20.000000000000000,
5086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5087   { 5.8479532163743910e+17, 1.0000000000000000, 20.000000000000000,
5088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5089 };
5090 const double toler101 = 2.5000000000000020e-13;
5091 
5092 // Test data for a=1.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
5093 // max(|f - f_GSL|): 0.21875000000000000 at index 18
5094 // max(|f - f_GSL| / |f_GSL|): 1.5452521874999694e-15
5095 // mean(f - f_GSL): 0.011513220685868108
5096 // variance(f - f_GSL): 0.0025185017633005862
5097 // stddev(f - f_GSL): 0.050184676578618956
5098 const testcase_hyperg<double>
5099 data102[19] =
5100 {
5101   { 0.15519511120894958, 1.0000000000000000, 20.000000000000000,
5102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5103   { 0.17197165701692893, 1.0000000000000000, 20.000000000000000,
5104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5105   { 0.19276847315207329, 1.0000000000000000, 20.000000000000000,
5106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5107   { 0.21920107206179093, 1.0000000000000000, 20.000000000000000,
5108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5109   { 0.25386158960390576, 1.0000000000000000, 20.000000000000000,
5110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5111   { 0.30115970686600663, 1.0000000000000000, 20.000000000000000,
5112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5113   { 0.36916408142057128, 1.0000000000000000, 20.000000000000000,
5114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5115   { 0.47406175901569547, 1.0000000000000000, 20.000000000000000,
5116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5117   { 0.65237908266239919, 1.0000000000000000, 20.000000000000000,
5118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5119   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5121   { 1.8227213362622299, 1.0000000000000000, 20.000000000000000,
5122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5123   { 4.3716358339791430, 1.0000000000000000, 20.000000000000000,
5124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5125   { 15.670841312959222, 1.0000000000000000, 20.000000000000000,
5126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5127   { 94.742651122760662, 1.0000000000000000, 20.000000000000000,
5128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5129   { 1081.7275541795671, 1.0000000000000000, 20.000000000000000,
5130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5131   { 27809.787731465960, 1.0000000000000000, 20.000000000000000,
5132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5133   { 2329811.1715181284, 1.0000000000000000, 20.000000000000000,
5134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5135   { 1537787532.6780224, 1.0000000000000000, 20.000000000000000,
5136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5137   { 141562653507005.19, 1.0000000000000000, 20.000000000000000,
5138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5139 };
5140 const double toler102 = 2.5000000000000020e-13;
5141 
5142 // Test data for a=1.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
5143 // max(|f - f_GSL|): 0.00024414062500000000 at index 18
5144 // max(|f - f_GSL| / |f_GSL|): 1.6763226855512285e-15
5145 // mean(f - f_GSL): 1.2849899481406474e-05
5146 // variance(f - f_GSL): 3.1370759089735494e-09
5147 // stddev(f - f_GSL): 5.6009605506319623e-05
5148 const testcase_hyperg<double>
5149 data103[19] =
5150 {
5151   { 0.23253645591196551, 1.0000000000000000, 20.000000000000000,
5152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5153   { 0.25484220947068342, 1.0000000000000000, 20.000000000000000,
5154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5155   { 0.28181987881113812, 1.0000000000000000, 20.000000000000000,
5156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5157   { 0.31508211677735770, 1.0000000000000000, 20.000000000000000,
5158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5159   { 0.35706285886959610, 1.0000000000000000, 20.000000000000000,
5160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5161   { 0.41160053409238190, 1.0000000000000000, 20.000000000000000,
5162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5163   { 0.48508083111181938, 1.0000000000000000, 20.000000000000000,
5164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5165   { 0.58885194371375260, 1.0000000000000000, 20.000000000000000,
5166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5167   { 0.74482241684585782, 1.0000000000000000, 20.000000000000000,
5168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5169   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5171   { 1.4700356864367146, 1.0000000000000000, 20.000000000000000,
5172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5173   { 2.4955144453055174, 1.0000000000000000, 20.000000000000000,
5174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5175   { 5.3506594845833471, 1.0000000000000000, 20.000000000000000,
5176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5177   { 16.618413752184267, 1.0000000000000000, 20.000000000000000,
5178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5179   { 89.310629514963878, 1.0000000000000000, 20.000000000000000,
5180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5181   { 1029.3439900542960, 1.0000000000000000, 20.000000000000000,
5182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5183   { 35659.847863372670, 1.0000000000000000, 20.000000000000000,
5184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5185   { 8009309.6233230168, 1.0000000000000000, 20.000000000000000,
5186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5187   { 145640590027.40201, 1.0000000000000000, 20.000000000000000,
5188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5189 };
5190 const double toler103 = 2.5000000000000020e-13;
5191 
5192 // Test data for a=1.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
5193 // max(|f - f_GSL|): 7.1525573730468750e-07 at index 18
5194 // max(|f - f_GSL| / |f_GSL|): 1.7237966704607975e-15
5195 // mean(f - f_GSL): 3.7648905700618082e-08
5196 // variance(f - f_GSL): 2.6925522674362989e-14
5197 // stddev(f - f_GSL): 1.6408998346749562e-07
5198 const testcase_hyperg<double>
5199 data104[19] =
5200 {
5201   { 0.29614148314592509, 1.0000000000000000, 20.000000000000000,
5202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5203   { 0.32176277356430805, 1.0000000000000000, 20.000000000000000,
5204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5205   { 0.35217870475550511, 1.0000000000000000, 20.000000000000000,
5206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5207   { 0.38885270445515113, 1.0000000000000000, 20.000000000000000,
5208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5209   { 0.43389978380608418, 1.0000000000000000, 20.000000000000000,
5210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5211   { 0.49048612522269414, 1.0000000000000000, 20.000000000000000,
5212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5213   { 0.56355539635634599, 1.0000000000000000, 20.000000000000000,
5214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5215   { 0.66123153239117671, 1.0000000000000000, 20.000000000000000,
5216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5217   { 0.79773363961895416, 1.0000000000000000, 20.000000000000000,
5218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5219   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5221   { 1.3245132157016595, 1.0000000000000000, 20.000000000000000,
5222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5223   { 1.9065148749742094, 1.0000000000000000, 20.000000000000000,
5224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5225   { 3.1328798652457452, 1.0000000000000000, 20.000000000000000,
5226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5227   { 6.4172532944033636, 1.0000000000000000, 20.000000000000000,
5228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5229   { 19.071683734222436, 1.0000000000000000, 20.000000000000000,
5230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5231   { 104.41989641582512, 1.0000000000000000, 20.000000000000000,
5232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5233   { 1510.5743992324351, 1.0000000000000000, 20.000000000000000,
5234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5235   { 115518.14360562043, 1.0000000000000000, 20.000000000000000,
5236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5237   { 414930455.29174191, 1.0000000000000000, 20.000000000000000,
5238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5239 };
5240 const double toler104 = 2.5000000000000020e-13;
5241 
5242 // Test data for a=1.0000000000000000, b=20.000000000000000, c=10.000000000000000.
5243 // max(|f - f_GSL|): 4.6566128730773926e-09 at index 18
5244 // max(|f - f_GSL| / |f_GSL|): 1.6665618165271877e-15
5245 // mean(f - f_GSL): 2.4523176471958370e-10
5246 // variance(f - f_GSL): 1.1411894517911952e-18
5247 // stddev(f - f_GSL): 1.0682646918208967e-09
5248 const testcase_hyperg<double>
5249 data105[19] =
5250 {
5251   { 0.34954259539177701, 1.0000000000000000, 20.000000000000000,
5252 	  10.000000000000000, -0.90000000000000002, 0.0 },
5253   { 0.37714038609235134, 1.0000000000000000, 20.000000000000000,
5254 	  10.000000000000000, -0.80000000000000004, 0.0 },
5255   { 0.40942091659748781, 1.0000000000000000, 20.000000000000000,
5256 	  10.000000000000000, -0.69999999999999996, 0.0 },
5257   { 0.44767109606846422, 1.0000000000000000, 20.000000000000000,
5258 	  10.000000000000000, -0.59999999999999998, 0.0 },
5259   { 0.49368984777532227, 1.0000000000000000, 20.000000000000000,
5260 	  10.000000000000000, -0.50000000000000000, 0.0 },
5261   { 0.55006638216982318, 1.0000000000000000, 20.000000000000000,
5262 	  10.000000000000000, -0.39999999999999991, 0.0 },
5263   { 0.62065830207408901, 1.0000000000000000, 20.000000000000000,
5264 	  10.000000000000000, -0.29999999999999993, 0.0 },
5265   { 0.71145554513583764, 1.0000000000000000, 20.000000000000000,
5266 	  10.000000000000000, -0.19999999999999996, 0.0 },
5267   { 0.83223839666914623, 1.0000000000000000, 20.000000000000000,
5268 	  10.000000000000000, -0.099999999999999978, 0.0 },
5269   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5270 	  10.000000000000000, 0.0000000000000000, 0.0 },
5271   { 1.2466748028187731, 1.0000000000000000, 20.000000000000000,
5272 	  10.000000000000000, 0.10000000000000009, 0.0 },
5273   { 1.6386752725021760, 1.0000000000000000, 20.000000000000000,
5274 	  10.000000000000000, 0.20000000000000018, 0.0 },
5275   { 2.3340068725479681, 1.0000000000000000, 20.000000000000000,
5276 	  10.000000000000000, 0.30000000000000004, 0.0 },
5277   { 3.7848108613132099, 1.0000000000000000, 20.000000000000000,
5278 	  10.000000000000000, 0.40000000000000013, 0.0 },
5279   { 7.6754638550304133, 1.0000000000000000, 20.000000000000000,
5280 	  10.000000000000000, 0.50000000000000000, 0.0 },
5281   { 23.344217312927277, 1.0000000000000000, 20.000000000000000,
5282 	  10.000000000000000, 0.60000000000000009, 0.0 },
5283   { 149.83491198246998, 1.0000000000000000, 20.000000000000000,
5284 	  10.000000000000000, 0.70000000000000018, 0.0 },
5285   { 3936.9253501916060, 1.0000000000000000, 20.000000000000000,
5286 	  10.000000000000000, 0.80000000000000004, 0.0 },
5287   { 2794143.5036480846, 1.0000000000000000, 20.000000000000000,
5288 	  10.000000000000000, 0.90000000000000013, 0.0 },
5289 };
5290 const double toler105 = 2.5000000000000020e-13;
5291 
5292 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
5293 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5294 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5295 // mean(f - f_GSL): 0.0000000000000000
5296 // variance(f - f_GSL): 0.0000000000000000
5297 // stddev(f - f_GSL): 0.0000000000000000
5298 const testcase_hyperg<double>
5299 data106[19] =
5300 {
5301   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5303   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5305   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5307   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5309   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5311   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5313   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5315   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5317   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5319   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5321   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5323   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5325   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5327   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5329   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5331   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5333   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5335   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5337   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5339 };
5340 const double toler106 = 2.5000000000000020e-13;
5341 
5342 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
5343 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5344 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5345 // mean(f - f_GSL): 0.0000000000000000
5346 // variance(f - f_GSL): 0.0000000000000000
5347 // stddev(f - f_GSL): 0.0000000000000000
5348 const testcase_hyperg<double>
5349 data107[19] =
5350 {
5351   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5353   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5355   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5357   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5359   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5361   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5363   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5365   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5367   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5369   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5371   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5373   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5375   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5377   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5379   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5381   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5383   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5385   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5387   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5389 };
5390 const double toler107 = 2.5000000000000020e-13;
5391 
5392 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
5393 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5394 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5395 // mean(f - f_GSL): 0.0000000000000000
5396 // variance(f - f_GSL): 0.0000000000000000
5397 // stddev(f - f_GSL): 0.0000000000000000
5398 const testcase_hyperg<double>
5399 data108[19] =
5400 {
5401   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5403   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5405   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5407   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5409   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5411   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5413   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5415   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5417   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5419   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5421   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5423   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5425   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5427   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5429   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5431   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5433   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5435   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5437   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5439 };
5440 const double toler108 = 2.5000000000000020e-13;
5441 
5442 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
5443 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5444 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5445 // mean(f - f_GSL): 0.0000000000000000
5446 // variance(f - f_GSL): 0.0000000000000000
5447 // stddev(f - f_GSL): 0.0000000000000000
5448 const testcase_hyperg<double>
5449 data109[19] =
5450 {
5451   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5453   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5455   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5457   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5459   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5461   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5463   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5465   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5467   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5469   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5471   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5473   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5475   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5477   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5479   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5481   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5483   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5485   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5487   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5489 };
5490 const double toler109 = 2.5000000000000020e-13;
5491 
5492 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
5493 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5494 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5495 // mean(f - f_GSL): 0.0000000000000000
5496 // variance(f - f_GSL): 0.0000000000000000
5497 // stddev(f - f_GSL): 0.0000000000000000
5498 const testcase_hyperg<double>
5499 data110[19] =
5500 {
5501   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5502 	  10.000000000000000, -0.90000000000000002, 0.0 },
5503   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5504 	  10.000000000000000, -0.80000000000000004, 0.0 },
5505   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5506 	  10.000000000000000, -0.69999999999999996, 0.0 },
5507   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5508 	  10.000000000000000, -0.59999999999999998, 0.0 },
5509   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5510 	  10.000000000000000, -0.50000000000000000, 0.0 },
5511   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5512 	  10.000000000000000, -0.39999999999999991, 0.0 },
5513   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5514 	  10.000000000000000, -0.29999999999999993, 0.0 },
5515   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5516 	  10.000000000000000, -0.19999999999999996, 0.0 },
5517   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5518 	  10.000000000000000, -0.099999999999999978, 0.0 },
5519   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5520 	  10.000000000000000, 0.0000000000000000, 0.0 },
5521   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5522 	  10.000000000000000, 0.10000000000000009, 0.0 },
5523   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5524 	  10.000000000000000, 0.20000000000000018, 0.0 },
5525   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5526 	  10.000000000000000, 0.30000000000000004, 0.0 },
5527   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5528 	  10.000000000000000, 0.40000000000000013, 0.0 },
5529   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5530 	  10.000000000000000, 0.50000000000000000, 0.0 },
5531   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5532 	  10.000000000000000, 0.60000000000000009, 0.0 },
5533   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5534 	  10.000000000000000, 0.70000000000000018, 0.0 },
5535   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5536 	  10.000000000000000, 0.80000000000000004, 0.0 },
5537   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5538 	  10.000000000000000, 0.90000000000000013, 0.0 },
5539 };
5540 const double toler110 = 2.5000000000000020e-13;
5541 
5542 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
5543 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
5544 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
5545 // mean(f - f_GSL): 5.8432790769745078e-18
5546 // variance(f - f_GSL): 1.1262748212790853e-32
5547 // stddev(f - f_GSL): 1.0612609581432294e-16
5548 const testcase_hyperg<double>
5549 data111[19] =
5550 {
5551   { 0.72547625011001160, 2.0000000000000000, 0.50000000000000000,
5552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5553   { 0.74535599249992990, 2.0000000000000000, 0.50000000000000000,
5554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5555   { 0.76696498884737041, 2.0000000000000000, 0.50000000000000000,
5556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5557   { 0.79056941504209477, 2.0000000000000000, 0.50000000000000000,
5558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5559   { 0.81649658092772603, 2.0000000000000000, 0.50000000000000000,
5560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5561   { 0.84515425472851669, 2.0000000000000000, 0.50000000000000000,
5562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5563   { 0.87705801930702931, 2.0000000000000000, 0.50000000000000000,
5564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5565   { 0.91287092917527690, 2.0000000000000000, 0.50000000000000000,
5566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5567   { 0.95346258924559224, 2.0000000000000000, 0.50000000000000000,
5568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5569   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5571   { 1.0540925533894598, 2.0000000000000000, 0.50000000000000000,
5572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5573   { 1.1180339887498949, 2.0000000000000000, 0.50000000000000000,
5574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5575   { 1.1952286093343938, 2.0000000000000000, 0.50000000000000000,
5576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5577   { 1.2909944487358058, 2.0000000000000000, 0.50000000000000000,
5578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5579   { 1.4142135623730951, 2.0000000000000000, 0.50000000000000000,
5580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5581   { 1.5811388300841900, 2.0000000000000000, 0.50000000000000000,
5582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5583   { 1.8257418583505542, 2.0000000000000000, 0.50000000000000000,
5584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5585   { 2.2360679774997898, 2.0000000000000000, 0.50000000000000000,
5586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5587   { 3.1622776601683809, 2.0000000000000000, 0.50000000000000000,
5588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5589 };
5590 const double toler111 = 2.5000000000000020e-13;
5591 
5592 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
5593 // max(|f - f_GSL|): 6.6613381477509392e-16 at index 18
5594 // max(|f - f_GSL| / |f_GSL|): 4.6340403913587147e-16
5595 // mean(f - f_GSL): 7.5962628000668607e-17
5596 // variance(f - f_GSL): 2.0425119025543020e-32
5597 // stddev(f - f_GSL): 1.4291647569662155e-16
5598 const testcase_hyperg<double>
5599 data112[19] =
5600 {
5601   { 0.83664260086443765, 2.0000000000000000, 0.50000000000000000,
5602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5603   { 0.85046584300227079, 2.0000000000000000, 0.50000000000000000,
5604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5605   { 0.86509574979651649, 2.0000000000000000, 0.50000000000000000,
5606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5607   { 0.88062082573041911, 2.0000000000000000, 0.50000000000000000,
5608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5609   { 0.89714464248521597, 2.0000000000000000, 0.50000000000000000,
5610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5611   { 0.91478946588967569, 2.0000000000000000, 0.50000000000000000,
5612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5613   { 0.93370105322348607, 2.0000000000000000, 0.50000000000000000,
5614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5615   { 0.95405511057700887, 2.0000000000000000, 0.50000000000000000,
5616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5617   { 0.97606616007978142, 2.0000000000000000, 0.50000000000000000,
5618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5619   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5621   { 1.0261916902334731, 2.0000000000000000, 0.50000000000000000,
5622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5623   { 1.0550723519434702, 2.0000000000000000, 0.50000000000000000,
5624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5625   { 1.0872106588188091, 2.0000000000000000, 0.50000000000000000,
5626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5627   { 1.1233801699379022, 2.0000000000000000, 0.50000000000000000,
5628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5629   { 1.1646752981725688, 2.0000000000000000, 0.50000000000000000,
5630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5631   { 1.2127272514219511, 2.0000000000000000, 0.50000000000000000,
5632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5633   { 1.2701518651068637, 2.0000000000000000, 0.50000000000000000,
5634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5635   { 1.3416407864998725, 2.0000000000000000, 0.50000000000000000,
5636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5637   { 1.4374795179111106, 2.0000000000000000, 0.50000000000000000,
5638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5639 };
5640 const double toler112 = 2.5000000000000020e-13;
5641 
5642 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
5643 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
5644 // max(|f - f_GSL| / |f_GSL|): 3.3853500746952663e-16
5645 // mean(f - f_GSL): 1.1686558153949016e-17
5646 // variance(f - f_GSL): 2.5949371882270124e-33
5647 // stddev(f - f_GSL): 5.0940525990875012e-17
5648 const testcase_hyperg<double>
5649 data113[19] =
5650 {
5651   { 0.88195381730235822, 2.0000000000000000, 0.50000000000000000,
5652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5653   { 0.89265078469555081, 2.0000000000000000, 0.50000000000000000,
5654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5655   { 0.90382937908303673, 2.0000000000000000, 0.50000000000000000,
5656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5657   { 0.91553161389880600, 2.0000000000000000, 0.50000000000000000,
5658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5659   { 0.92780530349281509, 2.0000000000000000, 0.50000000000000000,
5660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5661   { 0.94070521140346020, 2.0000000000000000, 0.50000000000000000,
5662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5663   { 0.95429450630523349, 2.0000000000000000, 0.50000000000000000,
5664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5665   { 0.96864663325785849, 2.0000000000000000, 0.50000000000000000,
5666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5667   { 0.98384775588541795, 2.0000000000000000, 0.50000000000000000,
5668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5669   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5671   { 1.0172258496884334, 2.0000000000000000, 0.50000000000000000,
5672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5673   { 1.0356742479163461, 2.0000000000000000, 0.50000000000000000,
5674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5675   { 1.0555293036908924, 2.0000000000000000, 0.50000000000000000,
5676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5677   { 1.0770231491562379, 2.0000000000000000, 0.50000000000000000,
5678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5679   { 1.1004557416484888, 2.0000000000000000, 0.50000000000000000,
5680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5681   { 1.1262270515731978, 2.0000000000000000, 0.50000000000000000,
5682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5683   { 1.1548932919125088, 2.0000000000000000, 0.50000000000000000,
5684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5685   { 1.1872757758134724, 2.0000000000000000, 0.50000000000000000,
5686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5687   { 1.2247091713458949, 2.0000000000000000, 0.50000000000000000,
5688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5689 };
5690 const double toler113 = 2.5000000000000020e-13;
5691 
5692 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
5693 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
5694 // max(|f - f_GSL| / |f_GSL|): 1.9683492716399738e-16
5695 // mean(f - f_GSL): 1.7529837230923523e-17
5696 // variance(f - f_GSL): 2.4527762774522302e-33
5697 // stddev(f - f_GSL): 4.9525511380017369e-17
5698 const testcase_hyperg<double>
5699 data114[19] =
5700 {
5701   { 0.90716919697107279, 2.0000000000000000, 0.50000000000000000,
5702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5703   { 0.91592299407142508, 2.0000000000000000, 0.50000000000000000,
5704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5705   { 0.92500027075874192, 2.0000000000000000, 0.50000000000000000,
5706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5707   { 0.93442464185467122, 2.0000000000000000, 0.50000000000000000,
5708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5709   { 0.94422248683737076, 2.0000000000000000, 0.50000000000000000,
5710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5711   { 0.95442341810133347, 2.0000000000000000, 0.50000000000000000,
5712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5713   { 0.96506085725516355, 2.0000000000000000, 0.50000000000000000,
5714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5715   { 0.97617275213704069, 2.0000000000000000, 0.50000000000000000,
5716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5717   { 0.98780247986309799, 2.0000000000000000, 0.50000000000000000,
5718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5719   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5721   { 1.0128233505813447, 2.0000000000000000, 0.50000000000000000,
5722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5723   { 1.0263406246541855, 2.0000000000000000, 0.50000000000000000,
5724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5725   { 1.0406326381700366, 2.0000000000000000, 0.50000000000000000,
5726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5727   { 1.0557966239802845, 2.0000000000000000, 0.50000000000000000,
5728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5729   { 1.0719515075786321, 2.0000000000000000, 0.50000000000000000,
5730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5731   { 1.0892457392422055, 2.0000000000000000, 0.50000000000000000,
5732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5733   { 1.1078695188000958, 2.0000000000000000, 0.50000000000000000,
5734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5735   { 1.1280752258974340, 2.0000000000000000, 0.50000000000000000,
5736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5737   { 1.1502152002706476, 2.0000000000000000, 0.50000000000000000,
5738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5739 };
5740 const double toler114 = 2.5000000000000020e-13;
5741 
5742 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
5743 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
5744 // max(|f - f_GSL| / |f_GSL|): 3.3636359087105992e-16
5745 // mean(f - f_GSL): 2.9216395384872539e-17
5746 // variance(f - f_GSL): 2.1804680539963092e-33
5747 // stddev(f - f_GSL): 4.6695482158302094e-17
5748 const testcase_hyperg<double>
5749 data115[19] =
5750 {
5751   { 0.92336416053263082, 2.0000000000000000, 0.50000000000000000,
5752 	  10.000000000000000, -0.90000000000000002, 0.0 },
5753   { 0.93078397248364542, 2.0000000000000000, 0.50000000000000000,
5754 	  10.000000000000000, -0.80000000000000004, 0.0 },
5755   { 0.93843714333600259, 2.0000000000000000, 0.50000000000000000,
5756 	  10.000000000000000, -0.69999999999999996, 0.0 },
5757   { 0.94633837784068098, 2.0000000000000000, 0.50000000000000000,
5758 	  10.000000000000000, -0.59999999999999998, 0.0 },
5759   { 0.95450388104967876, 2.0000000000000000, 0.50000000000000000,
5760 	  10.000000000000000, -0.50000000000000000, 0.0 },
5761   { 0.96295158125742752, 2.0000000000000000, 0.50000000000000000,
5762 	  10.000000000000000, -0.39999999999999991, 0.0 },
5763   { 0.97170139827854329, 2.0000000000000000, 0.50000000000000000,
5764 	  10.000000000000000, -0.29999999999999993, 0.0 },
5765   { 0.98077556918512687, 2.0000000000000000, 0.50000000000000000,
5766 	  10.000000000000000, -0.19999999999999996, 0.0 },
5767   { 0.99019904777750845, 2.0000000000000000, 0.50000000000000000,
5768 	  10.000000000000000, -0.099999999999999978, 0.0 },
5769   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5770 	  10.000000000000000, 0.0000000000000000, 0.0 },
5771   { 1.0102104261941198, 2.0000000000000000, 0.50000000000000000,
5772 	  10.000000000000000, 0.10000000000000009, 0.0 },
5773   { 1.0208669540935695, 2.0000000000000000, 0.50000000000000000,
5774 	  10.000000000000000, 0.20000000000000018, 0.0 },
5775   { 1.0320118665407505, 2.0000000000000000, 0.50000000000000000,
5776 	  10.000000000000000, 0.30000000000000004, 0.0 },
5777   { 1.0436944599504387, 2.0000000000000000, 0.50000000000000000,
5778 	  10.000000000000000, 0.40000000000000013, 0.0 },
5779   { 1.0559728828278145, 2.0000000000000000, 0.50000000000000000,
5780 	  10.000000000000000, 0.50000000000000000, 0.0 },
5781   { 1.0689166967761712, 2.0000000000000000, 0.50000000000000000,
5782 	  10.000000000000000, 0.60000000000000009, 0.0 },
5783   { 1.0826105758119842, 2.0000000000000000, 0.50000000000000000,
5784 	  10.000000000000000, 0.70000000000000018, 0.0 },
5785   { 1.0971599106346146, 2.0000000000000000, 0.50000000000000000,
5786 	  10.000000000000000, 0.80000000000000004, 0.0 },
5787   { 1.1126998828023964, 2.0000000000000000, 0.50000000000000000,
5788 	  10.000000000000000, 0.90000000000000013, 0.0 },
5789 };
5790 const double toler115 = 2.5000000000000020e-13;
5791 
5792 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
5793 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
5794 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
5795 // mean(f - f_GSL): 7.5962628000668607e-17
5796 // variance(f - f_GSL): 1.6955391669463862e-31
5797 // stddev(f - f_GSL): 4.1176925175957300e-16
5798 const testcase_hyperg<double>
5799 data116[19] =
5800 {
5801   { 0.52631578947368429, 2.0000000000000000, 1.0000000000000000,
5802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5803   { 0.55555555555555558, 2.0000000000000000, 1.0000000000000000,
5804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5805   { 0.58823529411764708, 2.0000000000000000, 1.0000000000000000,
5806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5807   { 0.62500000000000000, 2.0000000000000000, 1.0000000000000000,
5808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5809   { 0.66666666666666663, 2.0000000000000000, 1.0000000000000000,
5810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5811   { 0.71428571428571430, 2.0000000000000000, 1.0000000000000000,
5812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5813   { 0.76923076923076938, 2.0000000000000000, 1.0000000000000000,
5814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5815   { 0.83333333333333337, 2.0000000000000000, 1.0000000000000000,
5816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5817   { 0.90909090909090906, 2.0000000000000000, 1.0000000000000000,
5818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5819   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5821   { 1.1111111111111112, 2.0000000000000000, 1.0000000000000000,
5822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5823   { 1.2500000000000002, 2.0000000000000000, 1.0000000000000000,
5824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5825   { 1.4285714285714286, 2.0000000000000000, 1.0000000000000000,
5826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5827   { 1.6666666666666670, 2.0000000000000000, 1.0000000000000000,
5828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5829   { 2.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5831   { 2.5000000000000009, 2.0000000000000000, 1.0000000000000000,
5832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5833   { 3.3333333333333348, 2.0000000000000000, 1.0000000000000000,
5834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5835   { 5.0000000000000009, 2.0000000000000000, 1.0000000000000000,
5836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5837   { 10.000000000000011, 2.0000000000000000, 1.0000000000000000,
5838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5839 };
5840 const double toler116 = 2.5000000000000020e-13;
5841 
5842 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
5843 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
5844 // max(|f - f_GSL| / |f_GSL|): 1.2228571846595245e-15
5845 // mean(f - f_GSL): 1.9282820954015878e-16
5846 // variance(f - f_GSL): 3.5826351554959189e-31
5847 // stddev(f - f_GSL): 5.9855118039278136e-16
5848 const testcase_hyperg<double>
5849 data117[19] =
5850 {
5851   { 0.70351947549341554, 2.0000000000000000, 1.0000000000000000,
5852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5853   { 0.72637503722092756, 2.0000000000000000, 1.0000000000000000,
5854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5855   { 0.75099661564391240, 2.0000000000000000, 1.0000000000000000,
5856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5857   { 0.77761647796730871, 2.0000000000000000, 1.0000000000000000,
5858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5859   { 0.80651221621216473, 2.0000000000000000, 1.0000000000000000,
5860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5861   { 0.83801894346580275, 2.0000000000000000, 1.0000000000000000,
5862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5863   { 0.87254582050258456, 2.0000000000000000, 1.0000000000000000,
5864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5865   { 0.91059888544083678, 2.0000000000000000, 1.0000000000000000,
5866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5867   { 0.95281329145592386, 2.0000000000000000, 1.0000000000000000,
5868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5869   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5871   { 1.0532154477379738, 2.0000000000000000, 1.0000000000000000,
5872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5873   { 1.1138692114741471, 2.0000000000000000, 1.0000000000000000,
5874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5875   { 1.1838976095305187, 2.0000000000000000, 1.0000000000000000,
5876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5877   { 1.2660586631630240, 2.0000000000000000, 1.0000000000000000,
5878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5879   { 1.3644676665613118, 2.0000000000000000, 1.0000000000000000,
5880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5881   { 1.4856585347316102, 2.0000000000000000, 1.0000000000000000,
5882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5883   { 1.6409590443536872, 2.0000000000000000, 1.0000000000000000,
5884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5885   { 1.8528798927325769, 2.0000000000000000, 1.0000000000000000,
5886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5887   { 2.1789423102929653, 2.0000000000000000, 1.0000000000000000,
5888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5889 };
5890 const double toler117 = 2.5000000000000020e-13;
5891 
5892 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
5893 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
5894 // max(|f - f_GSL| / |f_GSL|): 5.8050967180790176e-16
5895 // mean(f - f_GSL): 5.8432790769745078e-17
5896 // variance(f - f_GSL): 4.0373698660038179e-32
5897 // stddev(f - f_GSL): 2.0093207474178476e-16
5898 const testcase_hyperg<double>
5899 data118[19] =
5900 {
5901   { 0.78068027379106275, 2.0000000000000000, 1.0000000000000000,
5902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5903   { 0.79924541976981278, 2.0000000000000000, 1.0000000000000000,
5904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5905   { 0.81891305585650975, 2.0000000000000000, 1.0000000000000000,
5906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5907   { 0.83979799626213247, 2.0000000000000000, 1.0000000000000000,
5908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5909   { 0.86203315303160111, 2.0000000000000000, 1.0000000000000000,
5910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5911   { 0.88577352485361693, 2.0000000000000000, 1.0000000000000000,
5912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5913   { 0.91120135738402230, 2.0000000000000000, 1.0000000000000000,
5914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5915   { 0.93853291956703588, 2.0000000000000000, 1.0000000000000000,
5916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5917   { 0.96802755388922956, 2.0000000000000000, 1.0000000000000000,
5918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5919   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5921   { 1.0348375559194773, 2.0000000000000000, 1.0000000000000000,
5922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5923   { 1.0730246119544820, 2.0000000000000000, 1.0000000000000000,
5924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5925   { 1.1151788396279341, 2.0000000000000000, 1.0000000000000000,
5926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5927   { 1.1621066403893472, 2.0000000000000000, 1.0000000000000000,
5928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5929   { 1.2148922218710421, 2.0000000000000000, 1.0000000000000000,
5930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5931   { 1.2750496810838674, 2.0000000000000000, 1.0000000000000000,
5932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5933   { 1.3448048570872917, 2.0000000000000000, 1.0000000000000000,
5934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5935   { 1.4276833109859521, 2.0000000000000000, 1.0000000000000000,
5936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5937   { 1.5299976259379793, 2.0000000000000000, 1.0000000000000000,
5938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5939 };
5940 const double toler118 = 2.5000000000000020e-13;
5941 
5942 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
5943 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
5944 // max(|f - f_GSL| / |f_GSL|): 3.4946054932156233e-16
5945 // mean(f - f_GSL): 3.5059674461847047e-17
5946 // variance(f - f_GSL): 9.8111051098089209e-33
5947 // stddev(f - f_GSL): 9.9051022760034738e-17
5948 const testcase_hyperg<double>
5949 data119[19] =
5950 {
5951   { 0.82510759951857615, 2.0000000000000000, 1.0000000000000000,
5952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5953   { 0.84072786892782070, 2.0000000000000000, 1.0000000000000000,
5954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5955   { 0.85710884896562356, 2.0000000000000000, 1.0000000000000000,
5956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5957   { 0.87431674418118244, 2.0000000000000000, 1.0000000000000000,
5958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5959   { 0.89242659229726995, 2.0000000000000000, 1.0000000000000000,
5960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5961   { 0.91152392685930339, 2.0000000000000000, 1.0000000000000000,
5962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5963   { 0.93170685950993570, 2.0000000000000000, 1.0000000000000000,
5964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5965   { 0.95308871926790661, 2.0000000000000000, 1.0000000000000000,
5966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5967   { 0.97580144325325802, 2.0000000000000000, 1.0000000000000000,
5968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5969   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5971   { 1.0258682619030324, 2.0000000000000000, 1.0000000000000000,
5972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5973   { 1.0536269616706000, 2.0000000000000000, 1.0000000000000000,
5974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5975   { 1.0835447330793833, 2.0000000000000000, 1.0000000000000000,
5976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5977   { 1.1159538758396654, 2.0000000000000000, 1.0000000000000000,
5978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5979   { 1.1512736659291880, 2.0000000000000000, 1.0000000000000000,
5980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5981   { 1.1900463690116090, 2.0000000000000000, 1.0000000000000000,
5982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5983   { 1.2329961591622411, 2.0000000000000000, 1.0000000000000000,
5984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5985   { 1.2811334345669059, 2.0000000000000000, 1.0000000000000000,
5986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5987   { 1.3359629014132053, 2.0000000000000000, 1.0000000000000000,
5988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5989 };
5990 const double toler119 = 2.5000000000000020e-13;
5991 
5992 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
5993 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
5994 // max(|f - f_GSL| / |f_GSL|): 4.6160879869309861e-16
5995 // mean(f - f_GSL): -2.9216395384872539e-17
5996 // variance(f - f_GSL): 3.7021904791911625e-33
5997 // stddev(f - f_GSL): 6.0845628266878486e-17
5998 const testcase_hyperg<double>
5999 data120[19] =
6000 {
6001   { 0.85426123653345876, 2.0000000000000000, 1.0000000000000000,
6002 	  10.000000000000000, -0.90000000000000002, 0.0 },
6003   { 0.86774543390930414, 2.0000000000000000, 1.0000000000000000,
6004 	  10.000000000000000, -0.80000000000000004, 0.0 },
6005   { 0.88178859537254239, 2.0000000000000000, 1.0000000000000000,
6006 	  10.000000000000000, -0.69999999999999996, 0.0 },
6007   { 0.89643269097060951, 2.0000000000000000, 1.0000000000000000,
6008 	  10.000000000000000, -0.59999999999999998, 0.0 },
6009   { 0.91172456687216819, 2.0000000000000000, 1.0000000000000000,
6010 	  10.000000000000000, -0.50000000000000000, 0.0 },
6011   { 0.92771674975966134, 2.0000000000000000, 1.0000000000000000,
6012 	  10.000000000000000, -0.39999999999999991, 0.0 },
6013   { 0.94446842993888669, 2.0000000000000000, 1.0000000000000000,
6014 	  10.000000000000000, -0.29999999999999993, 0.0 },
6015   { 0.96204667481937678, 2.0000000000000000, 1.0000000000000000,
6016 	  10.000000000000000, -0.19999999999999996, 0.0 },
6017   { 0.98052794339012128, 2.0000000000000000, 1.0000000000000000,
6018 	  10.000000000000000, -0.099999999999999978, 0.0 },
6019   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
6020 	  10.000000000000000, 0.0000000000000000, 0.0 },
6021   { 1.0205643671068179, 2.0000000000000000, 1.0000000000000000,
6022 	  10.000000000000000, 0.10000000000000009, 0.0 },
6023   { 1.0423395201078882, 2.0000000000000000, 1.0000000000000000,
6024 	  10.000000000000000, 0.20000000000000018, 0.0 },
6025   { 1.0654651277885334, 2.0000000000000000, 1.0000000000000000,
6026 	  10.000000000000000, 0.30000000000000004, 0.0 },
6027   { 1.0901078068101382, 2.0000000000000000, 1.0000000000000000,
6028 	  10.000000000000000, 0.40000000000000013, 0.0 },
6029   { 1.1164691415928940, 2.0000000000000000, 1.0000000000000000,
6030 	  10.000000000000000, 0.50000000000000000, 0.0 },
6031   { 1.1447972335326551, 2.0000000000000000, 1.0000000000000000,
6032 	  10.000000000000000, 0.60000000000000009, 0.0 },
6033   { 1.1754040384534163, 2.0000000000000000, 1.0000000000000000,
6034 	  10.000000000000000, 0.70000000000000018, 0.0 },
6035   { 1.2086928679893112, 2.0000000000000000, 1.0000000000000000,
6036 	  10.000000000000000, 0.80000000000000004, 0.0 },
6037   { 1.2452055640510711, 2.0000000000000000, 1.0000000000000000,
6038 	  10.000000000000000, 0.90000000000000013, 0.0 },
6039 };
6040 const double toler120 = 2.5000000000000020e-13;
6041 
6042 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
6043 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
6044 // max(|f - f_GSL| / |f_GSL|): 4.2632564145605916e-16
6045 // mean(f - f_GSL): 2.3636063866361887e-15
6046 // variance(f - f_GSL): 9.5093179694074762e-29
6047 // stddev(f - f_GSL): 9.7515731907254209e-15
6048 const testcase_hyperg<double>
6049 data121[19] =
6050 {
6051   { 0.27700831024930750, 2.0000000000000000, 2.0000000000000000,
6052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6053   { 0.30864197530864196, 2.0000000000000000, 2.0000000000000000,
6054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6055   { 0.34602076124567477, 2.0000000000000000, 2.0000000000000000,
6056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6057   { 0.39062500000000000, 2.0000000000000000, 2.0000000000000000,
6058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6059   { 0.44444444444444442, 2.0000000000000000, 2.0000000000000000,
6060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6061   { 0.51020408163265318, 2.0000000000000000, 2.0000000000000000,
6062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6063   { 0.59171597633136108, 2.0000000000000000, 2.0000000000000000,
6064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6065   { 0.69444444444444442, 2.0000000000000000, 2.0000000000000000,
6066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6067   { 0.82644628099173545, 2.0000000000000000, 2.0000000000000000,
6068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6069   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6071   { 1.2345679012345683, 2.0000000000000000, 2.0000000000000000,
6072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6073   { 1.5625000000000007, 2.0000000000000000, 2.0000000000000000,
6074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6075   { 2.0408163265306127, 2.0000000000000000, 2.0000000000000000,
6076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6077   { 2.7777777777777795, 2.0000000000000000, 2.0000000000000000,
6078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6079   { 4.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6081   { 6.2500000000000027, 2.0000000000000000, 2.0000000000000000,
6082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6083   { 11.111111111111125, 2.0000000000000000, 2.0000000000000000,
6084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6085   { 25.000000000000007, 2.0000000000000000, 2.0000000000000000,
6086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6087   { 100.00000000000023, 2.0000000000000000, 2.0000000000000000,
6088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6089 };
6090 const double toler121 = 2.5000000000000020e-13;
6091 
6092 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
6093 // max(|f - f_GSL|): 7.9936057773011271e-15 at index 18
6094 // max(|f - f_GSL| / |f_GSL|): 1.3252801810681345e-15
6095 // mean(f - f_GSL): 6.3107414031324687e-16
6096 // variance(f - f_GSL): 3.1787980555780903e-30
6097 // stddev(f - f_GSL): 1.7829184096806254e-15
6098 const testcase_hyperg<double>
6099 data122[19] =
6100 {
6101   { 0.50515448477320835, 2.0000000000000000, 2.0000000000000000,
6102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6103   { 0.53674994210078020, 2.0000000000000000, 2.0000000000000000,
6104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6105   { 0.57194655162437413, 2.0000000000000000, 2.0000000000000000,
6106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6107   { 0.61137322330312327, 2.0000000000000000, 2.0000000000000000,
6108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6109   { 0.65581297297972585, 2.0000000000000000, 2.0000000000000000,
6110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6111   { 0.70625323977290955, 2.0000000000000000, 2.0000000000000000,
6112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6113   { 0.76395739449542666, 2.0000000000000000, 2.0000000000000000,
6114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6115   { 0.83056871002513311, 2.0000000000000000, 2.0000000000000000,
6116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6117   { 0.90826553449323655, 2.0000000000000000, 2.0000000000000000,
6118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6119   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6121   { 1.1098784992198341, 2.0000000000000000, 2.0000000000000000,
6122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6123   { 1.2437942741831702, 2.0000000000000000, 2.0000000000000000,
6124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6125   { 1.4105343768544543, 2.0000000000000000, 2.0000000000000000,
6126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6127   { 1.6238435648986023, 2.0000000000000000, 2.0000000000000000,
6128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6129   { 1.9065970003160624, 2.0000000000000000, 2.0000000000000000,
6130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6131   { 2.3001951284393627, 2.0000000000000000, 2.0000000000000000,
6132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6133   { 2.8891774744673469, 2.0000000000000000, 2.0000000000000000,
6134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6135   { 3.8827206436045336, 2.0000000000000000, 2.0000000000000000,
6136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6137   { 6.0316345867773640, 2.0000000000000000, 2.0000000000000000,
6138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6139 };
6140 const double toler122 = 2.5000000000000020e-13;
6141 
6142 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
6143 // max(|f - f_GSL|): 3.1086244689504383e-15 at index 18
6144 // max(|f - f_GSL| / |f_GSL|): 1.2095468681839713e-15
6145 // mean(f - f_GSL): 2.5126100030990384e-16
6146 // variance(f - f_GSL): 4.7878393162502431e-31
6147 // stddev(f - f_GSL): 6.9194214470938558e-16
6148 const testcase_hyperg<double>
6149 data123[19] =
6150 {
6151   { 0.61824560969673270, 2.0000000000000000, 2.0000000000000000,
6152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6153   { 0.64645665839161026, 2.0000000000000000, 2.0000000000000000,
6154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6155   { 0.67712272792612116, 2.0000000000000000, 2.0000000000000000,
6156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6157   { 0.71058076074636822, 2.0000000000000000, 2.0000000000000000,
6158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6159   { 0.74723387423852838, 2.0000000000000000, 2.0000000000000000,
6160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6161   { 0.78756892188863170, 2.0000000000000000, 2.0000000000000000,
6162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6163   { 0.83218012557592669, 2.0000000000000000, 2.0000000000000000,
6164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6165   { 0.88180144818204143, 2.0000000000000000, 2.0000000000000000,
6166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6167   { 0.93735184459468934, 2.0000000000000000, 2.0000000000000000,
6168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6169   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6171   { 1.0712594799044883, 2.0000000000000000, 2.0000000000000000,
6172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6173   { 1.1531330932162098, 2.0000000000000000, 2.0000000000000000,
6174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6175   { 1.2483404191094898, 2.0000000000000000, 2.0000000000000000,
6176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6177   { 1.3606934909972506, 2.0000000000000000, 2.0000000000000000,
6178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6179   { 1.4957544469027071, 2.0000000000000000, 2.0000000000000000,
6180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6181   { 1.6620777107871287, 2.0000000000000000, 2.0000000000000000,
6182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6183   { 1.8738132387064512, 2.0000000000000000, 2.0000000000000000,
6184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6185   { 2.1570670242247409, 2.0000000000000000, 2.0000000000000000,
6186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6187   { 2.5700735959225507, 2.0000000000000000, 2.0000000000000000,
6188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6189 };
6190 const double toler123 = 2.5000000000000020e-13;
6191 
6192 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
6193 // max(|f - f_GSL|): 1.3322676295501878e-15 at index 18
6194 // max(|f - f_GSL| / |f_GSL|): 7.1401110547148366e-16
6195 // mean(f - f_GSL): 1.0517902338554114e-16
6196 // variance(f - f_GSL): 8.8299945988280290e-32
6197 // stddev(f - f_GSL): 2.9715306828010425e-16
6198 const testcase_hyperg<double>
6199 data124[19] =
6200 {
6201   { 0.68776713859043437, 2.0000000000000000, 2.0000000000000000,
6202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6203   { 0.71280582849489893, 2.0000000000000000, 2.0000000000000000,
6204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6205   { 0.73962983054724896, 2.0000000000000000, 2.0000000000000000,
6206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6207   { 0.76844343025262063, 2.0000000000000000, 2.0000000000000000,
6208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6209   { 0.79948476671182900, 2.0000000000000000, 2.0000000000000000,
6210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6211   { 0.83303347721461252, 2.0000000000000000, 2.0000000000000000,
6212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6213   { 0.86942060391338805, 2.0000000000000000, 2.0000000000000000,
6214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6215   { 0.90904161711581655, 2.0000000000000000, 2.0000000000000000,
6216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6217   { 0.95237381468647742, 2.0000000000000000, 2.0000000000000000,
6218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6219   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6221   { 1.0526413941912305, 2.0000000000000000, 2.0000000000000000,
6222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6223   { 1.1112045278881502, 2.0000000000000000, 2.0000000000000000,
6224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6225   { 1.1768500306393046, 2.0000000000000000, 2.0000000000000000,
6226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6227   { 1.2510971588297890, 2.0000000000000000, 2.0000000000000000,
6228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6229   { 1.3359896747789315, 2.0000000000000000, 2.0000000000000000,
6230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6231   { 1.4343740183432725, 2.0000000000000000, 2.0000000000000000,
6232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6233   { 1.5504011881337365, 2.0000000000000000, 2.0000000000000000,
6234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6235   { 1.6905307012604318, 2.0000000000000000, 2.0000000000000000,
6236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6237   { 1.8658920279264428, 2.0000000000000000, 2.0000000000000000,
6238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6239 };
6240 const double toler124 = 2.5000000000000020e-13;
6241 
6242 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
6243 // max(|f - f_GSL|): 6.6613381477509392e-16 at index 18
6244 // max(|f - f_GSL| / |f_GSL|): 4.1884541027166499e-16
6245 // mean(f - f_GSL): 5.8432790769745078e-17
6246 // variance(f - f_GSL): 2.1656512830141486e-32
6247 // stddev(f - f_GSL): 1.4716151952919448e-16
6248 const testcase_hyperg<double>
6249 data125[19] =
6250 {
6251   { 0.73530262886958797, 2.0000000000000000, 2.0000000000000000,
6252 	  10.000000000000000, -0.90000000000000002, 0.0 },
6253   { 0.75768898977673649, 2.0000000000000000, 2.0000000000000000,
6254 	  10.000000000000000, -0.80000000000000004, 0.0 },
6255   { 0.78143483544640080, 2.0000000000000000, 2.0000000000000000,
6256 	  10.000000000000000, -0.69999999999999996, 0.0 },
6257   { 0.80667428603297209, 2.0000000000000000, 2.0000000000000000,
6258 	  10.000000000000000, -0.59999999999999998, 0.0 },
6259   { 0.83356078772438313, 2.0000000000000000, 2.0000000000000000,
6260 	  10.000000000000000, -0.50000000000000000, 0.0 },
6261   { 0.86227093001346156, 2.0000000000000000, 2.0000000000000000,
6262 	  10.000000000000000, -0.39999999999999991, 0.0 },
6263   { 0.89300925500556971, 2.0000000000000000, 2.0000000000000000,
6264 	  10.000000000000000, -0.29999999999999993, 0.0 },
6265   { 0.92601438873425990, 2.0000000000000000, 2.0000000000000000,
6266 	  10.000000000000000, -0.19999999999999996, 0.0 },
6267   { 0.96156696230910810, 2.0000000000000000, 2.0000000000000000,
6268 	  10.000000000000000, -0.099999999999999978, 0.0 },
6269   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6270 	  10.000000000000000, 0.0000000000000000, 0.0 },
6271   { 1.0417127776179342, 2.0000000000000000, 2.0000000000000000,
6272 	  10.000000000000000, 0.10000000000000009, 0.0 },
6273   { 1.0871896789480930, 2.0000000000000000, 2.0000000000000000,
6274 	  10.000000000000000, 0.20000000000000018, 0.0 },
6275   { 1.1370264514689949, 2.0000000000000000, 2.0000000000000000,
6276 	  10.000000000000000, 0.30000000000000004, 0.0 },
6277   { 1.1919677804049158, 2.0000000000000000, 2.0000000000000000,
6278 	  10.000000000000000, 0.40000000000000013, 0.0 },
6279   { 1.2529628761065934, 2.0000000000000000, 2.0000000000000000,
6280 	  10.000000000000000, 0.50000000000000000, 0.0 },
6281   { 1.3212511796458866, 2.0000000000000000, 2.0000000000000000,
6282 	  10.000000000000000, 0.60000000000000009, 0.0 },
6283   { 1.3985017309668506, 2.0000000000000000, 2.0000000000000000,
6284 	  10.000000000000000, 0.70000000000000018, 0.0 },
6285   { 1.4870567523847895, 2.0000000000000000, 2.0000000000000000,
6286 	  10.000000000000000, 0.80000000000000004, 0.0 },
6287   { 1.5904049523738044, 2.0000000000000000, 2.0000000000000000,
6288 	  10.000000000000000, 0.90000000000000013, 0.0 },
6289 };
6290 const double toler125 = 2.5000000000000020e-13;
6291 
6292 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
6293 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
6294 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
6295 // mean(f - f_GSL): 5.5487040400966458e-12
6296 // variance(f - f_GSL): 5.4399356990620132e-22
6297 // stddev(f - f_GSL): 2.3323669734975269e-11
6298 const testcase_hyperg<double>
6299 data126[19] =
6300 {
6301   { 0.040386107340619273, 2.0000000000000000, 5.0000000000000000,
6302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6303   { 0.052922149401344633, 2.0000000000000000, 5.0000000000000000,
6304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6305   { 0.070429627772374270, 2.0000000000000000, 5.0000000000000000,
6306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6307   { 0.095367431640624986, 2.0000000000000000, 5.0000000000000000,
6308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6309   { 0.13168724279835389, 2.0000000000000000, 5.0000000000000000,
6310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6311   { 0.18593443208187072, 2.0000000000000000, 5.0000000000000000,
6312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6313   { 0.26932907434290460, 2.0000000000000000, 5.0000000000000000,
6314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6315   { 0.40187757201646102, 2.0000000000000000, 5.0000000000000000,
6316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6317   { 0.62092132305915493, 2.0000000000000000, 5.0000000000000000,
6318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6319   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6321   { 1.6935087808430296, 2.0000000000000000, 5.0000000000000000,
6322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6323   { 3.0517578125000036, 2.0000000000000000, 5.0000000000000000,
6324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6325   { 5.9499018266198629, 2.0000000000000000, 5.0000000000000000,
6326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6327   { 12.860082304526767, 2.0000000000000000, 5.0000000000000000,
6328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6329   { 32.000000000000000, 2.0000000000000000, 5.0000000000000000,
6330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6331   { 97.656250000000114, 2.0000000000000000, 5.0000000000000000,
6332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6333   { 411.52263374485722, 2.0000000000000000, 5.0000000000000000,
6334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6335   { 3124.9999999999995, 2.0000000000000000, 5.0000000000000000,
6336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6337   { 100000.00000000055, 2.0000000000000000, 5.0000000000000000,
6338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6339 };
6340 const double toler126 = 2.5000000000000020e-13;
6341 
6342 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
6343 // max(|f - f_GSL|): 6.8212102632969618e-13 at index 18
6344 // max(|f - f_GSL| / |f_GSL|): 1.2402200478721734e-15
6345 // mean(f - f_GSL): 3.8828589466495609e-14
6346 // variance(f - f_GSL): 2.4267524775254640e-26
6347 // stddev(f - f_GSL): 1.5578037352392837e-13
6348 const testcase_hyperg<double>
6349 data127[19] =
6350 {
6351   { 0.21140107887447138, 2.0000000000000000, 5.0000000000000000,
6352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6353   { 0.24005486968449927, 2.0000000000000000, 5.0000000000000000,
6354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6355   { 0.27478119275391810, 2.0000000000000000, 5.0000000000000000,
6356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6357   { 0.31738281250000006, 2.0000000000000000, 5.0000000000000000,
6358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6359   { 0.37037037037037024, 2.0000000000000000, 5.0000000000000000,
6360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6361   { 0.43731778425655982, 2.0000000000000000, 5.0000000000000000,
6362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6363   { 0.52344105598543467, 2.0000000000000000, 5.0000000000000000,
6364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6365   { 0.63657407407407429, 2.0000000000000000, 5.0000000000000000,
6366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6367   { 0.78888054094665638, 2.0000000000000000, 5.0000000000000000,
6368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6369   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6371   { 1.3031550068587108, 2.0000000000000000, 5.0000000000000000,
6372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6373   { 1.7578125000000011, 2.0000000000000000, 5.0000000000000000,
6374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6375   { 2.4781341107871717, 2.0000000000000000, 5.0000000000000000,
6376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6377   { 3.7037037037037073, 2.0000000000000000, 5.0000000000000000,
6378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6379   { 5.9999999999999982, 2.0000000000000000, 5.0000000000000000,
6380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6381   { 10.937500000000005, 2.0000000000000000, 5.0000000000000000,
6382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6383   { 24.074074074074115, 2.0000000000000000, 5.0000000000000000,
6384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6385   { 74.999999999999957, 2.0000000000000000, 5.0000000000000000,
6386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6387   { 550.00000000000068, 2.0000000000000000, 5.0000000000000000,
6388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6389 };
6390 const double toler127 = 2.5000000000000020e-13;
6391 
6392 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
6393 // max(|f - f_GSL|): 4.9737991503207013e-14 at index 18
6394 // max(|f - f_GSL| / |f_GSL|): 1.6580642616864621e-15
6395 // mean(f - f_GSL): 3.1670572597201835e-15
6396 // variance(f - f_GSL): 1.2718576052442072e-28
6397 // stddev(f - f_GSL): 1.1277666448535384e-14
6398 const testcase_hyperg<double>
6399 data128[19] =
6400 {
6401   { 0.33250915203252129, 2.0000000000000000, 5.0000000000000000,
6402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6403   { 0.36566851047721943, 2.0000000000000000, 5.0000000000000000,
6404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6405   { 0.40414812182437959, 2.0000000000000000, 5.0000000000000000,
6406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6407   { 0.44916943268118498, 2.0000000000000000, 5.0000000000000000,
6408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6409   { 0.50233081077479547, 2.0000000000000000, 5.0000000000000000,
6410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6411   { 0.56575808728873322, 2.0000000000000000, 5.0000000000000000,
6412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6413   { 0.64233106844971455, 2.0000000000000000, 5.0000000000000000,
6414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6415   { 0.73603371116919514, 2.0000000000000000, 5.0000000000000000,
6416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6417   { 0.85251256240112439, 2.0000000000000000, 5.0000000000000000,
6418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6419   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6421   { 1.1909065696197674, 2.0000000000000000, 5.0000000000000000,
6422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6423   { 1.4447095285569318, 2.0000000000000000, 5.0000000000000000,
6424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6425   { 1.7935243137840653, 2.0000000000000000, 5.0000000000000000,
6426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6427   { 2.2937035820494467, 2.0000000000000000, 5.0000000000000000,
6428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6429   { 3.0524711083016687, 2.0000000000000000, 5.0000000000000000,
6430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6431   { 4.2976512669354259, 2.0000000000000000, 5.0000000000000000,
6432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6433   { 6.5977107563194739, 2.0000000000000000, 5.0000000000000000,
6434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6435   { 11.793747206577530, 2.0000000000000000, 5.0000000000000000,
6436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6437   { 29.997625937982132, 2.0000000000000000, 5.0000000000000000,
6438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6439 };
6440 const double toler128 = 2.5000000000000020e-13;
6441 
6442 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
6443 // max(|f - f_GSL|): 1.1546319456101628e-14 at index 18
6444 // max(|f - f_GSL| / |f_GSL|): 1.4852319937858925e-15
6445 // mean(f - f_GSL): 8.5896202431525265e-16
6446 // variance(f - f_GSL): 6.6980634833963886e-30
6447 // stddev(f - f_GSL): 2.5880617232586221e-15
6448 const testcase_hyperg<double>
6449 data129[19] =
6450 {
6451   { 0.42108197362250294, 2.0000000000000000, 5.0000000000000000,
6452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6453   { 0.45503172013983040, 2.0000000000000000, 5.0000000000000000,
6454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6455   { 0.49345609813624314, 2.0000000000000000, 5.0000000000000000,
6456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6457   { 0.53720880551221295, 2.0000000000000000, 5.0000000000000000,
6458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6459   { 0.58736431524847466, 2.0000000000000000, 5.0000000000000000,
6460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6461   { 0.64529222467897995, 2.0000000000000000, 5.0000000000000000,
6462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6463   { 0.71276337354393959, 2.0000000000000000, 5.0000000000000000,
6464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6465   { 0.79210466220795306, 2.0000000000000000, 5.0000000000000000,
6466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6467   { 0.88643063455510596, 2.0000000000000000, 5.0000000000000000,
6468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6469   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6471   { 1.1387832139040652, 2.0000000000000000, 5.0000000000000000,
6472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6473   { 1.3114025920844754, 2.0000000000000000, 5.0000000000000000,
6474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6475   { 1.5307655016768162, 2.0000000000000000, 5.0000000000000000,
6476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6477   { 1.8170727950333352, 2.0000000000000000, 5.0000000000000000,
6478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6479   { 2.2037865486700836, 2.0000000000000000, 5.0000000000000000,
6480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6481   { 2.7506766056439380, 2.0000000000000000, 5.0000000000000000,
6482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6483   { 3.5764534935716998, 2.0000000000000000, 5.0000000000000000,
6484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6485   { 4.9587762302155403, 2.0000000000000000, 5.0000000000000000,
6486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6487   { 7.7740847924166907, 2.0000000000000000, 5.0000000000000000,
6488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6489 };
6490 const double toler129 = 2.5000000000000020e-13;
6491 
6492 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
6493 // max(|f - f_GSL|): 4.4408920985006262e-15 at index 18
6494 // max(|f - f_GSL| / |f_GSL|): 1.0721199711322765e-15
6495 // mean(f - f_GSL): 3.5059674461847049e-16
6496 // variance(f - f_GSL): 9.8111051098089205e-31
6497 // stddev(f - f_GSL): 9.9051022760034740e-16
6498 const testcase_hyperg<double>
6499 data130[19] =
6500 {
6501   { 0.48860241312958436, 2.0000000000000000, 5.0000000000000000,
6502 	  10.000000000000000, -0.90000000000000002, 0.0 },
6503   { 0.52193382517068487, 2.0000000000000000, 5.0000000000000000,
6504 	  10.000000000000000, -0.80000000000000004, 0.0 },
6505   { 0.55902375003954219, 2.0000000000000000, 5.0000000000000000,
6506 	  10.000000000000000, -0.69999999999999996, 0.0 },
6507   { 0.60049055150230324, 2.0000000000000000, 5.0000000000000000,
6508 	  10.000000000000000, -0.59999999999999998, 0.0 },
6509   { 0.64709127927203469, 2.0000000000000000, 5.0000000000000000,
6510 	  10.000000000000000, -0.50000000000000000, 0.0 },
6511   { 0.69976233335368998, 2.0000000000000000, 5.0000000000000000,
6512 	  10.000000000000000, -0.39999999999999991, 0.0 },
6513   { 0.75967529501080988, 2.0000000000000000, 5.0000000000000000,
6514 	  10.000000000000000, -0.29999999999999993, 0.0 },
6515   { 0.82831498895254407, 2.0000000000000000, 5.0000000000000000,
6516 	  10.000000000000000, -0.19999999999999996, 0.0 },
6517   { 0.90759090169653933, 2.0000000000000000, 5.0000000000000000,
6518 	  10.000000000000000, -0.099999999999999978, 0.0 },
6519   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6520 	  10.000000000000000, 0.0000000000000000, 0.0 },
6521   { 1.1088712278667465, 2.0000000000000000, 5.0000000000000000,
6522 	  10.000000000000000, 0.10000000000000009, 0.0 },
6523   { 1.2387445478440855, 2.0000000000000000, 5.0000000000000000,
6524 	  10.000000000000000, 0.20000000000000018, 0.0 },
6525   { 1.3959812720437546, 2.0000000000000000, 5.0000000000000000,
6526 	  10.000000000000000, 0.30000000000000004, 0.0 },
6527   { 1.5897930661091169, 2.0000000000000000, 5.0000000000000000,
6528 	  10.000000000000000, 0.40000000000000013, 0.0 },
6529   { 1.8340789380307454, 2.0000000000000000, 5.0000000000000000,
6530 	  10.000000000000000, 0.50000000000000000, 0.0 },
6531   { 2.1509548085970764, 2.0000000000000000, 5.0000000000000000,
6532 	  10.000000000000000, 0.60000000000000009, 0.0 },
6533   { 2.5782406951207526, 2.0000000000000000, 5.0000000000000000,
6534 	  10.000000000000000, 0.70000000000000018, 0.0 },
6535   { 3.1877847194242737, 2.0000000000000000, 5.0000000000000000,
6536 	  10.000000000000000, 0.80000000000000004, 0.0 },
6537   { 4.1421596631676918, 2.0000000000000000, 5.0000000000000000,
6538 	  10.000000000000000, 0.90000000000000013, 0.0 },
6539 };
6540 const double toler130 = 2.5000000000000020e-13;
6541 
6542 // Test data for a=2.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
6543 // max(|f - f_GSL|): 2.2888183593750000e-05 at index 18
6544 // max(|f - f_GSL| / |f_GSL|): 2.4795532226562509e-15
6545 // mean(f - f_GSL): 1.2059140510950354e-06
6546 // variance(f - f_GSL): 2.7568813079896666e-11
6547 // stddev(f - f_GSL): 5.2506012112801583e-06
6548 const testcase_hyperg<double>
6549 data131[19] =
6550 {
6551   { 0.0016310376661280216, 2.0000000000000000, 10.000000000000000,
6552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6553   { 0.0028007538972582421, 2.0000000000000000, 10.000000000000000,
6554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6555   { 0.0049603324681551939, 2.0000000000000000, 10.000000000000000,
6556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6557   { 0.0090949470177292789, 2.0000000000000000, 10.000000000000000,
6558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6559   { 0.017341529915832606, 2.0000000000000000, 10.000000000000000,
6560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6561   { 0.034571613033607791, 2.0000000000000000, 10.000000000000000,
6562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6563   { 0.072538150286405839, 2.0000000000000000, 10.000000000000000,
6564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6565   { 0.16150558288984579, 2.0000000000000000, 10.000000000000000,
6566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6567   { 0.38554328942953142, 2.0000000000000000, 10.000000000000000,
6568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6569   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6571   { 2.8679719907924444, 2.0000000000000000, 10.000000000000000,
6572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6573   { 9.3132257461548065, 2.0000000000000000, 10.000000000000000,
6574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6575   { 35.401331746414378, 2.0000000000000000, 10.000000000000000,
6576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6577   { 165.38171687920246, 2.0000000000000000, 10.000000000000000,
6578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6579   { 1024.0000000000000, 2.0000000000000000, 10.000000000000000,
6580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6581   { 9536.7431640625218, 2.0000000000000000, 10.000000000000000,
6582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6583   { 169350.87808430390, 2.0000000000000000, 10.000000000000000,
6584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6585   { 9765624.9999999963, 2.0000000000000000, 10.000000000000000,
6586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6587   { 10000000000.000111, 2.0000000000000000, 10.000000000000000,
6588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6589 };
6590 const double toler131 = 2.5000000000000020e-13;
6591 
6592 // Test data for a=2.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
6593 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
6594 // max(|f - f_GSL| / |f_GSL|): 1.4958811384436608e-15
6595 // mean(f - f_GSL): 7.8582773037277017e-10
6596 // variance(f - f_GSL): 1.1683981904064149e-17
6597 // stddev(f - f_GSL): 3.4181840067591665e-09
6598 const testcase_hyperg<double>
6599 data132[19] =
6600 {
6601   { 0.071191280690193537, 2.0000000000000000, 10.000000000000000,
6602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6603   { 0.085646504654238384, 2.0000000000000000, 10.000000000000000,
6604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6605   { 0.10478215656371109, 2.0000000000000000, 10.000000000000000,
6606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6607   { 0.13074816337653578, 2.0000000000000000, 10.000000000000000,
6608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6609   { 0.16701141666848118, 2.0000000000000000, 10.000000000000000,
6610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6611   { 0.21939323375313963, 2.0000000000000000, 10.000000000000000,
6612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6613   { 0.29813515331786639, 2.0000000000000000, 10.000000000000000,
6614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6615   { 0.42225974638874397, 2.0000000000000000, 10.000000000000000,
6616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6617   { 0.62942145962174878, 2.0000000000000000, 10.000000000000000,
6618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6619   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6621   { 1.7218685262373197, 2.0000000000000000, 10.000000000000000,
6622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6623   { 3.2855760483514738, 2.0000000000000000, 10.000000000000000,
6624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6625   { 7.1616652508907093, 2.0000000000000000, 10.000000000000000,
6626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6627   { 18.612326808485950, 2.0000000000000000, 10.000000000000000,
6628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6629   { 61.476190476190474, 2.0000000000000000, 10.000000000000000,
6630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6631   { 286.27580915178623, 2.0000000000000000, 10.000000000000000,
6632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6633   { 2274.9441142102414, 2.0000000000000000, 10.000000000000000,
6634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6635   { 47229.761904761865, 2.0000000000000000, 10.000000000000000,
6636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6637   { 9961460.7142858077, 2.0000000000000000, 10.000000000000000,
6638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6639 };
6640 const double toler132 = 2.5000000000000020e-13;
6641 
6642 // Test data for a=2.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
6643 // max(|f - f_GSL|): 8.7311491370201111e-11 at index 18
6644 // max(|f - f_GSL| / |f_GSL|): 1.5843951771650161e-15
6645 // mean(f - f_GSL): 4.6467391338242840e-12
6646 // variance(f - f_GSL): 4.0072766661644994e-22
6647 // stddev(f - f_GSL): 2.0018183399510804e-11
6648 const testcase_hyperg<double>
6649 data133[19] =
6650 {
6651   { 0.14747230019381058, 2.0000000000000000, 10.000000000000000,
6652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6653   { 0.17073600100690609, 2.0000000000000000, 10.000000000000000,
6654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6655   { 0.19982795745135354, 2.0000000000000000, 10.000000000000000,
6656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6657   { 0.23681776864188053, 2.0000000000000000, 10.000000000000000,
6658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6659   { 0.28475624360398011, 2.0000000000000000, 10.000000000000000,
6660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6661   { 0.34827500743063161, 2.0000000000000000, 10.000000000000000,
6662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6663   { 0.43464829159684687, 2.0000000000000000, 10.000000000000000,
6664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6665   { 0.55576053438064787, 2.0000000000000000, 10.000000000000000,
6666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6667   { 0.73195020913445530, 2.0000000000000000, 10.000000000000000,
6668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6669   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6671   { 1.4310223867822929, 2.0000000000000000, 10.000000000000000,
6672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6673   { 2.1742563399057566, 2.0000000000000000, 10.000000000000000,
6674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6675   { 3.5769231236256043, 2.0000000000000000, 10.000000000000000,
6676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6677   { 6.5620441134844469, 2.0000000000000000, 10.000000000000000,
6678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6679   { 14.063492063492063, 2.0000000000000000, 10.000000000000000,
6680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6681   { 38.085937500000036, 2.0000000000000000, 10.000000000000000,
6682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6683   { 150.92973632068330, 2.0000000000000000, 10.000000000000000,
6684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6685   { 1212.3015873015852, 2.0000000000000000, 10.000000000000000,
6686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6687   { 55107.142857143110, 2.0000000000000000, 10.000000000000000,
6688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6689 };
6690 const double toler133 = 2.5000000000000020e-13;
6691 
6692 // Test data for a=2.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
6693 // max(|f - f_GSL|): 1.8189894035458565e-12 at index 18
6694 // max(|f - f_GSL| / |f_GSL|): 1.4848893090170230e-15
6695 // mean(f - f_GSL): 1.0027066896088256e-13
6696 // variance(f - f_GSL): 1.7322804840633983e-25
6697 // stddev(f - f_GSL): 4.1620673757922257e-13
6698 const testcase_hyperg<double>
6699 data134[19] =
6700 {
6701   { 0.21658059714090577, 2.0000000000000000, 10.000000000000000,
6702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6703   { 0.24513539602702861, 2.0000000000000000, 10.000000000000000,
6704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6705   { 0.27967018274845046, 2.0000000000000000, 10.000000000000000,
6706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6707   { 0.32196044921875022, 2.0000000000000000, 10.000000000000000,
6708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6709   { 0.37448559670781911, 2.0000000000000000, 10.000000000000000,
6710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6711   { 0.44078856032208802, 2.0000000000000000, 10.000000000000000,
6712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6713   { 0.52606701446027793, 2.0000000000000000, 10.000000000000000,
6714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6715   { 0.63818158436213956, 2.0000000000000000, 10.000000000000000,
6716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6717   { 0.78944971882612769, 2.0000000000000000, 10.000000000000000,
6718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6719   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6721   { 1.3044251384443430, 2.0000000000000000, 10.000000000000000,
6722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6723   { 1.7659505208333344, 2.0000000000000000, 10.000000000000000,
6724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6725   { 2.5093710953769270, 2.0000000000000000, 10.000000000000000,
6726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6727   { 3.8065843621399202, 2.0000000000000000, 10.000000000000000,
6728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6729   { 6.3333333333333313, 2.0000000000000000, 10.000000000000000,
6730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6731   { 12.109375000000004, 2.0000000000000000, 10.000000000000000,
6732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6733   { 29.115226337448608, 2.0000000000000000, 10.000000000000000,
6734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6735   { 108.33333333333330, 2.0000000000000000, 10.000000000000000,
6736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6737   { 1225.0000000000023, 2.0000000000000000, 10.000000000000000,
6738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6739 };
6740 const double toler134 = 2.5000000000000020e-13;
6741 
6742 // Test data for a=2.0000000000000000, b=10.000000000000000, c=10.000000000000000.
6743 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
6744 // max(|f - f_GSL| / |f_GSL|): 4.2632564145605916e-16
6745 // mean(f - f_GSL): 2.3636063866361887e-15
6746 // variance(f - f_GSL): 9.5093179694074762e-29
6747 // stddev(f - f_GSL): 9.7515731907254209e-15
6748 const testcase_hyperg<double>
6749 data135[19] =
6750 {
6751   { 0.27700831024930750, 2.0000000000000000, 10.000000000000000,
6752 	  10.000000000000000, -0.90000000000000002, 0.0 },
6753   { 0.30864197530864196, 2.0000000000000000, 10.000000000000000,
6754 	  10.000000000000000, -0.80000000000000004, 0.0 },
6755   { 0.34602076124567477, 2.0000000000000000, 10.000000000000000,
6756 	  10.000000000000000, -0.69999999999999996, 0.0 },
6757   { 0.39062500000000000, 2.0000000000000000, 10.000000000000000,
6758 	  10.000000000000000, -0.59999999999999998, 0.0 },
6759   { 0.44444444444444442, 2.0000000000000000, 10.000000000000000,
6760 	  10.000000000000000, -0.50000000000000000, 0.0 },
6761   { 0.51020408163265318, 2.0000000000000000, 10.000000000000000,
6762 	  10.000000000000000, -0.39999999999999991, 0.0 },
6763   { 0.59171597633136108, 2.0000000000000000, 10.000000000000000,
6764 	  10.000000000000000, -0.29999999999999993, 0.0 },
6765   { 0.69444444444444442, 2.0000000000000000, 10.000000000000000,
6766 	  10.000000000000000, -0.19999999999999996, 0.0 },
6767   { 0.82644628099173545, 2.0000000000000000, 10.000000000000000,
6768 	  10.000000000000000, -0.099999999999999978, 0.0 },
6769   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6770 	  10.000000000000000, 0.0000000000000000, 0.0 },
6771   { 1.2345679012345683, 2.0000000000000000, 10.000000000000000,
6772 	  10.000000000000000, 0.10000000000000009, 0.0 },
6773   { 1.5625000000000007, 2.0000000000000000, 10.000000000000000,
6774 	  10.000000000000000, 0.20000000000000018, 0.0 },
6775   { 2.0408163265306127, 2.0000000000000000, 10.000000000000000,
6776 	  10.000000000000000, 0.30000000000000004, 0.0 },
6777   { 2.7777777777777795, 2.0000000000000000, 10.000000000000000,
6778 	  10.000000000000000, 0.40000000000000013, 0.0 },
6779   { 4.0000000000000000, 2.0000000000000000, 10.000000000000000,
6780 	  10.000000000000000, 0.50000000000000000, 0.0 },
6781   { 6.2500000000000027, 2.0000000000000000, 10.000000000000000,
6782 	  10.000000000000000, 0.60000000000000009, 0.0 },
6783   { 11.111111111111125, 2.0000000000000000, 10.000000000000000,
6784 	  10.000000000000000, 0.70000000000000018, 0.0 },
6785   { 25.000000000000007, 2.0000000000000000, 10.000000000000000,
6786 	  10.000000000000000, 0.80000000000000004, 0.0 },
6787   { 100.00000000000023, 2.0000000000000000, 10.000000000000000,
6788 	  10.000000000000000, 0.90000000000000013, 0.0 },
6789 };
6790 const double toler135 = 2.5000000000000020e-13;
6791 
6792 // Test data for a=2.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
6793 // max(|f - f_GSL|): 475136.00000000000 at index 18
6794 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
6795 // mean(f - f_GSL): 25007.185032091642
6796 // variance(f - f_GSL): 11881799540.814577
6797 // stddev(f - f_GSL): 109003.66755671379
6798 const testcase_hyperg<double>
6799 data136[19] =
6800 {
6801   { 2.6602838683283435e-06, 2.0000000000000000, 20.000000000000000,
6802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6803   { 7.8442223930072316e-06, 2.0000000000000000, 20.000000000000000,
6804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6805   { 2.4604898194634598e-05, 2.0000000000000000, 20.000000000000000,
6806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6807   { 8.2718061255302686e-05, 2.0000000000000000, 20.000000000000000,
6808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6809   { 0.00030072865982171723, 2.0000000000000000, 20.000000000000000,
6810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6811   { 0.0011951964277455204, 2.0000000000000000, 20.000000000000000,
6812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6813   { 0.0052617832469731996, 2.0000000000000000, 20.000000000000000,
6814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6815   { 0.026084053304588850, 2.0000000000000000, 20.000000000000000,
6816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6817   { 0.14864362802414346, 2.0000000000000000, 20.000000000000000,
6818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6819   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6821   { 8.2252633399699757, 2.0000000000000000, 20.000000000000000,
6822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6823   { 86.736173798840738, 2.0000000000000000, 20.000000000000000,
6824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6825   { 1253.2542894196868, 2.0000000000000000, 20.000000000000000,
6826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6827   { 27351.112277912678, 2.0000000000000000, 20.000000000000000,
6828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6829   { 1048576.0000000000, 2.0000000000000000, 20.000000000000000,
6830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6831   { 90949470.177293226, 2.0000000000000000, 20.000000000000000,
6832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6833   { 28679719907.924767, 2.0000000000000000, 20.000000000000000,
6834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6835   { 95367431640624.906, 2.0000000000000000, 20.000000000000000,
6836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6837   { 1.0000000000000220e+20, 2.0000000000000000, 20.000000000000000,
6838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6839 };
6840 const double toler136 = 5.0000000000000039e-13;
6841 
6842 // Test data for a=2.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
6843 // max(|f - f_GSL|): 40.000000000000000 at index 18
6844 // max(|f - f_GSL| / |f_GSL|): 1.8712609271522778e-15
6845 // mean(f - f_GSL): 2.1052671749403089
6846 // variance(f - f_GSL): 84.210508462254538
6847 // stddev(f - f_GSL): 9.1766283820504881
6848 const testcase_hyperg<double>
6849 data137[19] =
6850 {
6851   { 0.018828092583720632, 2.0000000000000000, 20.000000000000000,
6852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6853   { 0.023381944060455365, 2.0000000000000000, 20.000000000000000,
6854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6855   { 0.029789623984280887, 2.0000000000000000, 20.000000000000000,
6856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6857   { 0.039191021482500567, 2.0000000000000000, 20.000000000000000,
6858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6859   { 0.053727813036721528, 2.0000000000000000, 20.000000000000000,
6860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6861   { 0.077762010061668857, 2.0000000000000000, 20.000000000000000,
6862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6863   { 0.12110505620123323, 2.0000000000000000, 20.000000000000000,
6864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6865   { 0.20870149809080582, 2.0000000000000000, 20.000000000000000,
6866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6867   { 0.41429234328785763, 2.0000000000000000, 20.000000000000000,
6868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6869   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6871   { 3.1308087404153113, 2.0000000000000000, 20.000000000000000,
6872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6873   { 13.586180626453100, 2.0000000000000000, 20.000000000000000,
6874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6875   { 87.117304082784415, 2.0000000000000000, 20.000000000000000,
6876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6877   { 889.26474381243384, 2.0000000000000000, 20.000000000000000,
6878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6879   { 16231.913312693494, 2.0000000000000000, 20.000000000000000,
6880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6881   { 653537.51168945129, 2.0000000000000000, 20.000000000000000,
6882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6883   { 87756230.793849647, 2.0000000000000000, 20.000000000000000,
6884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6885   { 101493977171.74945, 2.0000000000000000, 20.000000000000000,
6886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6887   { 21375960679557820., 2.0000000000000000, 20.000000000000000,
6888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6889 };
6890 const double toler137 = 2.5000000000000020e-13;
6891 
6892 // Test data for a=2.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
6893 // max(|f - f_GSL|): 0.031250000000000000 at index 18
6894 // max(|f - f_GSL| / |f_GSL|): 1.6379336164121759e-15
6895 // mean(f - f_GSL): 0.0016447556893365942
6896 // variance(f - f_GSL): 5.1397960874034849e-05
6897 // stddev(f - f_GSL): 0.0071692371193896806
6898 const testcase_hyperg<double>
6899 data138[19] =
6900 {
6901   { 0.049200410661854238, 2.0000000000000000, 20.000000000000000,
6902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6903   { 0.059460876757152607, 2.0000000000000000, 20.000000000000000,
6904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6905   { 0.073244762686653225, 2.0000000000000000, 20.000000000000000,
6906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6907   { 0.092334626017932769, 2.0000000000000000, 20.000000000000000,
6908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6909   { 0.11976760350696856, 2.0000000000000000, 20.000000000000000,
6910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6911   { 0.16102414609169405, 2.0000000000000000, 20.000000000000000,
6912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6913   { 0.22670456785796236, 2.0000000000000000, 20.000000000000000,
6914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6915   { 0.33912903252727361, 2.0000000000000000, 20.000000000000000,
6916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6917   { 0.55049794600858049, 2.0000000000000000, 20.000000000000000,
6918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6919   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6921   { 2.1254722872032232, 2.0000000000000000, 20.000000000000000,
6922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6923   { 5.6261213886736314, 2.0000000000000000, 20.000000000000000,
6924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6925   { 20.137315891130996, 2.0000000000000000, 20.000000000000000,
6926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6927   { 108.04381584643900, 2.0000000000000000, 20.000000000000000,
6928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6929   { 992.41692466460245, 2.0000000000000000, 20.000000000000000,
6930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6931   { 19055.363816004465, 2.0000000000000000, 20.000000000000000,
6932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6933   { 1105471.9504312191, 2.0000000000000000, 20.000000000000000,
6934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6935   { 448521363.90608919, 2.0000000000000000, 20.000000000000000,
6936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6937   { 19078917293639.652, 2.0000000000000000, 20.000000000000000,
6938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6939 };
6940 const double toler138 = 2.5000000000000020e-13;
6941 
6942 // Test data for a=2.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
6943 // max(|f - f_GSL|): 8.3923339843750000e-05 at index 18
6944 // max(|f - f_GSL| / |f_GSL|): 1.8221514326726564e-15
6945 // mean(f - f_GSL): 4.4172143495227617e-06
6946 // variance(f - f_GSL): 3.7068906120670492e-10
6947 // stddev(f - f_GSL): 1.9253287023433297e-05
6948 const testcase_hyperg<double>
6949 data139[19] =
6950 {
6951   { 0.083753547015334884, 2.0000000000000000, 20.000000000000000,
6952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6953   { 0.099238444687035743, 2.0000000000000000, 20.000000000000000,
6954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6955   { 0.11938294012867748, 2.0000000000000000, 20.000000000000000,
6956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6957   { 0.14622683905023329, 2.0000000000000000, 20.000000000000000,
6958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6959   { 0.18303556733713028, 2.0000000000000000, 20.000000000000000,
6960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6961   { 0.23527764069382415, 2.0000000000000000, 20.000000000000000,
6962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6963   { 0.31261681740827069, 2.0000000000000000, 20.000000000000000,
6964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6965   { 0.43327581880538862, 2.0000000000000000, 20.000000000000000,
6966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6967   { 0.63445840637296680, 2.0000000000000000, 20.000000000000000,
6968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6969   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6971   { 1.7438842395813297, 2.0000000000000000, 20.000000000000000,
6972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6973   { 3.5070840938209331, 2.0000000000000000, 20.000000000000000,
6974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6975   { 8.6573372006089713, 2.0000000000000000, 20.000000000000000,
6976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6977   { 28.779342118408998, 2.0000000000000000, 20.000000000000000,
6978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6979   { 147.50178613955714, 2.0000000000000000, 20.000000000000000,
6980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6981   { 1427.1686016136398, 2.0000000000000000, 20.000000000000000,
6982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6983   { 36780.643714655955, 2.0000000000000000, 20.000000000000000,
6984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6985   { 5313869.6058585485, 2.0000000000000000, 20.000000000000000,
6986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6987   { 46057280607.383286, 2.0000000000000000, 20.000000000000000,
6988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6989 };
6990 const double toler139 = 2.5000000000000020e-13;
6991 
6992 // Test data for a=2.0000000000000000, b=20.000000000000000, c=10.000000000000000.
6993 // max(|f - f_GSL|): 5.0663948059082031e-07 at index 18
6994 // max(|f - f_GSL| / |f_GSL|): 1.9925479281069681e-15
6995 // mean(f - f_GSL): 2.6669880993704522e-08
6996 // variance(f - f_GSL): 1.3509399735218820e-14
6997 // stddev(f - f_GSL): 1.1622994336752823e-07
6998 const testcase_hyperg<double>
6999 data140[19] =
7000 {
7001   { 0.11920045035073676, 2.0000000000000000, 20.000000000000000,
7002 	  10.000000000000000, -0.90000000000000002, 0.0 },
7003   { 0.13907946814302777, 2.0000000000000000, 20.000000000000000,
7004 	  10.000000000000000, -0.80000000000000004, 0.0 },
7005   { 0.16431439792559696, 2.0000000000000000, 20.000000000000000,
7006 	  10.000000000000000, -0.69999999999999996, 0.0 },
7007   { 0.19698796016986989, 2.0000000000000000, 20.000000000000000,
7008 	  10.000000000000000, -0.59999999999999998, 0.0 },
7009   { 0.24028510928790547, 2.0000000000000000, 20.000000000000000,
7010 	  10.000000000000000, -0.50000000000000000, 0.0 },
7011   { 0.29926031296483130, 2.0000000000000000, 20.000000000000000,
7012 	  10.000000000000000, -0.39999999999999991, 0.0 },
7013   { 0.38229327814229175, 2.0000000000000000, 20.000000000000000,
7014 	  10.000000000000000, -0.29999999999999993, 0.0 },
7015   { 0.50402047283093132, 2.0000000000000000, 20.000000000000000,
7016 	  10.000000000000000, -0.19999999999999996, 0.0 },
7017   { 0.69167261179586526, 2.0000000000000000, 20.000000000000000,
7018 	  10.000000000000000, -0.099999999999999978, 0.0 },
7019   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
7020 	  10.000000000000000, 0.0000000000000000, 0.0 },
7021   { 1.5503152253394308, 2.0000000000000000, 20.000000000000000,
7022 	  10.000000000000000, 0.10000000000000009, 0.0 },
7023   { 2.6469548193635828, 2.0000000000000000, 20.000000000000000,
7024 	  10.000000000000000, 0.20000000000000018, 0.0 },
7025   { 5.1882631330566813, 2.0000000000000000, 20.000000000000000,
7026 	  10.000000000000000, 0.30000000000000004, 0.0 },
7027   { 12.476792759124546, 2.0000000000000000, 20.000000000000000,
7028 	  10.000000000000000, 0.40000000000000013, 0.0 },
7029   { 41.026391565091259, 2.0000000000000000, 20.000000000000000,
7030 	  10.000000000000000, 0.50000000000000000, 0.0 },
7031   { 220.92584715988204, 2.0000000000000000, 20.000000000000000,
7032 	  10.000000000000000, 0.60000000000000009, 0.0 },
7033   { 2677.0834450236389, 2.0000000000000000, 20.000000000000000,
7034 	  10.000000000000000, 0.70000000000000018, 0.0 },
7035   { 141774.31260689779, 2.0000000000000000, 20.000000000000000,
7036 	  10.000000000000000, 0.80000000000000004, 0.0 },
7037   { 254267148.83197621, 2.0000000000000000, 20.000000000000000,
7038 	  10.000000000000000, 0.90000000000000013, 0.0 },
7039 };
7040 const double toler140 = 2.5000000000000020e-13;
7041 
7042 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
7043 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7044 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7045 // mean(f - f_GSL): 0.0000000000000000
7046 // variance(f - f_GSL): 0.0000000000000000
7047 // stddev(f - f_GSL): 0.0000000000000000
7048 const testcase_hyperg<double>
7049 data141[19] =
7050 {
7051   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7053   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7055   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7057   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7059   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7061   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7063   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7065   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7067   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7069   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7071   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7073   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7075   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7077   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7079   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7081   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7083   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7085   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7087   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7089 };
7090 const double toler141 = 2.5000000000000020e-13;
7091 
7092 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
7093 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7094 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7095 // mean(f - f_GSL): 0.0000000000000000
7096 // variance(f - f_GSL): 0.0000000000000000
7097 // stddev(f - f_GSL): 0.0000000000000000
7098 const testcase_hyperg<double>
7099 data142[19] =
7100 {
7101   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7103   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7105   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7107   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7109   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7111   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7113   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7115   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7117   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7119   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7121   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7123   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7125   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7127   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7129   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7131   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7133   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7135   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7137   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7139 };
7140 const double toler142 = 2.5000000000000020e-13;
7141 
7142 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
7143 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7144 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7145 // mean(f - f_GSL): 0.0000000000000000
7146 // variance(f - f_GSL): 0.0000000000000000
7147 // stddev(f - f_GSL): 0.0000000000000000
7148 const testcase_hyperg<double>
7149 data143[19] =
7150 {
7151   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7153   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7155   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7157   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7159   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7161   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7163   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7165   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7167   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7169   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7171   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7173   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7175   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7177   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7179   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7181   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7183   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7185   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7187   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7189 };
7190 const double toler143 = 2.5000000000000020e-13;
7191 
7192 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
7193 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7194 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7195 // mean(f - f_GSL): 0.0000000000000000
7196 // variance(f - f_GSL): 0.0000000000000000
7197 // stddev(f - f_GSL): 0.0000000000000000
7198 const testcase_hyperg<double>
7199 data144[19] =
7200 {
7201   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7203   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7205   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7207   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7209   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7211   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7213   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7215   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7217   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7219   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7221   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7223   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7225   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7227   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7229   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7231   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7233   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7235   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7237   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7239 };
7240 const double toler144 = 2.5000000000000020e-13;
7241 
7242 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
7243 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7244 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7245 // mean(f - f_GSL): 0.0000000000000000
7246 // variance(f - f_GSL): 0.0000000000000000
7247 // stddev(f - f_GSL): 0.0000000000000000
7248 const testcase_hyperg<double>
7249 data145[19] =
7250 {
7251   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7252 	  10.000000000000000, -0.90000000000000002, 0.0 },
7253   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7254 	  10.000000000000000, -0.80000000000000004, 0.0 },
7255   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7256 	  10.000000000000000, -0.69999999999999996, 0.0 },
7257   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7258 	  10.000000000000000, -0.59999999999999998, 0.0 },
7259   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7260 	  10.000000000000000, -0.50000000000000000, 0.0 },
7261   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7262 	  10.000000000000000, -0.39999999999999991, 0.0 },
7263   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7264 	  10.000000000000000, -0.29999999999999993, 0.0 },
7265   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7266 	  10.000000000000000, -0.19999999999999996, 0.0 },
7267   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7268 	  10.000000000000000, -0.099999999999999978, 0.0 },
7269   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7270 	  10.000000000000000, 0.0000000000000000, 0.0 },
7271   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7272 	  10.000000000000000, 0.10000000000000009, 0.0 },
7273   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7274 	  10.000000000000000, 0.20000000000000018, 0.0 },
7275   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7276 	  10.000000000000000, 0.30000000000000004, 0.0 },
7277   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7278 	  10.000000000000000, 0.40000000000000013, 0.0 },
7279   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7280 	  10.000000000000000, 0.50000000000000000, 0.0 },
7281   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7282 	  10.000000000000000, 0.60000000000000009, 0.0 },
7283   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7284 	  10.000000000000000, 0.70000000000000018, 0.0 },
7285   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7286 	  10.000000000000000, 0.80000000000000004, 0.0 },
7287   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7288 	  10.000000000000000, 0.90000000000000013, 0.0 },
7289 };
7290 const double toler145 = 2.5000000000000020e-13;
7291 
7292 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
7293 // max(|f - f_GSL|): 4.5474735088646412e-13 at index 18
7294 // max(|f - f_GSL| / |f_GSL|): 1.5124797514980592e-15
7295 // mean(f - f_GSL): 2.5336458077761468e-14
7296 // variance(f - f_GSL): 1.0813211674051158e-26
7297 // stddev(f - f_GSL): 1.0398659372270619e-13
7298 const testcase_hyperg<double>
7299 data146[19] =
7300 {
7301   { 0.52275983209457544, 5.0000000000000000, 0.50000000000000000,
7302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7303   { 0.54700336898143009, 5.0000000000000000, 0.50000000000000000,
7304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7305   { 0.57468955512602038, 5.0000000000000000, 0.50000000000000000,
7306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7307   { 0.60665490543315048, 5.0000000000000000, 0.50000000000000000,
7308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7309   { 0.64403057859056190, 5.0000000000000000, 0.50000000000000000,
7310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7311   { 0.68838183648623719, 5.0000000000000000, 0.50000000000000000,
7312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7313   { 0.74193265039311118, 5.0000000000000000, 0.50000000000000000,
7314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7315   { 0.80794095908995300, 5.0000000000000000, 0.50000000000000000,
7316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7317   { 0.89135275749639320, 5.0000000000000000, 0.50000000000000000,
7318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7319   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7321   { 1.1469266219310688, 5.0000000000000000, 0.50000000000000000,
7322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7323   { 1.3552340708357493, 5.0000000000000000, 0.50000000000000000,
7324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7325   { 1.6690840478838305, 5.0000000000000000, 0.50000000000000000,
7326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7327   { 2.1815415453174500, 5.0000000000000000, 0.50000000000000000,
7328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7329   { 3.1156892546032235, 5.0000000000000000, 0.50000000000000000,
7330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7331   { 5.1109077417760416, 5.0000000000000000, 0.50000000000000000,
7332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7333   { 10.560352936466318, 5.0000000000000000, 0.50000000000000000,
7334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7335   { 33.541019662496815, 5.0000000000000000, 0.50000000000000000,
7336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7337   { 300.66343065819723, 5.0000000000000000, 0.50000000000000000,
7338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7339 };
7340 const double toler146 = 2.5000000000000020e-13;
7341 
7342 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
7343 // max(|f - f_GSL|): 8.8817841970012523e-15 at index 18
7344 // max(|f - f_GSL| / |f_GSL|): 1.3217255411112292e-15
7345 // mean(f - f_GSL): 6.8950693108299193e-16
7346 // variance(f - f_GSL): 3.9356627445430313e-30
7347 // stddev(f - f_GSL): 1.9838504844224102e-15
7348 const testcase_hyperg<double>
7349 data147[19] =
7350 {
7351   { 0.68252041951139286, 5.0000000000000000, 0.50000000000000000,
7352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7353   { 0.70394732624993395, 5.0000000000000000, 0.50000000000000000,
7354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7355   { 0.72748884971552052, 5.0000000000000000, 0.50000000000000000,
7356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7357   { 0.75351147371199667, 5.0000000000000000, 0.50000000000000000,
7358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7359   { 0.78247589005573737, 5.0000000000000000, 0.50000000000000000,
7360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7361   { 0.81497017420249795, 5.0000000000000000, 0.50000000000000000,
7362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7363   { 0.85175826875009608, 5.0000000000000000, 0.50000000000000000,
7364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7365   { 0.89385278481745867, 5.0000000000000000, 0.50000000000000000,
7366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7367   { 0.94262778709507411, 5.0000000000000000, 0.50000000000000000,
7368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7369   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7371   { 1.0687327277420910, 5.0000000000000000, 0.50000000000000000,
7372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7373   { 1.1529725508983291, 5.0000000000000000, 0.50000000000000000,
7374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7375   { 1.2592587134058799, 5.0000000000000000, 0.50000000000000000,
7376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7377   { 1.3985773194637896, 5.0000000000000000, 0.50000000000000000,
7378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7379   { 1.5909902576697317, 5.0000000000000000, 0.50000000000000000,
7380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7381   { 1.8776023607249752, 5.0000000000000000, 0.50000000000000000,
7382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7383   { 2.3582499003694664, 5.0000000000000000, 0.50000000000000000,
7384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7385   { 3.3541019662496838, 5.0000000000000000, 0.50000000000000000,
7386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7387   { 6.7198400278578028, 5.0000000000000000, 0.50000000000000000,
7388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7389 };
7390 const double toler147 = 2.5000000000000020e-13;
7391 
7392 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
7393 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
7394 // max(|f - f_GSL| / |f_GSL|): 1.2228264607471081e-15
7395 // mean(f - f_GSL): 2.2788788400200583e-16
7396 // variance(f - f_GSL): 3.4817209315093131e-31
7397 // stddev(f - f_GSL): 5.9006109272763554e-16
7398 const testcase_hyperg<double>
7399 data148[19] =
7400 {
7401   { 0.75755211927082600, 5.0000000000000000, 0.50000000000000000,
7402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7403   { 0.77603550233010965, 5.0000000000000000, 0.50000000000000000,
7404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7405   { 0.79596241913438504, 5.0000000000000000, 0.50000000000000000,
7406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7407   { 0.81753360792105212, 5.0000000000000000, 0.50000000000000000,
7408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7409   { 0.84099165409805532, 5.0000000000000000, 0.50000000000000000,
7410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7411   { 0.86663303852180906, 5.0000000000000000, 0.50000000000000000,
7412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7413   { 0.89482475828629915, 5.0000000000000000, 0.50000000000000000,
7414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7415   { 0.92602774279590350, 5.0000000000000000, 0.50000000000000000,
7416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7417   { 0.96083064727087386, 5.0000000000000000, 0.50000000000000000,
7418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7419   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7421   { 1.0445570841313008, 5.0000000000000000, 0.50000000000000000,
7422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7423   { 1.0959004638926033, 5.0000000000000000, 0.50000000000000000,
7424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7425   { 1.1560106261370562, 5.0000000000000000, 0.50000000000000000,
7426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7427   { 1.2278121770678148, 5.0000000000000000, 0.50000000000000000,
7428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7429   { 1.3158640214709998, 5.0000000000000000, 0.50000000000000000,
7430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7431   { 1.4278095344155000, 5.0000000000000000, 0.50000000000000000,
7432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7433   { 1.5778700502946617, 5.0000000000000000, 0.50000000000000000,
7434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7435   { 1.7972173289196469, 5.0000000000000000, 0.50000000000000000,
7436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7437   { 2.1789970569269732, 5.0000000000000000, 0.50000000000000000,
7438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7439 };
7440 const double toler148 = 2.5000000000000020e-13;
7441 
7442 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
7443 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
7444 // max(|f - f_GSL| / |f_GSL|): 5.6109827053892650e-16
7445 // mean(f - f_GSL): 7.5962628000668607e-17
7446 // variance(f - f_GSL): 3.8685788127881258e-32
7447 // stddev(f - f_GSL): 1.9668703090921186e-16
7448 const testcase_hyperg<double>
7449 data149[19] =
7450 {
7451   { 0.80270093579329460, 5.0000000000000000, 0.50000000000000000,
7452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7453   { 0.81884974572462765, 5.0000000000000000, 0.50000000000000000,
7454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7455   { 0.83605266330015260, 5.0000000000000000, 0.50000000000000000,
7456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7457   { 0.85443340762796027, 5.0000000000000000, 0.50000000000000000,
7458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7459   { 0.87413762182790711, 5.0000000000000000, 0.50000000000000000,
7460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7461   { 0.89533826626907298, 5.0000000000000000, 0.50000000000000000,
7462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7463   { 0.91824276674115313, 5.0000000000000000, 0.50000000000000000,
7464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7465   { 0.94310265050720576, 5.0000000000000000, 0.50000000000000000,
7466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7467   { 0.97022678857609712, 5.0000000000000000, 0.50000000000000000,
7468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7469   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7471   { 1.0329098673199812, 5.0000000000000000, 0.50000000000000000,
7472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7473   { 1.0695865684573389, 5.0000000000000000, 0.50000000000000000,
7474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7475   { 1.1108642103944570, 5.0000000000000000, 0.50000000000000000,
7476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7477   { 1.1578795055970506, 5.0000000000000000, 0.50000000000000000,
7478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7479   { 1.2122394794169442, 5.0000000000000000, 0.50000000000000000,
7480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7481   { 1.2763274721556934, 5.0000000000000000, 0.50000000000000000,
7482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7483   { 1.3539179650251021, 5.0000000000000000, 0.50000000000000000,
7484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7485   { 1.4515986118197148, 5.0000000000000000, 0.50000000000000000,
7486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7487   { 1.5829284571614224, 5.0000000000000000, 0.50000000000000000,
7488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7489 };
7490 const double toler149 = 2.5000000000000020e-13;
7491 
7492 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
7493 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
7494 // max(|f - f_GSL| / |f_GSL|): 3.2099086385883890e-16
7495 // mean(f - f_GSL): 5.8432790769745078e-17
7496 // variance(f - f_GSL): 8.7218722159852367e-33
7497 // stddev(f - f_GSL): 9.3390964316604188e-17
7498 const testcase_hyperg<double>
7499 data150[19] =
7500 {
7501   { 0.83322694172301981, 5.0000000000000000, 0.50000000000000000,
7502 	  10.000000000000000, -0.90000000000000002, 0.0 },
7503   { 0.84753931604765675, 5.0000000000000000, 0.50000000000000000,
7504 	  10.000000000000000, -0.80000000000000004, 0.0 },
7505   { 0.86265784532195022, 5.0000000000000000, 0.50000000000000000,
7506 	  10.000000000000000, -0.69999999999999996, 0.0 },
7507   { 0.87866479300707090, 5.0000000000000000, 0.50000000000000000,
7508 	  10.000000000000000, -0.59999999999999998, 0.0 },
7509   { 0.89565516540263501, 5.0000000000000000, 0.50000000000000000,
7510 	  10.000000000000000, -0.50000000000000000, 0.0 },
7511   { 0.91373946207610557, 5.0000000000000000, 0.50000000000000000,
7512 	  10.000000000000000, -0.39999999999999991, 0.0 },
7513   { 0.93304721345881914, 5.0000000000000000, 0.50000000000000000,
7514 	  10.000000000000000, -0.29999999999999993, 0.0 },
7515   { 0.95373159512905148, 5.0000000000000000, 0.50000000000000000,
7516 	  10.000000000000000, -0.19999999999999996, 0.0 },
7517   { 0.97597554238828121, 5.0000000000000000, 0.50000000000000000,
7518 	  10.000000000000000, -0.099999999999999978, 0.0 },
7519   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7520 	  10.000000000000000, 0.0000000000000000, 0.0 },
7521   { 1.0260752851887982, 5.0000000000000000, 0.50000000000000000,
7522 	  10.000000000000000, 0.10000000000000009, 0.0 },
7523   { 1.0545371197996178, 5.0000000000000000, 0.50000000000000000,
7524 	  10.000000000000000, 0.20000000000000018, 0.0 },
7525   { 1.0858099017045830, 5.0000000000000000, 0.50000000000000000,
7526 	  10.000000000000000, 0.30000000000000004, 0.0 },
7527   { 1.1204416568688709, 5.0000000000000000, 0.50000000000000000,
7528 	  10.000000000000000, 0.40000000000000013, 0.0 },
7529   { 1.1591587835964847, 5.0000000000000000, 0.50000000000000000,
7530 	  10.000000000000000, 0.50000000000000000, 0.0 },
7531   { 1.2029564720303347, 5.0000000000000000, 0.50000000000000000,
7532 	  10.000000000000000, 0.60000000000000009, 0.0 },
7533   { 1.2532588722007874, 5.0000000000000000, 0.50000000000000000,
7534 	  10.000000000000000, 0.70000000000000018, 0.0 },
7535   { 1.3122319926925459, 5.0000000000000000, 0.50000000000000000,
7536 	  10.000000000000000, 0.80000000000000004, 0.0 },
7537   { 1.3834948587364102, 5.0000000000000000, 0.50000000000000000,
7538 	  10.000000000000000, 0.90000000000000013, 0.0 },
7539 };
7540 const double toler150 = 2.5000000000000020e-13;
7541 
7542 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
7543 // max(|f - f_GSL|): 4.0927261579781771e-12 at index 18
7544 // max(|f - f_GSL| / |f_GSL|): 1.4735287697491136e-15
7545 // mean(f - f_GSL): 2.2385017815981644e-13
7546 // variance(f - f_GSL): 8.7776489381819171e-25
7547 // stddev(f - f_GSL): 9.3689107895111895e-13
7548 const testcase_hyperg<double>
7549 data151[19] =
7550 {
7551   { 0.25646288779245086, 5.0000000000000000, 1.0000000000000000,
7552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7553   { 0.28273129096174376, 5.0000000000000000, 1.0000000000000000,
7554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7555   { 0.31438201170962982, 5.0000000000000000, 1.0000000000000000,
7556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7557   { 0.35308837890625017, 5.0000000000000000, 1.0000000000000000,
7558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7559   { 0.40123456790123452, 5.0000000000000000, 1.0000000000000000,
7560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7561   { 0.46230737192836352, 5.0000000000000000, 1.0000000000000000,
7562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7563   { 0.54156016946185348, 5.0000000000000000, 1.0000000000000000,
7564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7565   { 0.64718364197530875, 5.0000000000000000, 1.0000000000000000,
7566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7567   { 0.79246636158732342, 5.0000000000000000, 1.0000000000000000,
7568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7569   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7571   { 1.3103947568968148, 5.0000000000000000, 1.0000000000000000,
7572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7573   { 1.8017578125000016, 5.0000000000000000, 1.0000000000000000,
7574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7575   { 2.6374427321949185, 5.0000000000000000, 1.0000000000000000,
7576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7577   { 4.1975308641975335, 5.0000000000000000, 1.0000000000000000,
7578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7579   { 7.4999999999999964, 5.0000000000000000, 1.0000000000000000,
7580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7581   { 15.859375000000012, 5.0000000000000000, 1.0000000000000000,
7582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7583   { 43.734567901234662, 5.0000000000000000, 1.0000000000000000,
7584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7585   { 194.99999999999994, 5.0000000000000000, 1.0000000000000000,
7586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7587   { 2777.5000000000095, 5.0000000000000000, 1.0000000000000000,
7588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7589 };
7590 const double toler151 = 2.5000000000000020e-13;
7591 
7592 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
7593 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
7594 // max(|f - f_GSL| / |f_GSL|): 1.3117712044801870e-15
7595 // mean(f - f_GSL): 2.6879083754082736e-15
7596 // variance(f - f_GSL): 9.3567700516642700e-29
7597 // stddev(f - f_GSL): 9.6730398798228218e-15
7598 const testcase_hyperg<double>
7599 data152[19] =
7600 {
7601   { 0.46398891966759009, 5.0000000000000000, 1.0000000000000000,
7602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7603   { 0.49382716049382724, 5.0000000000000000, 1.0000000000000000,
7604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7605   { 0.52768166089965407, 5.0000000000000000, 1.0000000000000000,
7606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7607   { 0.56640625000000000, 5.0000000000000000, 1.0000000000000000,
7608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7609   { 0.61111111111111094, 5.0000000000000000, 1.0000000000000000,
7610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7611   { 0.66326530612244916, 5.0000000000000000, 1.0000000000000000,
7612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7613   { 0.72485207100591709, 5.0000000000000000, 1.0000000000000000,
7614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7615   { 0.79861111111111094, 5.0000000000000000, 1.0000000000000000,
7616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7617   { 0.88842975206611552, 5.0000000000000000, 1.0000000000000000,
7618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7619   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7621   { 1.1419753086419753, 5.0000000000000000, 1.0000000000000000,
7622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7623   { 1.3281250000000000, 5.0000000000000000, 1.0000000000000000,
7624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7625   { 1.5816326530612239, 5.0000000000000000, 1.0000000000000000,
7626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7627   { 1.9444444444444458, 5.0000000000000000, 1.0000000000000000,
7628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7629   { 2.5000000000000000, 5.0000000000000000, 1.0000000000000000,
7630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7631   { 3.4374999999999996, 5.0000000000000000, 1.0000000000000000,
7632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7633   { 5.2777777777777786, 5.0000000000000000, 1.0000000000000000,
7634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7635   { 9.9999999999999947, 5.0000000000000000, 1.0000000000000000,
7636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7637   { 32.499999999999950, 5.0000000000000000, 1.0000000000000000,
7638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7639 };
7640 const double toler152 = 2.5000000000000020e-13;
7641 
7642 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
7643 // max(|f - f_GSL|): 6.2172489379008766e-15 at index 18
7644 // max(|f - f_GSL| / |f_GSL|): 1.2433022037532449e-15
7645 // mean(f - f_GSL): 4.9083544246585873e-16
7646 // variance(f - f_GSL): 1.9229766015225486e-30
7647 // stddev(f - f_GSL): 1.3867143186404864e-15
7648 const testcase_hyperg<double>
7649 data153[19] =
7650 {
7651   { 0.57476744883397490, 5.0000000000000000, 1.0000000000000000,
7652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7653   { 0.60302731682513966, 5.0000000000000000, 1.0000000000000000,
7654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7655   { 0.63425708719096374, 5.0000000000000000, 1.0000000000000000,
7656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7657   { 0.66895764182970430, 5.0000000000000000, 1.0000000000000000,
7658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7659   { 0.70775063063963473, 5.0000000000000000, 1.0000000000000000,
7660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7661   { 0.75141762103495946, 5.0000000000000000, 1.0000000000000000,
7662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7663   { 0.80095569442603320, 5.0000000000000000, 1.0000000000000000,
7664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7665   { 0.85765823887436754, 5.0000000000000000, 1.0000000000000000,
7666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7667   { 0.92323549576335540, 5.0000000000000000, 1.0000000000000000,
7668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7669   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7671   { 1.0911622464839472, 5.0000000000000000, 1.0000000000000000,
7672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7673   { 1.2013226178607672, 5.0000000000000000, 1.0000000000000000,
7674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7675   { 1.3373332072682687, 5.0000000000000000, 1.0000000000000000,
7676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7677   { 1.5099074378209718, 5.0000000000000000, 1.0000000000000000,
7678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7679   { 1.7368822229245819, 5.0000000000000000, 1.0000000000000000,
7680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7681   { 2.0505871832661429, 5.0000000000000000, 1.0000000000000000,
7682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7683   { 2.5172389775867976, 5.0000000000000000, 1.0000000000000000,
7684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7685   { 3.3015631983556144, 5.0000000000000000, 1.0000000000000000,
7686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7687   { 5.0005935155044563, 5.0000000000000000, 1.0000000000000000,
7688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7689 };
7690 const double toler153 = 2.5000000000000020e-13;
7691 
7692 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
7693 // max(|f - f_GSL|): 3.1086244689504383e-15 at index 18
7694 // max(|f - f_GSL| / |f_GSL|): 1.1989697058841885e-15
7695 // mean(f - f_GSL): 2.4541772123292936e-16
7696 // variance(f - f_GSL): 4.8074415038063715e-31
7697 // stddev(f - f_GSL): 6.9335715932024320e-16
7698 const testcase_hyperg<double>
7699 data154[19] =
7700 {
7701   { 0.64582752605387983, 5.0000000000000000, 1.0000000000000000,
7702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7703   { 0.67184161997264191, 5.0000000000000000, 1.0000000000000000,
7704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7705   { 0.70012779922368040, 5.0000000000000000, 1.0000000000000000,
7706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7707   { 0.73100784656910278, 5.0000000000000000, 1.0000000000000000,
7708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7709   { 0.76486919089091066, 5.0000000000000000, 1.0000000000000000,
7710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7711   { 0.80218301124334590, 5.0000000000000000, 1.0000000000000000,
7712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7713   { 0.84352883533234391, 5.0000000000000000, 1.0000000000000000,
7714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7715   { 0.88962858902212572, 5.0000000000000000, 1.0000000000000000,
7716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7717   { 0.94139473468584123, 5.0000000000000000, 1.0000000000000000,
7718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7719   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7721   { 1.0669812691939897, 5.0000000000000000, 1.0000000000000000,
7722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7723   { 1.1443996012177726, 5.0000000000000000, 1.0000000000000000,
7724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7725   { 1.2350966976721314, 5.0000000000000000, 1.0000000000000000,
7726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7727   { 1.3431264370409088, 5.0000000000000000, 1.0000000000000000,
7728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7729   { 1.4745266814162399, 5.0000000000000000, 1.0000000000000000,
7730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7731   { 1.6388137104840066, 5.0000000000000000, 1.0000000000000000,
7732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7733   { 1.8522074849776522, 5.0000000000000000, 1.0000000000000000,
7734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7735   { 2.1458016978417458, 5.0000000000000000, 1.0000000000000000,
7736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7737   { 2.5927464669826348, 5.0000000000000000, 1.0000000000000000,
7738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7739 };
7740 const double toler154 = 2.5000000000000020e-13;
7741 
7742 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
7743 // max(|f - f_GSL|): 1.3322676295501878e-15 at index 18
7744 // max(|f - f_GSL| / |f_GSL|): 6.8275390424723874e-16
7745 // mean(f - f_GSL): 1.0517902338554114e-16
7746 // variance(f - f_GSL): 8.8299945988280290e-32
7747 // stddev(f - f_GSL): 2.9715306828010425e-16
7748 const testcase_hyperg<double>
7749 data155[19] =
7750 {
7751   { 0.69583236336670584, 5.0000000000000000, 1.0000000000000000,
7752 	  10.000000000000000, -0.90000000000000002, 0.0 },
7753   { 0.71968920666899716, 5.0000000000000000, 1.0000000000000000,
7754 	  10.000000000000000, -0.80000000000000004, 0.0 },
7755   { 0.74533885416044232, 5.0000000000000000, 1.0000000000000000,
7756 	  10.000000000000000, -0.69999999999999996, 0.0 },
7757   { 0.77300145361503070, 5.0000000000000000, 1.0000000000000000,
7758 	  10.000000000000000, -0.59999999999999998, 0.0 },
7759   { 0.80293630810919447, 5.0000000000000000, 1.0000000000000000,
7760 	  10.000000000000000, -0.50000000000000000, 0.0 },
7761   { 0.83545132638592057, 5.0000000000000000, 1.0000000000000000,
7762 	  10.000000000000000, -0.39999999999999991, 0.0 },
7763   { 0.87091544744412497, 5.0000000000000000, 1.0000000000000000,
7764 	  10.000000000000000, -0.29999999999999993, 0.0 },
7765   { 0.90977522877919847, 5.0000000000000000, 1.0000000000000000,
7766 	  10.000000000000000, -0.19999999999999996, 0.0 },
7767   { 0.95257738192069130, 5.0000000000000000, 1.0000000000000000,
7768 	  10.000000000000000, -0.099999999999999978, 0.0 },
7769   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7770 	  10.000000000000000, 0.0000000000000000, 0.0 },
7771   { 1.0528968282789379, 5.0000000000000000, 1.0000000000000000,
7772 	  10.000000000000000, 0.10000000000000009, 0.0 },
7773   { 1.1123617169062123, 5.0000000000000000, 1.0000000000000000,
7774 	  10.000000000000000, 0.20000000000000018, 0.0 },
7775   { 1.1798254572896132, 5.0000000000000000, 1.0000000000000000,
7776 	  10.000000000000000, 0.30000000000000004, 0.0 },
7777   { 1.2572069000522701, 5.0000000000000000, 1.0000000000000000,
7778 	  10.000000000000000, 0.40000000000000013, 0.0 },
7779   { 1.3471600884974377, 5.0000000000000000, 1.0000000000000000,
7780 	  10.000000000000000, 0.50000000000000000, 0.0 },
7781   { 1.4535032279573519, 5.0000000000000000, 1.0000000000000000,
7782 	  10.000000000000000, 0.60000000000000009, 0.0 },
7783   { 1.5820245752814950, 5.0000000000000000, 1.0000000000000000,
7784 	  10.000000000000000, 0.70000000000000018, 0.0 },
7785   { 1.7421756366906538, 5.0000000000000000, 1.0000000000000000,
7786 	  10.000000000000000, 0.80000000000000004, 0.0 },
7787   { 1.9513145531098235, 5.0000000000000000, 1.0000000000000000,
7788 	  10.000000000000000, 0.90000000000000013, 0.0 },
7789 };
7790 const double toler155 = 2.5000000000000020e-13;
7791 
7792 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
7793 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
7794 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
7795 // mean(f - f_GSL): 5.5487040400966458e-12
7796 // variance(f - f_GSL): 5.4399356990620132e-22
7797 // stddev(f - f_GSL): 2.3323669734975269e-11
7798 const testcase_hyperg<double>
7799 data156[19] =
7800 {
7801   { 0.040386107340619273, 5.0000000000000000, 2.0000000000000000,
7802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7803   { 0.052922149401344633, 5.0000000000000000, 2.0000000000000000,
7804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7805   { 0.070429627772374270, 5.0000000000000000, 2.0000000000000000,
7806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7807   { 0.095367431640624986, 5.0000000000000000, 2.0000000000000000,
7808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7809   { 0.13168724279835389, 5.0000000000000000, 2.0000000000000000,
7810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7811   { 0.18593443208187072, 5.0000000000000000, 2.0000000000000000,
7812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7813   { 0.26932907434290460, 5.0000000000000000, 2.0000000000000000,
7814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7815   { 0.40187757201646102, 5.0000000000000000, 2.0000000000000000,
7816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7817   { 0.62092132305915493, 5.0000000000000000, 2.0000000000000000,
7818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7819   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7821   { 1.6935087808430296, 5.0000000000000000, 2.0000000000000000,
7822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7823   { 3.0517578125000036, 5.0000000000000000, 2.0000000000000000,
7824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7825   { 5.9499018266198629, 5.0000000000000000, 2.0000000000000000,
7826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7827   { 12.860082304526767, 5.0000000000000000, 2.0000000000000000,
7828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7829   { 32.000000000000000, 5.0000000000000000, 2.0000000000000000,
7830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7831   { 97.656250000000114, 5.0000000000000000, 2.0000000000000000,
7832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7833   { 411.52263374485722, 5.0000000000000000, 2.0000000000000000,
7834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7835   { 3124.9999999999995, 5.0000000000000000, 2.0000000000000000,
7836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7837   { 100000.00000000055, 5.0000000000000000, 2.0000000000000000,
7838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7839 };
7840 const double toler156 = 2.5000000000000020e-13;
7841 
7842 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
7843 // max(|f - f_GSL|): 6.8212102632969618e-13 at index 18
7844 // max(|f - f_GSL| / |f_GSL|): 1.2402200478721734e-15
7845 // mean(f - f_GSL): 3.8828589466495609e-14
7846 // variance(f - f_GSL): 2.4267524775254640e-26
7847 // stddev(f - f_GSL): 1.5578037352392837e-13
7848 const testcase_hyperg<double>
7849 data157[19] =
7850 {
7851   { 0.21140107887447138, 5.0000000000000000, 2.0000000000000000,
7852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7853   { 0.24005486968449927, 5.0000000000000000, 2.0000000000000000,
7854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7855   { 0.27478119275391810, 5.0000000000000000, 2.0000000000000000,
7856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7857   { 0.31738281250000006, 5.0000000000000000, 2.0000000000000000,
7858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7859   { 0.37037037037037024, 5.0000000000000000, 2.0000000000000000,
7860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7861   { 0.43731778425655982, 5.0000000000000000, 2.0000000000000000,
7862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7863   { 0.52344105598543467, 5.0000000000000000, 2.0000000000000000,
7864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7865   { 0.63657407407407429, 5.0000000000000000, 2.0000000000000000,
7866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7867   { 0.78888054094665638, 5.0000000000000000, 2.0000000000000000,
7868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7869   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7871   { 1.3031550068587108, 5.0000000000000000, 2.0000000000000000,
7872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7873   { 1.7578125000000011, 5.0000000000000000, 2.0000000000000000,
7874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7875   { 2.4781341107871717, 5.0000000000000000, 2.0000000000000000,
7876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7877   { 3.7037037037037073, 5.0000000000000000, 2.0000000000000000,
7878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7879   { 5.9999999999999982, 5.0000000000000000, 2.0000000000000000,
7880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7881   { 10.937500000000005, 5.0000000000000000, 2.0000000000000000,
7882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7883   { 24.074074074074115, 5.0000000000000000, 2.0000000000000000,
7884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7885   { 74.999999999999957, 5.0000000000000000, 2.0000000000000000,
7886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7887   { 550.00000000000068, 5.0000000000000000, 2.0000000000000000,
7888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7889 };
7890 const double toler157 = 2.5000000000000020e-13;
7891 
7892 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
7893 // max(|f - f_GSL|): 4.9737991503207013e-14 at index 18
7894 // max(|f - f_GSL| / |f_GSL|): 1.6580642616864621e-15
7895 // mean(f - f_GSL): 3.1670572597201835e-15
7896 // variance(f - f_GSL): 1.2718576052442072e-28
7897 // stddev(f - f_GSL): 1.1277666448535384e-14
7898 const testcase_hyperg<double>
7899 data158[19] =
7900 {
7901   { 0.33250915203252129, 5.0000000000000000, 2.0000000000000000,
7902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7903   { 0.36566851047721943, 5.0000000000000000, 2.0000000000000000,
7904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7905   { 0.40414812182437959, 5.0000000000000000, 2.0000000000000000,
7906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7907   { 0.44916943268118498, 5.0000000000000000, 2.0000000000000000,
7908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7909   { 0.50233081077479547, 5.0000000000000000, 2.0000000000000000,
7910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7911   { 0.56575808728873322, 5.0000000000000000, 2.0000000000000000,
7912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7913   { 0.64233106844971455, 5.0000000000000000, 2.0000000000000000,
7914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7915   { 0.73603371116919514, 5.0000000000000000, 2.0000000000000000,
7916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7917   { 0.85251256240112439, 5.0000000000000000, 2.0000000000000000,
7918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7919   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7921   { 1.1909065696197674, 5.0000000000000000, 2.0000000000000000,
7922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7923   { 1.4447095285569318, 5.0000000000000000, 2.0000000000000000,
7924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7925   { 1.7935243137840653, 5.0000000000000000, 2.0000000000000000,
7926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7927   { 2.2937035820494467, 5.0000000000000000, 2.0000000000000000,
7928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7929   { 3.0524711083016687, 5.0000000000000000, 2.0000000000000000,
7930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7931   { 4.2976512669354259, 5.0000000000000000, 2.0000000000000000,
7932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7933   { 6.5977107563194739, 5.0000000000000000, 2.0000000000000000,
7934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7935   { 11.793747206577530, 5.0000000000000000, 2.0000000000000000,
7936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7937   { 29.997625937982132, 5.0000000000000000, 2.0000000000000000,
7938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7939 };
7940 const double toler158 = 2.5000000000000020e-13;
7941 
7942 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
7943 // max(|f - f_GSL|): 1.1546319456101628e-14 at index 18
7944 // max(|f - f_GSL| / |f_GSL|): 1.4852319937858925e-15
7945 // mean(f - f_GSL): 8.5896202431525265e-16
7946 // variance(f - f_GSL): 6.6980634833963886e-30
7947 // stddev(f - f_GSL): 2.5880617232586221e-15
7948 const testcase_hyperg<double>
7949 data159[19] =
7950 {
7951   { 0.42108197362250294, 5.0000000000000000, 2.0000000000000000,
7952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7953   { 0.45503172013983040, 5.0000000000000000, 2.0000000000000000,
7954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7955   { 0.49345609813624314, 5.0000000000000000, 2.0000000000000000,
7956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7957   { 0.53720880551221295, 5.0000000000000000, 2.0000000000000000,
7958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7959   { 0.58736431524847466, 5.0000000000000000, 2.0000000000000000,
7960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7961   { 0.64529222467897995, 5.0000000000000000, 2.0000000000000000,
7962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7963   { 0.71276337354393959, 5.0000000000000000, 2.0000000000000000,
7964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7965   { 0.79210466220795306, 5.0000000000000000, 2.0000000000000000,
7966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7967   { 0.88643063455510596, 5.0000000000000000, 2.0000000000000000,
7968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7969   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7971   { 1.1387832139040652, 5.0000000000000000, 2.0000000000000000,
7972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7973   { 1.3114025920844754, 5.0000000000000000, 2.0000000000000000,
7974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7975   { 1.5307655016768162, 5.0000000000000000, 2.0000000000000000,
7976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7977   { 1.8170727950333352, 5.0000000000000000, 2.0000000000000000,
7978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7979   { 2.2037865486700836, 5.0000000000000000, 2.0000000000000000,
7980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7981   { 2.7506766056439380, 5.0000000000000000, 2.0000000000000000,
7982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7983   { 3.5764534935716998, 5.0000000000000000, 2.0000000000000000,
7984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7985   { 4.9587762302155403, 5.0000000000000000, 2.0000000000000000,
7986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7987   { 7.7740847924166907, 5.0000000000000000, 2.0000000000000000,
7988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7989 };
7990 const double toler159 = 2.5000000000000020e-13;
7991 
7992 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
7993 // max(|f - f_GSL|): 4.4408920985006262e-15 at index 18
7994 // max(|f - f_GSL| / |f_GSL|): 1.0721199711322765e-15
7995 // mean(f - f_GSL): 3.5059674461847049e-16
7996 // variance(f - f_GSL): 9.8111051098089205e-31
7997 // stddev(f - f_GSL): 9.9051022760034740e-16
7998 const testcase_hyperg<double>
7999 data160[19] =
8000 {
8001   { 0.48860241312958436, 5.0000000000000000, 2.0000000000000000,
8002 	  10.000000000000000, -0.90000000000000002, 0.0 },
8003   { 0.52193382517068487, 5.0000000000000000, 2.0000000000000000,
8004 	  10.000000000000000, -0.80000000000000004, 0.0 },
8005   { 0.55902375003954219, 5.0000000000000000, 2.0000000000000000,
8006 	  10.000000000000000, -0.69999999999999996, 0.0 },
8007   { 0.60049055150230324, 5.0000000000000000, 2.0000000000000000,
8008 	  10.000000000000000, -0.59999999999999998, 0.0 },
8009   { 0.64709127927203469, 5.0000000000000000, 2.0000000000000000,
8010 	  10.000000000000000, -0.50000000000000000, 0.0 },
8011   { 0.69976233335368998, 5.0000000000000000, 2.0000000000000000,
8012 	  10.000000000000000, -0.39999999999999991, 0.0 },
8013   { 0.75967529501080988, 5.0000000000000000, 2.0000000000000000,
8014 	  10.000000000000000, -0.29999999999999993, 0.0 },
8015   { 0.82831498895254407, 5.0000000000000000, 2.0000000000000000,
8016 	  10.000000000000000, -0.19999999999999996, 0.0 },
8017   { 0.90759090169653933, 5.0000000000000000, 2.0000000000000000,
8018 	  10.000000000000000, -0.099999999999999978, 0.0 },
8019   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
8020 	  10.000000000000000, 0.0000000000000000, 0.0 },
8021   { 1.1088712278667465, 5.0000000000000000, 2.0000000000000000,
8022 	  10.000000000000000, 0.10000000000000009, 0.0 },
8023   { 1.2387445478440855, 5.0000000000000000, 2.0000000000000000,
8024 	  10.000000000000000, 0.20000000000000018, 0.0 },
8025   { 1.3959812720437546, 5.0000000000000000, 2.0000000000000000,
8026 	  10.000000000000000, 0.30000000000000004, 0.0 },
8027   { 1.5897930661091169, 5.0000000000000000, 2.0000000000000000,
8028 	  10.000000000000000, 0.40000000000000013, 0.0 },
8029   { 1.8340789380307454, 5.0000000000000000, 2.0000000000000000,
8030 	  10.000000000000000, 0.50000000000000000, 0.0 },
8031   { 2.1509548085970764, 5.0000000000000000, 2.0000000000000000,
8032 	  10.000000000000000, 0.60000000000000009, 0.0 },
8033   { 2.5782406951207526, 5.0000000000000000, 2.0000000000000000,
8034 	  10.000000000000000, 0.70000000000000018, 0.0 },
8035   { 3.1877847194242737, 5.0000000000000000, 2.0000000000000000,
8036 	  10.000000000000000, 0.80000000000000004, 0.0 },
8037   { 4.1421596631676918, 5.0000000000000000, 2.0000000000000000,
8038 	  10.000000000000000, 0.90000000000000013, 0.0 },
8039 };
8040 const double toler160 = 2.5000000000000020e-13;
8041 
8042 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
8043 // max(|f - f_GSL|): 1.3113021850585938e-06 at index 18
8044 // max(|f - f_GSL| / |f_GSL|): 2.9699111427019355e-14
8045 // mean(f - f_GSL): 6.9091057386613658e-08
8046 // variance(f - f_GSL): 9.0489756878178256e-14
8047 // stddev(f - f_GSL): 3.0081515400354792e-07
8048 const testcase_hyperg<double>
8049 data161[19] =
8050 {
8051   { -0.0047236848832209926, 5.0000000000000000, 5.0000000000000000,
8052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8053   { -0.0073321496427104288, 5.0000000000000000, 5.0000000000000000,
8054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8055   { -0.010977302557845620, 5.0000000000000000, 5.0000000000000000,
8056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8057   { -0.015692785382270882, 5.0000000000000000, 5.0000000000000000,
8058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8059   { -0.020728547477518663, 5.0000000000000000, 5.0000000000000000,
8060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8061   { -0.022767481479412773, 5.0000000000000000, 5.0000000000000000,
8062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8063   { -0.010634636868114097, 5.0000000000000000, 5.0000000000000000,
8064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8065   { 0.050699832580781923, 5.0000000000000000, 5.0000000000000000,
8066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8067   { 0.27045765367659280, 5.0000000000000000, 5.0000000000000000,
8068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8069   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8071   { 3.4387055868901171, 5.0000000000000000, 5.0000000000000000,
8072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8073   { 12.052059173584013, 5.0000000000000000, 5.0000000000000000,
8074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8075   { 45.565319600798020, 5.0000000000000000, 5.0000000000000000,
8076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8077   { 196.23532998018635, 5.0000000000000000, 5.0000000000000000,
8078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8079   { 1032.0000000000002, 5.0000000000000000, 5.0000000000000000,
8080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8081   { 7376.0986328125073, 5.0000000000000000, 5.0000000000000000,
8082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8083   { 86964.639536656410, 5.0000000000000000, 5.0000000000000000,
8084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8085   { 2596875.0000000009, 5.0000000000000000, 5.0000000000000000,
8086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8087   { 766225000.00000668, 5.0000000000000000, 5.0000000000000000,
8088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8089 };
8090 const double toler161 = 2.5000000000000015e-12;
8091 
8092 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
8093 // max(|f - f_GSL|): 1.8626451492309570e-09 at index 18
8094 // max(|f - f_GSL| / |f_GSL|): 1.5205266524334267e-15
8095 // mean(f - f_GSL): 9.8838934113244577e-11
8096 // variance(f - f_GSL): 1.8243591026317757e-19
8097 // stddev(f - f_GSL): 4.2712516931594835e-10
8098 const testcase_hyperg<double>
8099 data162[19] =
8100 {
8101   { 0.016473280625778776, 5.0000000000000000, 5.0000000000000000,
8102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8103   { 0.023520955289486591, 5.0000000000000000, 5.0000000000000000,
8104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8105   { 0.034179084066005165, 5.0000000000000000, 5.0000000000000000,
8106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8107   { 0.050663948059081955, 5.0000000000000000, 5.0000000000000000,
8108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8109   { 0.076817558299039870, 5.0000000000000000, 5.0000000000000000,
8110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8111   { 0.11952927776691663, 5.0000000000000000, 5.0000000000000000,
8112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8113   { 0.19163799520552807, 5.0000000000000000, 5.0000000000000000,
8114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8115   { 0.31815307784636504, 5.0000000000000000, 5.0000000000000000,
8116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8117   { 0.55036208180243285, 5.0000000000000000, 5.0000000000000000,
8118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8119   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8121   { 1.9287183337378946, 5.0000000000000000, 5.0000000000000000,
8122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8123   { 4.0054321289062544, 5.0000000000000000, 5.0000000000000000,
8124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8125   { 9.1373492337376394, 5.0000000000000000, 5.0000000000000000,
8126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8127   { 23.576817558299062, 5.0000000000000000, 5.0000000000000000,
8128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8129   { 71.999999999999972, 5.0000000000000000, 5.0000000000000000,
8130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8131   { 280.76171875000023, 5.0000000000000000, 5.0000000000000000,
8132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8133   { 1611.7969821673578, 5.0000000000000000, 5.0000000000000000,
8134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8135   { 18749.999999999996, 5.0000000000000000, 5.0000000000000000,
8136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8137   { 1225000.0000000061, 5.0000000000000000, 5.0000000000000000,
8138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8139 };
8140 const double toler162 = 2.5000000000000020e-13;
8141 
8142 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
8143 // max(|f - f_GSL|): 1.8189894035458565e-11 at index 18
8144 // max(|f - f_GSL| / |f_GSL|): 1.5011259042308243e-15
8145 // mean(f - f_GSL): 9.8916196870839876e-13
8146 // variance(f - f_GSL): 1.7350118793242040e-23
8147 // stddev(f - f_GSL): 4.1653473796601937e-12
8148 const testcase_hyperg<double>
8149 data163[19] =
8150 {
8151   { 0.067462409738203527, 5.0000000000000000, 5.0000000000000000,
8152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8153   { 0.084813629887172531, 5.0000000000000000, 5.0000000000000000,
8154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8155   { 0.10799223563666395, 5.0000000000000000, 5.0000000000000000,
8156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8157   { 0.13947766136095380, 5.0000000000000000, 5.0000000000000000,
8158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8159   { 0.18305927261494301, 5.0000000000000000, 5.0000000000000000,
8160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8161   { 0.24468431546783478, 5.0000000000000000, 5.0000000000000000,
8162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8163   { 0.33397274564972962, 5.0000000000000000, 5.0000000000000000,
8164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8165   { 0.46703323887436765, 5.0000000000000000, 5.0000000000000000,
8166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8167   { 0.67194346197695642, 5.0000000000000000, 5.0000000000000000,
8168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8169   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8171   { 1.5503148146900136, 5.0000000000000000, 5.0000000000000000,
8172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8173   { 2.5278200136941025, 5.0000000000000000, 5.0000000000000000,
8174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8175   { 4.3933515329658954, 5.0000000000000000, 5.0000000000000000,
8176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8177   { 8.3000308946111048, 5.0000000000000000, 5.0000000000000000,
8178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8179   { 17.570215556257921, 5.0000000000000000, 5.0000000000000000,
8180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8181   { 43.847462183266167, 5.0000000000000000, 5.0000000000000000,
8182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8183   { 141.86909082943893, 5.0000000000000000, 5.0000000000000000,
8184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8185   { 736.63489653168926, 5.0000000000000000, 5.0000000000000000,
8186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8187   { 12117.500593515540, 5.0000000000000000, 5.0000000000000000,
8188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8189 };
8190 const double toler163 = 2.5000000000000020e-13;
8191 
8192 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
8193 // max(|f - f_GSL|): 6.8212102632969618e-13 at index 18
8194 // max(|f - f_GSL| / |f_GSL|): 1.3038469641917422e-15
8195 // mean(f - f_GSL): 3.9518096397578601e-14
8196 // variance(f - f_GSL): 2.4215530819720675e-26
8197 // stddev(f - f_GSL): 1.5561340179984714e-13
8198 const testcase_hyperg<double>
8199 data164[19] =
8200 {
8201   { 0.12409443806004226, 5.0000000000000000, 5.0000000000000000,
8202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8203   { 0.14886910375100415, 5.0000000000000000, 5.0000000000000000,
8204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8205   { 0.18023328876836348, 5.0000000000000000, 5.0000000000000000,
8206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8207   { 0.22044046981094723, 5.0000000000000000, 5.0000000000000000,
8208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8209   { 0.27271160690708790, 5.0000000000000000, 5.0000000000000000,
8210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8211   { 0.34174821195025845, 5.0000000000000000, 5.0000000000000000,
8212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8213   { 0.43457788826160282, 5.0000000000000000, 5.0000000000000000,
8214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8215   { 0.56199385898404552, 5.0000000000000000, 5.0000000000000000,
8216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8217   { 0.74109892753745221, 5.0000000000000000, 5.0000000000000000,
8218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8219   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8221   { 1.3869229400096228, 5.0000000000000000, 5.0000000000000000,
8222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8223   { 1.9890168748121269, 5.0000000000000000, 5.0000000000000000,
8224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8225   { 2.9741205609307424, 5.0000000000000000, 5.0000000000000000,
8226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8227   { 4.6924751038237345, 5.0000000000000000, 5.0000000000000000,
8228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8229   { 7.9555939380658254, 5.0000000000000000, 5.0000000000000000,
8230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8231   { 14.933102063314404, 5.0000000000000000, 5.0000000000000000,
8232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8233   { 32.780461638447541, 5.0000000000000000, 5.0000000000000000,
8234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8235   { 94.848124287773530, 5.0000000000000000, 5.0000000000000000,
8236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8237   { 523.16034401517709, 5.0000000000000000, 5.0000000000000000,
8238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8239 };
8240 const double toler164 = 2.5000000000000020e-13;
8241 
8242 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
8243 // max(|f - f_GSL|): 9.9475983006414026e-14 at index 18
8244 // max(|f - f_GSL| / |f_GSL|): 1.3163001721303552e-15
8245 // mean(f - f_GSL): 6.1880325425160040e-15
8246 // variance(f - f_GSL): 5.1034009979425656e-28
8247 // stddev(f - f_GSL): 2.2590708262342210e-14
8248 const testcase_hyperg<double>
8249 data165[19] =
8250 {
8251   { 0.17885405888526873, 5.0000000000000000, 5.0000000000000000,
8252 	  10.000000000000000, -0.90000000000000002, 0.0 },
8253   { 0.20861302518993391, 5.0000000000000000, 5.0000000000000000,
8254 	  10.000000000000000, -0.80000000000000004, 0.0 },
8255   { 0.24504033307244946, 5.0000000000000000, 5.0000000000000000,
8256 	  10.000000000000000, -0.69999999999999996, 0.0 },
8257   { 0.29007236051133489, 5.0000000000000000, 5.0000000000000000,
8258 	  10.000000000000000, -0.59999999999999998, 0.0 },
8259   { 0.34635542859732737, 5.0000000000000000, 5.0000000000000000,
8260 	  10.000000000000000, -0.50000000000000000, 0.0 },
8261   { 0.41756858504598410, 5.0000000000000000, 5.0000000000000000,
8262 	  10.000000000000000, -0.39999999999999991, 0.0 },
8263   { 0.50892615622124393, 5.0000000000000000, 5.0000000000000000,
8264 	  10.000000000000000, -0.29999999999999993, 0.0 },
8265   { 0.62798173270509761, 5.0000000000000000, 5.0000000000000000,
8266 	  10.000000000000000, -0.19999999999999996, 0.0 },
8267   { 0.78595487360378424, 5.0000000000000000, 5.0000000000000000,
8268 	  10.000000000000000, -0.099999999999999978, 0.0 },
8269   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8270 	  10.000000000000000, 0.0000000000000000, 0.0 },
8271   { 1.2972517637384813, 5.0000000000000000, 5.0000000000000000,
8272 	  10.000000000000000, 0.10000000000000009, 0.0 },
8273   { 1.7224028197396399, 5.0000000000000000, 5.0000000000000000,
8274 	  10.000000000000000, 0.20000000000000018, 0.0 },
8275   { 2.3527690438263305, 5.0000000000000000, 5.0000000000000000,
8276 	  10.000000000000000, 0.30000000000000004, 0.0 },
8277   { 3.3305218060101147, 5.0000000000000000, 5.0000000000000000,
8278 	  10.000000000000000, 0.40000000000000013, 0.0 },
8279   { 4.9383884076775466, 5.0000000000000000, 5.0000000000000000,
8280 	  10.000000000000000, 0.50000000000000000, 0.0 },
8281   { 7.8007604680775229, 5.0000000000000000, 5.0000000000000000,
8282 	  10.000000000000000, 0.60000000000000009, 0.0 },
8283   { 13.518663719271903, 5.0000000000000000, 5.0000000000000000,
8284 	  10.000000000000000, 0.70000000000000018, 0.0 },
8285   { 27.285345906502567, 5.0000000000000000, 5.0000000000000000,
8286 	  10.000000000000000, 0.80000000000000004, 0.0 },
8287   { 75.572415101502216, 5.0000000000000000, 5.0000000000000000,
8288 	  10.000000000000000, 0.90000000000000013, 0.0 },
8289 };
8290 const double toler165 = 2.5000000000000020e-13;
8291 
8292 // Test data for a=5.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
8293 // max(|f - f_GSL|): 0.81250000000000000 at index 18
8294 // max(|f - f_GSL| / |f_GSL|): 1.8182428501096257e-15
8295 // mean(f - f_GSL): 0.042765168793266639
8296 // variance(f - f_GSL): 0.034744884250260212
8297 // stddev(f - f_GSL): 0.18639979680852714
8298 const testcase_hyperg<double>
8299 data166[19] =
8300 {
8301   { 0.00063586451658060813, 5.0000000000000000, 10.000000000000000,
8302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8303   { 0.0010334743461763829, 5.0000000000000000, 10.000000000000000,
8304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8305   { 0.0015326246054669763, 5.0000000000000000, 10.000000000000000,
8306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8307   { 0.0019007018181583513, 5.0000000000000000, 10.000000000000000,
8308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8309   { 0.0012845577715431562, 5.0000000000000000, 10.000000000000000,
8310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8311   { -0.0027213806178060305, 5.0000000000000000, 10.000000000000000,
8312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8313   { -0.015121744574954044, 5.0000000000000000, 10.000000000000000,
8314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8315   { -0.036637840562974290, 5.0000000000000000, 10.000000000000000,
8316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8317   { 0.019117849062621605, 5.0000000000000000, 10.000000000000000,
8318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8319   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8321   { 9.8116901852350615, 5.0000000000000000, 10.000000000000000,
8322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8323   { 84.255589172244427, 5.0000000000000000, 10.000000000000000,
8324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8325   { 773.87517619421294, 5.0000000000000000, 10.000000000000000,
8326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8327   { 8556.9725363054076, 5.0000000000000000, 10.000000000000000,
8328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8329   { 129023.99999999996, 5.0000000000000000, 10.000000000000000,
8330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8331   { 3174543.3807373112, 5.0000000000000000, 10.000000000000000,
8332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8333   { 175133896.95814583, 5.0000000000000000, 10.000000000000000,
8334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8335   { 43564453125.000061, 5.0000000000000000, 10.000000000000000,
8336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8337   { 446860000000007.00, 5.0000000000000000, 10.000000000000000,
8338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8339 };
8340 const double toler166 = 2.5000000000000020e-13;
8341 
8342 // Test data for a=5.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
8343 // max(|f - f_GSL|): 0.00039672851562500000 at index 18
8344 // max(|f - f_GSL| / |f_GSL|): 1.6882064494680641e-15
8345 // mean(f - f_GSL): 2.0884382210121993e-05
8346 // variance(f - f_GSL): 8.2836958019297269e-09
8347 // stddev(f - f_GSL): 9.1014810893226203e-05
8348 const testcase_hyperg<double>
8349 data167[19] =
8350 {
8351   { -0.00030045430691814646, 5.0000000000000000, 10.000000000000000,
8352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8353   { -0.00031119487747322054, 5.0000000000000000, 10.000000000000000,
8354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8355   { -0.00014589213141656318, 5.0000000000000000, 10.000000000000000,
8356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8357   { 0.00056843418860824636, 5.0000000000000000, 10.000000000000000,
8358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8359   { 0.0028902549859721747, 5.0000000000000000, 10.000000000000000,
8360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8361   { 0.0098776037238877245, 5.0000000000000000, 10.000000000000000,
8362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8363   { 0.030689217428863859, 5.0000000000000000, 10.000000000000000,
8364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8365   { 0.094211590019076558, 5.0000000000000000, 10.000000000000000,
8366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8367   { 0.29791981455918370, 5.0000000000000000, 10.000000000000000,
8368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8369   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8371   { 3.6646308771236793, 5.0000000000000000, 10.000000000000000,
8372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8373   { 15.133991837501567, 5.0000000000000000, 10.000000000000000,
8374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8375   { 73.331330046144089, 5.0000000000000000, 10.000000000000000,
8376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8377   { 441.01791167787303, 5.0000000000000000, 10.000000000000000,
8378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8379   { 3583.9999999999991, 5.0000000000000000, 10.000000000000000,
8380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8381   { 45299.530029296984, 5.0000000000000000, 10.000000000000000,
8382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8383   { 1157231.0002427436, 5.0000000000000000, 10.000000000000000,
8384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8385   { 107421875.00000016, 5.0000000000000000, 10.000000000000000,
8386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8387   { 235000000000.00293, 5.0000000000000000, 10.000000000000000,
8388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8389 };
8390 const double toler167 = 2.5000000000000020e-13;
8391 
8392 // Test data for a=5.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
8393 // max(|f - f_GSL|): 9.5367431640625000e-07 at index 18
8394 // max(|f - f_GSL| / |f_GSL|): 1.6314276114917587e-15
8395 // mean(f - f_GSL): 5.0242811922592076e-08
8396 // variance(f - f_GSL): 4.7862904884501567e-14
8397 // stddev(f - f_GSL): 2.1877592391417655e-07
8398 const testcase_hyperg<double>
8399 data168[19] =
8400 {
8401   { 0.0058530497315413248, 5.0000000000000000, 10.000000000000000,
8402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8403   { 0.0088526869356855397, 5.0000000000000000, 10.000000000000000,
8404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8405   { 0.013770987983442959, 5.0000000000000000, 10.000000000000000,
8406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8407   { 0.022108932690960776, 5.0000000000000000, 10.000000000000000,
8408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8409   { 0.036786236450921550, 5.0000000000000000, 10.000000000000000,
8410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8411   { 0.063750669040426408, 5.0000000000000000, 10.000000000000000,
8412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8413   { 0.11577228680714466, 5.0000000000000000, 10.000000000000000,
8414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8415   { 0.22197573416125760, 5.0000000000000000, 10.000000000000000,
8416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8417   { 0.45361312968415324, 5.0000000000000000, 10.000000000000000,
8418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8419   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8421   { 2.4162889363082747, 5.0000000000000000, 10.000000000000000,
8422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8423   { 6.5381564791240541, 5.0000000000000000, 10.000000000000000,
8424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8425   { 20.415771011498428, 5.0000000000000000, 10.000000000000000,
8426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8427   { 76.870682056629448, 5.0000000000000000, 10.000000000000000,
8428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8429   { 373.58730158730162, 5.0000000000000000, 10.000000000000000,
8430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8431   { 2626.2555803571477, 5.0000000000000000, 10.000000000000000,
8432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8433   { 33060.960671081237, 5.0000000000000000, 10.000000000000000,
8434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8435   { 1203521.8253968258, 5.0000000000000000, 10.000000000000000,
8436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8437   { 584564285.71428990, 5.0000000000000000, 10.000000000000000,
8438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8439 };
8440 const double toler168 = 2.5000000000000020e-13;
8441 
8442 // Test data for a=5.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
8443 // max(|f - f_GSL|): 7.4505805969238281e-09 at index 18
8444 // max(|f - f_GSL| / |f_GSL|): 1.6196914341138665e-15
8445 // mean(f - f_GSL): 3.9331532183208954e-10
8446 // variance(f - f_GSL): 2.9206631793126476e-18
8447 // stddev(f - f_GSL): 1.7089947862157589e-09
8448 const testcase_hyperg<double>
8449 data169[19] =
8450 {
8451   { 0.020248990107069573, 5.0000000000000000, 10.000000000000000,
8452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8453   { 0.027876687750502366, 5.0000000000000000, 10.000000000000000,
8454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8455   { 0.039154648888447607, 5.0000000000000000, 10.000000000000000,
8456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8457   { 0.056251883506774715, 5.0000000000000000, 10.000000000000000,
8458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8459   { 0.082914189910074473, 5.0000000000000000, 10.000000000000000,
8460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8461   { 0.12585357817786472, 5.0000000000000000, 10.000000000000000,
8462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8463   { 0.19761423206224940, 5.0000000000000000, 10.000000000000000,
8464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8465   { 0.32280443863359237, 5.0000000000000000, 10.000000000000000,
8466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8467   { 0.55250024062839420, 5.0000000000000000, 10.000000000000000,
8468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8469   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8471   { 1.9374297986599267, 5.0000000000000000, 10.000000000000000,
8472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8473   { 4.0849049886067759, 5.0000000000000000, 10.000000000000000,
8474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8475   { 9.5926988633258983, 5.0000000000000000, 10.000000000000000,
8476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8477   { 25.958314281359588, 5.0000000000000000, 10.000000000000000,
8478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8479   { 85.333333333333300, 5.0000000000000000, 10.000000000000000,
8480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8481   { 372.31445312500028, 5.0000000000000000, 10.000000000000000,
8482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8483   { 2545.3436976070780, 5.0000000000000000, 10.000000000000000,
8484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8485   { 39583.333333333343, 5.0000000000000000, 10.000000000000000,
8486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8487   { 4600000.0000000261, 5.0000000000000000, 10.000000000000000,
8488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8489 };
8490 const double toler169 = 2.5000000000000020e-13;
8491 
8492 // Test data for a=5.0000000000000000, b=10.000000000000000, c=10.000000000000000.
8493 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
8494 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
8495 // mean(f - f_GSL): 5.5487040400966458e-12
8496 // variance(f - f_GSL): 5.4399356990620132e-22
8497 // stddev(f - f_GSL): 2.3323669734975269e-11
8498 const testcase_hyperg<double>
8499 data170[19] =
8500 {
8501   { 0.040386107340619273, 5.0000000000000000, 10.000000000000000,
8502 	  10.000000000000000, -0.90000000000000002, 0.0 },
8503   { 0.052922149401344633, 5.0000000000000000, 10.000000000000000,
8504 	  10.000000000000000, -0.80000000000000004, 0.0 },
8505   { 0.070429627772374270, 5.0000000000000000, 10.000000000000000,
8506 	  10.000000000000000, -0.69999999999999996, 0.0 },
8507   { 0.095367431640624986, 5.0000000000000000, 10.000000000000000,
8508 	  10.000000000000000, -0.59999999999999998, 0.0 },
8509   { 0.13168724279835389, 5.0000000000000000, 10.000000000000000,
8510 	  10.000000000000000, -0.50000000000000000, 0.0 },
8511   { 0.18593443208187072, 5.0000000000000000, 10.000000000000000,
8512 	  10.000000000000000, -0.39999999999999991, 0.0 },
8513   { 0.26932907434290460, 5.0000000000000000, 10.000000000000000,
8514 	  10.000000000000000, -0.29999999999999993, 0.0 },
8515   { 0.40187757201646102, 5.0000000000000000, 10.000000000000000,
8516 	  10.000000000000000, -0.19999999999999996, 0.0 },
8517   { 0.62092132305915493, 5.0000000000000000, 10.000000000000000,
8518 	  10.000000000000000, -0.099999999999999978, 0.0 },
8519   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8520 	  10.000000000000000, 0.0000000000000000, 0.0 },
8521   { 1.6935087808430296, 5.0000000000000000, 10.000000000000000,
8522 	  10.000000000000000, 0.10000000000000009, 0.0 },
8523   { 3.0517578125000036, 5.0000000000000000, 10.000000000000000,
8524 	  10.000000000000000, 0.20000000000000018, 0.0 },
8525   { 5.9499018266198629, 5.0000000000000000, 10.000000000000000,
8526 	  10.000000000000000, 0.30000000000000004, 0.0 },
8527   { 12.860082304526767, 5.0000000000000000, 10.000000000000000,
8528 	  10.000000000000000, 0.40000000000000013, 0.0 },
8529   { 32.000000000000000, 5.0000000000000000, 10.000000000000000,
8530 	  10.000000000000000, 0.50000000000000000, 0.0 },
8531   { 97.656250000000114, 5.0000000000000000, 10.000000000000000,
8532 	  10.000000000000000, 0.60000000000000009, 0.0 },
8533   { 411.52263374485722, 5.0000000000000000, 10.000000000000000,
8534 	  10.000000000000000, 0.70000000000000018, 0.0 },
8535   { 3124.9999999999995, 5.0000000000000000, 10.000000000000000,
8536 	  10.000000000000000, 0.80000000000000004, 0.0 },
8537   { 100000.00000000055, 5.0000000000000000, 10.000000000000000,
8538 	  10.000000000000000, 0.90000000000000013, 0.0 },
8539 };
8540 const double toler170 = 2.5000000000000020e-13;
8541 
8542 // Test data for a=5.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
8543 // max(|f - f_GSL|): 60129542144.000000 at index 18
8544 // max(|f - f_GSL| / |f_GSL|): 2.0181355730232468e-15
8545 // mean(f - f_GSL): 3164712852.2154636
8546 // variance(f - f_GSL): 1.9029272767041847e+20
8547 // stddev(f - f_GSL): 13794663014.021708
8548 const testcase_hyperg<double>
8549 data171[19] =
8550 {
8551   { -1.8650300348790099e-05, 5.0000000000000000, 20.000000000000000,
8552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8553   { -3.6488008415371319e-05, 5.0000000000000000, 20.000000000000000,
8554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8555   { -6.4614776410961038e-05, 5.0000000000000000, 20.000000000000000,
8556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8557   { -8.4495207102246549e-05, 5.0000000000000000, 20.000000000000000,
8558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8559   { 2.2276197023825424e-05, 5.0000000000000000, 20.000000000000000,
8560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8561   { 0.00070736115111457809, 5.0000000000000000, 20.000000000000000,
8562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8563   { 0.0027829732057272588, 5.0000000000000000, 20.000000000000000,
8564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8565   { 0.0013283545664371644, 5.0000000000000000, 20.000000000000000,
8566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8567   { -0.041767631015048774, 5.0000000000000000, 20.000000000000000,
8568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8569   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8571   { 61.311496556100003, 5.0000000000000000, 20.000000000000000,
8572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8573   { 2397.4420539085872, 5.0000000000000000, 20.000000000000000,
8574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8575   { 103687.60998586559, 5.0000000000000000, 20.000000000000000,
8576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8577   { 6247196.6451069508, 5.0000000000000000, 20.000000000000000,
8578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8579   { 656408576.00000000, 5.0000000000000000, 20.000000000000000,
8580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8581   { 165334768098.54715, 5.0000000000000000, 20.000000000000000,
8582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8583   { 175097125520819.91, 5.0000000000000000, 20.000000000000000,
8584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8585   { 2.6818275451660257e+18, 5.0000000000000000, 20.000000000000000,
8586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8587   { 2.9794600000000777e+25, 5.0000000000000000, 20.000000000000000,
8588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8589 };
8590 const double toler171 = 2.5000000000000020e-13;
8591 
8592 // Test data for a=5.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
8593 // max(|f - f_GSL|): 9437184.0000000000 at index 18
8594 // max(|f - f_GSL| / |f_GSL|): 2.0515617391303805e-15
8595 // mean(f - f_GSL): 496693.97369064158
8596 // variance(f - f_GSL): 4687391593519.1660
8597 // stddev(f - f_GSL): 2165038.4739119918
8598 const testcase_hyperg<double>
8599 data172[19] =
8600 {
8601   { -3.6403884516313627e-06, 5.0000000000000000, 20.000000000000000,
8602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8603   { -9.5873829246491408e-06, 5.0000000000000000, 20.000000000000000,
8604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8605   { -2.6052245147200097e-05, 5.0000000000000000, 20.000000000000000,
8606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8607   { -7.2378303598384501e-05, 5.0000000000000000, 20.000000000000000,
8608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8609   { -0.00020048577321417379, 5.0000000000000000, 20.000000000000000,
8610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8611   { -0.00051222704046234439, 5.0000000000000000, 20.000000000000000,
8612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8613   { -0.00080950511491888959, 5.0000000000000000, 20.000000000000000,
8614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8615   { 0.0043473422174314250, 5.0000000000000000, 20.000000000000000,
8616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8617   { 0.081078342558623853, 5.0000000000000000, 20.000000000000000,
8618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8619   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8621   { 12.794854084397739, 5.0000000000000000, 20.000000000000000,
8622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8623   { 195.15639104739174, 5.0000000000000000, 20.000000000000000,
8624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8625   { 3938.7991953190131, 5.0000000000000000, 20.000000000000000,
8626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8627   { 118521.48653762160, 5.0000000000000000, 20.000000000000000,
8628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8629   { 6291455.9999999972, 5.0000000000000000, 20.000000000000000,
8630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8631   { 773070496.50699198, 5.0000000000000000, 20.000000000000000,
8632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8633   { 363276452167.04718, 5.0000000000000000, 20.000000000000000,
8634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8635   { 2002716064453133.0, 5.0000000000000000, 20.000000000000000,
8636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8637   { 4.6000000000001222e+21, 5.0000000000000000, 20.000000000000000,
8638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8639 };
8640 const double toler172 = 2.5000000000000020e-13;
8641 
8642 // Test data for a=5.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
8643 // max(|f - f_GSL|): 5120.0000000000000 at index 18
8644 // max(|f - f_GSL| / |f_GSL|): 1.7944916193878173e-15
8645 // mean(f - f_GSL): 269.47388985302263
8646 // variance(f - f_GSL): 1379705.1461701661
8647 // stddev(f - f_GSL): 1174.6085076186730
8648 const testcase_hyperg<double>
8649 data173[19] =
8650 {
8651   { 0.00014313323624053599, 5.0000000000000000, 20.000000000000000,
8652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8653   { 0.00025426183473118769, 5.0000000000000000, 20.000000000000000,
8654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8655   { 0.00048255612836437054, 5.0000000000000000, 20.000000000000000,
8656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8657   { 0.00099096904674794185, 5.0000000000000000, 20.000000000000000,
8658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8659   { 0.0022347805521915616, 5.0000000000000000, 20.000000000000000,
8660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8661   { 0.0056271390060294354, 5.0000000000000000, 20.000000000000000,
8662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8663   { 0.016109059519227351, 5.0000000000000000, 20.000000000000000,
8664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8665   { 0.053453465775609076, 5.0000000000000000, 20.000000000000000,
8666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8667   { 0.20995202901839263, 5.0000000000000000, 20.000000000000000,
8668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8669   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8671   { 5.9534372167648799, 5.0000000000000000, 20.000000000000000,
8672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8673   { 46.157632071206095, 5.0000000000000000, 20.000000000000000,
8674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8675   { 494.32074431164915, 5.0000000000000000, 20.000000000000000,
8676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8677   { 7989.5277611776519, 5.0000000000000000, 20.000000000000000,
8678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8679   { 224179.55830753347, 5.0000000000000000, 20.000000000000000,
8680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8681   { 13848144.485282511, 5.0000000000000000, 20.000000000000000,
8682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8683   { 2948587692.8892150, 5.0000000000000000, 20.000000000000000,
8684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8685   { 5940513286161.6602, 5.0000000000000000, 20.000000000000000,
8686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8687   { 2.8531757655946394e+18, 5.0000000000000000, 20.000000000000000,
8688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8689 };
8690 const double toler173 = 2.5000000000000020e-13;
8691 
8692 // Test data for a=5.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
8693 // max(|f - f_GSL|): 7.0000000000000000 at index 18
8694 // max(|f - f_GSL| / |f_GSL|): 1.5351977183413728e-15
8695 // mean(f - f_GSL): 0.36842306154970872
8696 // variance(f - f_GSL): 2.5789458059294108
8697 // stddev(f - f_GSL): 1.6059096506122039
8698 const testcase_hyperg<double>
8699 data174[19] =
8700 {
8701   { 0.0012492049968744917, 5.0000000000000000, 20.000000000000000,
8702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8703   { 0.0019931241968014200, 5.0000000000000000, 20.000000000000000,
8704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8705   { 0.0033203386861410844, 5.0000000000000000, 20.000000000000000,
8706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8707   { 0.0058191894509856774, 5.0000000000000000, 20.000000000000000,
8708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8709   { 0.010830090368313864, 5.0000000000000000, 20.000000000000000,
8710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8711   { 0.021653062305193541, 5.0000000000000000, 20.000000000000000,
8712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8713   { 0.047180821280919195, 5.0000000000000000, 20.000000000000000,
8714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8715   { 0.11405637279736212, 5.0000000000000000, 20.000000000000000,
8716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8717   { 0.31275468794721017, 5.0000000000000000, 20.000000000000000,
8718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8719   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8721   { 3.8598904658643969, 5.0000000000000000, 20.000000000000000,
8722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8723   { 18.806301417906734, 5.0000000000000000, 20.000000000000000,
8724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8725   { 122.77054465017432, 5.0000000000000000, 20.000000000000000,
8726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8727   { 1168.4762146809012, 5.0000000000000000, 20.000000000000000,
8728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8729   { 18437.511788521082, 5.0000000000000000, 20.000000000000000,
8730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8731   { 597441.79669264762, 5.0000000000000000, 20.000000000000000,
8732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8733   { 59390411.369228527, 5.0000000000000000, 20.000000000000000,
8734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8735   { 44681668993.361603, 5.0000000000000000, 20.000000000000000,
8736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8737   { 4559673269683333.0, 5.0000000000000000, 20.000000000000000,
8738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8739 };
8740 const double toler174 = 2.5000000000000020e-13;
8741 
8742 // Test data for a=5.0000000000000000, b=20.000000000000000, c=10.000000000000000.
8743 // max(|f - f_GSL|): 0.029296875000000000 at index 18
8744 // max(|f - f_GSL| / |f_GSL|): 1.8717083246628342e-15
8745 // mean(f - f_GSL): 0.0015419659355661440
8746 // variance(f - f_GSL): 4.5173964710879197e-05
8747 // stddev(f - f_GSL): 0.0067211579888348996
8748 const testcase_hyperg<double>
8749 data175[19] =
8750 {
8751   { 0.0038867957051370739, 5.0000000000000000, 20.000000000000000,
8752 	  10.000000000000000, -0.90000000000000002, 0.0 },
8753   { 0.0058484892597364235, 5.0000000000000000, 20.000000000000000,
8754 	  10.000000000000000, -0.80000000000000004, 0.0 },
8755   { 0.0090987656053758189, 5.0000000000000000, 20.000000000000000,
8756 	  10.000000000000000, -0.69999999999999996, 0.0 },
8757   { 0.014714392537270657, 5.0000000000000000, 20.000000000000000,
8758 	  10.000000000000000, -0.59999999999999998, 0.0 },
8759   { 0.024900404542056772, 5.0000000000000000, 20.000000000000000,
8760 	  10.000000000000000, -0.50000000000000000, 0.0 },
8761   { 0.044460184663785055, 5.0000000000000000, 20.000000000000000,
8762 	  10.000000000000000, -0.39999999999999991, 0.0 },
8763   { 0.084638849196357113, 5.0000000000000000, 20.000000000000000,
8764 	  10.000000000000000, -0.29999999999999993, 0.0 },
8765   { 0.17409058241291026, 5.0000000000000000, 20.000000000000000,
8766 	  10.000000000000000, -0.19999999999999996, 0.0 },
8767   { 0.39357055823580767, 5.0000000000000000, 20.000000000000000,
8768 	  10.000000000000000, -0.099999999999999978, 0.0 },
8769   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8770 	  10.000000000000000, 0.0000000000000000, 0.0 },
8771   { 2.9410794636226596, 5.0000000000000000, 20.000000000000000,
8772 	  10.000000000000000, 0.10000000000000009, 0.0 },
8773   { 10.417226071414374, 5.0000000000000000, 20.000000000000000,
8774 	  10.000000000000000, 0.20000000000000018, 0.0 },
8775   { 46.930585873140835, 5.0000000000000000, 20.000000000000000,
8776 	  10.000000000000000, 0.30000000000000004, 0.0 },
8777   { 290.76717121814988, 5.0000000000000000, 20.000000000000000,
8778 	  10.000000000000000, 0.40000000000000013, 0.0 },
8779   { 2788.1641083374830, 5.0000000000000000, 20.000000000000000,
8780 	  10.000000000000000, 0.50000000000000000, 0.0 },
8781   { 50228.117718560752, 5.0000000000000000, 20.000000000000000,
8782 	  10.000000000000000, 0.60000000000000009, 0.0 },
8783   { 2433042.3476752895, 5.0000000000000000, 20.000000000000000,
8784 	  10.000000000000000, 0.70000000000000018, 0.0 },
8785   { 705345246.77141762, 5.0000000000000000, 20.000000000000000,
8786 	  10.000000000000000, 0.80000000000000004, 0.0 },
8787   { 15652478868617.246, 5.0000000000000000, 20.000000000000000,
8788 	  10.000000000000000, 0.90000000000000013, 0.0 },
8789 };
8790 const double toler175 = 2.5000000000000020e-13;
8791 
8792 // Test data for a=10.000000000000000, b=0.0000000000000000, c=2.0000000000000000.
8793 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8794 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8795 // mean(f - f_GSL): 0.0000000000000000
8796 // variance(f - f_GSL): 0.0000000000000000
8797 // stddev(f - f_GSL): 0.0000000000000000
8798 const testcase_hyperg<double>
8799 data176[19] =
8800 {
8801   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8803   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8805   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8807   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8809   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8811   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8813   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8815   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8817   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8819   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8821   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8823   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8825   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8827   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8829   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8831   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8833   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8835   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8837   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8839 };
8840 const double toler176 = 2.5000000000000020e-13;
8841 
8842 // Test data for a=10.000000000000000, b=0.0000000000000000, c=4.0000000000000000.
8843 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8844 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8845 // mean(f - f_GSL): 0.0000000000000000
8846 // variance(f - f_GSL): 0.0000000000000000
8847 // stddev(f - f_GSL): 0.0000000000000000
8848 const testcase_hyperg<double>
8849 data177[19] =
8850 {
8851   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8853   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8855   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8857   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8859   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8861   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8863   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8865   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8867   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8869   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8871   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8873   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8875   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8877   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8879   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8881   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8883   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8885   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8887   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8889 };
8890 const double toler177 = 2.5000000000000020e-13;
8891 
8892 // Test data for a=10.000000000000000, b=0.0000000000000000, c=6.0000000000000000.
8893 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8894 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8895 // mean(f - f_GSL): 0.0000000000000000
8896 // variance(f - f_GSL): 0.0000000000000000
8897 // stddev(f - f_GSL): 0.0000000000000000
8898 const testcase_hyperg<double>
8899 data178[19] =
8900 {
8901   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8903   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8905   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8907   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8909   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8911   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8913   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8915   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8917   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8919   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8921   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8923   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8925   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8927   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8929   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8931   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8933   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8935   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8937   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8939 };
8940 const double toler178 = 2.5000000000000020e-13;
8941 
8942 // Test data for a=10.000000000000000, b=0.0000000000000000, c=8.0000000000000000.
8943 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8944 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8945 // mean(f - f_GSL): 0.0000000000000000
8946 // variance(f - f_GSL): 0.0000000000000000
8947 // stddev(f - f_GSL): 0.0000000000000000
8948 const testcase_hyperg<double>
8949 data179[19] =
8950 {
8951   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8953   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8955   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8957   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8959   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8961   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8963   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8965   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8967   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8969   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8971   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8973   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8975   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8977   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8979   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8981   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8983   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8985   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8987   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8989 };
8990 const double toler179 = 2.5000000000000020e-13;
8991 
8992 // Test data for a=10.000000000000000, b=0.0000000000000000, c=10.000000000000000.
8993 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8994 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8995 // mean(f - f_GSL): 0.0000000000000000
8996 // variance(f - f_GSL): 0.0000000000000000
8997 // stddev(f - f_GSL): 0.0000000000000000
8998 const testcase_hyperg<double>
8999 data180[19] =
9000 {
9001   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9002 	  10.000000000000000, -0.90000000000000002, 0.0 },
9003   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9004 	  10.000000000000000, -0.80000000000000004, 0.0 },
9005   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9006 	  10.000000000000000, -0.69999999999999996, 0.0 },
9007   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9008 	  10.000000000000000, -0.59999999999999998, 0.0 },
9009   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9010 	  10.000000000000000, -0.50000000000000000, 0.0 },
9011   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9012 	  10.000000000000000, -0.39999999999999991, 0.0 },
9013   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9014 	  10.000000000000000, -0.29999999999999993, 0.0 },
9015   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9016 	  10.000000000000000, -0.19999999999999996, 0.0 },
9017   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9018 	  10.000000000000000, -0.099999999999999978, 0.0 },
9019   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9020 	  10.000000000000000, 0.0000000000000000, 0.0 },
9021   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9022 	  10.000000000000000, 0.10000000000000009, 0.0 },
9023   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9024 	  10.000000000000000, 0.20000000000000018, 0.0 },
9025   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9026 	  10.000000000000000, 0.30000000000000004, 0.0 },
9027   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9028 	  10.000000000000000, 0.40000000000000013, 0.0 },
9029   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9030 	  10.000000000000000, 0.50000000000000000, 0.0 },
9031   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9032 	  10.000000000000000, 0.60000000000000009, 0.0 },
9033   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9034 	  10.000000000000000, 0.70000000000000018, 0.0 },
9035   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9036 	  10.000000000000000, 0.80000000000000004, 0.0 },
9037   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9038 	  10.000000000000000, 0.90000000000000013, 0.0 },
9039 };
9040 const double toler180 = 2.5000000000000020e-13;
9041 
9042 // Test data for a=10.000000000000000, b=0.50000000000000000, c=2.0000000000000000.
9043 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
9044 // max(|f - f_GSL| / |f_GSL|): 1.8229127098647768e-15
9045 // mean(f - f_GSL): 7.8543415046726153e-10
9046 // variance(f - f_GSL): 1.1684633485497506e-17
9047 // stddev(f - f_GSL): 3.4182793164832956e-09
9048 const testcase_hyperg<double>
9049 data181[19] =
9050 {
9051   { 0.37727530159464628, 10.000000000000000, 0.50000000000000000,
9052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9053   { 0.39816010922169059, 10.000000000000000, 0.50000000000000000,
9054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9055   { 0.42283703041362447, 10.000000000000000, 0.50000000000000000,
9056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9057   { 0.45255640448730527, 10.000000000000000, 0.50000000000000000,
9058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9059   { 0.48919507154431119, 10.000000000000000, 0.50000000000000000,
9060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9061   { 0.53569358917731902, 10.000000000000000, 0.50000000000000000,
9062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9063   { 0.59689778897029577, 10.000000000000000, 0.50000000000000000,
9064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9065   { 0.68128587569875765, 10.000000000000000, 0.50000000000000000,
9066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9067   { 0.80478739308790359, 10.000000000000000, 0.50000000000000000,
9068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9069   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9071   { 1.3408664196153621, 10.000000000000000, 0.50000000000000000,
9072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9073   { 2.0175364359923882, 10.000000000000000, 0.50000000000000000,
9074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9075   { 3.6011214553736646, 10.000000000000000, 0.50000000000000000,
9076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9077   { 8.1799429939495489, 10.000000000000000, 0.50000000000000000,
9078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9079   { 25.644834637536000, 10.000000000000000, 0.50000000000000000,
9080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9081   { 123.13738891597615, 10.000000000000000, 0.50000000000000000,
9082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9083   { 1088.7122410321385, 10.000000000000000, 0.50000000000000000,
9084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9085   { 27358.291704709951, 10.000000000000000, 0.50000000000000000,
9086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9087   { 8174369.0266732639, 10.000000000000000, 0.50000000000000000,
9088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9089 };
9090 const double toler181 = 2.5000000000000020e-13;
9091 
9092 // Test data for a=10.000000000000000, b=0.50000000000000000, c=4.0000000000000000.
9093 // max(|f - f_GSL|): 2.0008883439004421e-11 at index 18
9094 // max(|f - f_GSL| / |f_GSL|): 1.5684473872214445e-15
9095 // mean(f - f_GSL): 1.0626587329385841e-12
9096 // variance(f - f_GSL): 2.1050090066796454e-23
9097 // stddev(f - f_GSL): 4.5880377141863658e-12
9098 const testcase_hyperg<double>
9099 data182[19] =
9100 {
9101   { 0.53905528308450823, 10.000000000000000, 0.50000000000000000,
9102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9103   { 0.56235533974376162, 10.000000000000000, 0.50000000000000000,
9104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9105   { 0.58887657983263575, 10.000000000000000, 0.50000000000000000,
9106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9107   { 0.61941227047262937, 10.000000000000000, 0.50000000000000000,
9108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9109   { 0.65504896640793864, 10.000000000000000, 0.50000000000000000,
9110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9111   { 0.69731666644529977, 10.000000000000000, 0.50000000000000000,
9112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9113   { 0.74844073299399116, 10.000000000000000, 0.50000000000000000,
9114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9115   { 0.81178446800105830, 10.000000000000000, 0.50000000000000000,
9116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9117   { 0.89266981277598045, 10.000000000000000, 0.50000000000000000,
9118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9119   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9121   { 1.1497248473106778, 10.000000000000000, 0.50000000000000000,
9122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9123   { 1.3729717112654578, 10.000000000000000, 0.50000000000000000,
9124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9125   { 1.7374982340374392, 10.000000000000000, 0.50000000000000000,
9126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9127   { 2.4134479340960602, 10.000000000000000, 0.50000000000000000,
9128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9129   { 3.9191255240471192, 10.000000000000000, 0.50000000000000000,
9130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9131   { 8.3316373077761270, 10.000000000000000, 0.50000000000000000,
9132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9133   { 28.323020339843417, 10.000000000000000, 0.50000000000000000,
9134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9135   { 225.84286572747891, 10.000000000000000, 0.50000000000000000,
9136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9137   { 12757.127591286826, 10.000000000000000, 0.50000000000000000,
9138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9139 };
9140 const double toler182 = 2.5000000000000020e-13;
9141 
9142 // Test data for a=10.000000000000000, b=0.50000000000000000, c=6.0000000000000000.
9143 // max(|f - f_GSL|): 1.9895196601282805e-13 at index 18
9144 // max(|f - f_GSL| / |f_GSL|): 1.4567107859209851e-15
9145 // mean(f - f_GSL): 1.1043797455481820e-14
9146 // variance(f - f_GSL): 2.0706176432127926e-27
9147 // stddev(f - f_GSL): 4.5504039855959963e-14
9148 const testcase_hyperg<double>
9149 data183[19] =
9150 {
9151   { 0.62672622092226027, 10.000000000000000, 0.50000000000000000,
9152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9153   { 0.64931010269769840, 10.000000000000000, 0.50000000000000000,
9154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9155   { 0.67448067519076293, 10.000000000000000, 0.50000000000000000,
9156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9157   { 0.70276306239803643, 10.000000000000000, 0.50000000000000000,
9158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9159   { 0.73484179773087521, 10.000000000000000, 0.50000000000000000,
9160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9161   { 0.77162761412743874, 10.000000000000000, 0.50000000000000000,
9162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9163   { 0.81436116844816553, 10.000000000000000, 0.50000000000000000,
9164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9165   { 0.86477994787944579, 10.000000000000000, 0.50000000000000000,
9166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9167   { 0.92539820516603888, 10.000000000000000, 0.50000000000000000,
9168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9169   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9171   { 1.0945599448210315, 10.000000000000000, 0.50000000000000000,
9172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9173   { 1.2190897395597269, 10.000000000000000, 0.50000000000000000,
9174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9175   { 1.3916844336856475, 10.000000000000000, 0.50000000000000000,
9176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9177   { 1.6484497630432020, 10.000000000000000, 0.50000000000000000,
9178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9179   { 2.0717772717131155, 10.000000000000000, 0.50000000000000000,
9180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9181   { 2.8893613630810924, 10.000000000000000, 0.50000000000000000,
9182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9183   { 4.9459404075413573, 10.000000000000000, 0.50000000000000000,
9184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9185   { 13.487394149998716, 10.000000000000000, 0.50000000000000000,
9186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9187   { 136.57616044014080, 10.000000000000000, 0.50000000000000000,
9188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9189 };
9190 const double toler183 = 2.5000000000000020e-13;
9191 
9192 // Test data for a=10.000000000000000, b=0.50000000000000000, c=8.0000000000000000.
9193 // max(|f - f_GSL|): 1.2434497875801753e-14 at index 18
9194 // max(|f - f_GSL| / |f_GSL|): 1.3245081211977792e-15
9195 // mean(f - f_GSL): 8.5311874523827817e-16
9196 // variance(f - f_GSL): 7.8655509529357183e-30
9197 // stddev(f - f_GSL): 2.8045589587198410e-15
9198 const testcase_hyperg<double>
9199 data184[19] =
9200 {
9201   { 0.68421604440344319, 10.000000000000000, 0.50000000000000000,
9202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9203   { 0.70548098055548925, 10.000000000000000, 0.50000000000000000,
9204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9205   { 0.72884342311710337, 10.000000000000000, 0.50000000000000000,
9206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9207   { 0.75466953437856232, 10.000000000000000, 0.50000000000000000,
9208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9209   { 0.78342090924662589, 10.000000000000000, 0.50000000000000000,
9210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9211   { 0.81568884278645115, 10.000000000000000, 0.50000000000000000,
9212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9213   { 0.85224480241465261, 10.000000000000000, 0.50000000000000000,
9214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9215   { 0.89411692571131685, 10.000000000000000, 0.50000000000000000,
9216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9217   { 0.94270986892954811, 10.000000000000000, 0.50000000000000000,
9218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9219   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9221   { 1.0688682849120232, 10.000000000000000, 0.50000000000000000,
9222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9223   { 1.1537004376097553, 10.000000000000000, 0.50000000000000000,
9224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9225   { 1.2615455028370031, 10.000000000000000, 0.50000000000000000,
9226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9227   { 1.4045541456153443, 10.000000000000000, 0.50000000000000000,
9228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9229   { 1.6057216489444517, 10.000000000000000, 0.50000000000000000,
9230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9231   { 1.9146603020550739, 10.000000000000000, 0.50000000000000000,
9232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9233   { 2.4617931307620307, 10.000000000000000, 0.50000000000000000,
9234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9235   { 3.7267799624996498, 10.000000000000000, 0.50000000000000000,
9236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9237   { 9.3880118036248721, 10.000000000000000, 0.50000000000000000,
9238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9239 };
9240 const double toler184 = 2.5000000000000020e-13;
9241 
9242 // Test data for a=10.000000000000000, b=0.50000000000000000, c=10.000000000000000.
9243 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
9244 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
9245 // mean(f - f_GSL): 5.8432790769745078e-18
9246 // variance(f - f_GSL): 1.1262748212790853e-32
9247 // stddev(f - f_GSL): 1.0612609581432294e-16
9248 const testcase_hyperg<double>
9249 data185[19] =
9250 {
9251   { 0.72547625011001160, 10.000000000000000, 0.50000000000000000,
9252 	  10.000000000000000, -0.90000000000000002, 0.0 },
9253   { 0.74535599249992990, 10.000000000000000, 0.50000000000000000,
9254 	  10.000000000000000, -0.80000000000000004, 0.0 },
9255   { 0.76696498884737041, 10.000000000000000, 0.50000000000000000,
9256 	  10.000000000000000, -0.69999999999999996, 0.0 },
9257   { 0.79056941504209477, 10.000000000000000, 0.50000000000000000,
9258 	  10.000000000000000, -0.59999999999999998, 0.0 },
9259   { 0.81649658092772603, 10.000000000000000, 0.50000000000000000,
9260 	  10.000000000000000, -0.50000000000000000, 0.0 },
9261   { 0.84515425472851669, 10.000000000000000, 0.50000000000000000,
9262 	  10.000000000000000, -0.39999999999999991, 0.0 },
9263   { 0.87705801930702931, 10.000000000000000, 0.50000000000000000,
9264 	  10.000000000000000, -0.29999999999999993, 0.0 },
9265   { 0.91287092917527690, 10.000000000000000, 0.50000000000000000,
9266 	  10.000000000000000, -0.19999999999999996, 0.0 },
9267   { 0.95346258924559224, 10.000000000000000, 0.50000000000000000,
9268 	  10.000000000000000, -0.099999999999999978, 0.0 },
9269   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9270 	  10.000000000000000, 0.0000000000000000, 0.0 },
9271   { 1.0540925533894598, 10.000000000000000, 0.50000000000000000,
9272 	  10.000000000000000, 0.10000000000000009, 0.0 },
9273   { 1.1180339887498949, 10.000000000000000, 0.50000000000000000,
9274 	  10.000000000000000, 0.20000000000000018, 0.0 },
9275   { 1.1952286093343938, 10.000000000000000, 0.50000000000000000,
9276 	  10.000000000000000, 0.30000000000000004, 0.0 },
9277   { 1.2909944487358058, 10.000000000000000, 0.50000000000000000,
9278 	  10.000000000000000, 0.40000000000000013, 0.0 },
9279   { 1.4142135623730951, 10.000000000000000, 0.50000000000000000,
9280 	  10.000000000000000, 0.50000000000000000, 0.0 },
9281   { 1.5811388300841900, 10.000000000000000, 0.50000000000000000,
9282 	  10.000000000000000, 0.60000000000000009, 0.0 },
9283   { 1.8257418583505542, 10.000000000000000, 0.50000000000000000,
9284 	  10.000000000000000, 0.70000000000000018, 0.0 },
9285   { 2.2360679774997898, 10.000000000000000, 0.50000000000000000,
9286 	  10.000000000000000, 0.80000000000000004, 0.0 },
9287   { 3.1622776601683809, 10.000000000000000, 0.50000000000000000,
9288 	  10.000000000000000, 0.90000000000000013, 0.0 },
9289 };
9290 const double toler185 = 2.5000000000000020e-13;
9291 
9292 // Test data for a=10.000000000000000, b=1.0000000000000000, c=2.0000000000000000.
9293 // max(|f - f_GSL|): 2.0861625671386719e-07 at index 18
9294 // max(|f - f_GSL| / |f_GSL|): 1.6897916810721003e-15
9295 // mean(f - f_GSL): 1.0989192059253727e-08
9296 // variance(f - f_GSL): 2.2903477685061008e-15
9297 // stddev(f - f_GSL): 4.7857577963224392e-08
9298 const testcase_hyperg<double>
9299 data186[19] =
9300 {
9301   { 0.12307420104127866, 10.000000000000000, 1.0000000000000000,
9302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9303   { 0.13818870041457434, 10.000000000000000, 1.0000000000000000,
9304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9305   { 0.15739165631811705, 10.000000000000000, 1.0000000000000000,
9306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9307   { 0.18249038606882081, 10.000000000000000, 1.0000000000000000,
9308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9309   { 0.21644171225027795, 10.000000000000000, 1.0000000000000000,
9310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9311   { 0.26433326159804149, 10.000000000000000, 1.0000000000000000,
9312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9313   { 0.33544459430654527, 10.000000000000000, 1.0000000000000000,
9314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9315   { 0.44788516696232511, 10.000000000000000, 1.0000000000000000,
9316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9317   { 0.63989153514168373, 10.000000000000000, 1.0000000000000000,
9318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9319   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9321   { 1.7568608796813312, 10.000000000000000, 1.0000000000000000,
9322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9323   { 3.5836558871799102, 10.000000000000000, 1.0000000000000000,
9324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9325   { 8.8077526749963226, 10.000000000000000, 1.0000000000000000,
9326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9327   { 27.285841702089265, 10.000000000000000, 1.0000000000000000,
9328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9329   { 113.55555555555557, 10.000000000000000, 1.0000000000000000,
9330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9331   { 706.24023437500091, 10.000000000000000, 1.0000000000000000,
9332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9333   { 8064.1687976652511, 10.000000000000000, 1.0000000000000000,
9334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9335   { 271267.22222222196, 10.000000000000000, 1.0000000000000000,
9336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9337   { 123456790.00000113, 10.000000000000000, 1.0000000000000000,
9338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9339 };
9340 const double toler186 = 2.5000000000000020e-13;
9341 
9342 // Test data for a=10.000000000000000, b=1.0000000000000000, c=4.0000000000000000.
9343 // max(|f - f_GSL|): 2.6193447411060333e-10 at index 18
9344 // max(|f - f_GSL| / |f_GSL|): 1.6039867544159698e-15
9345 // mean(f - f_GSL): 1.3861192895235850e-11
9346 // variance(f - f_GSL): 3.6088478524883243e-21
9347 // stddev(f - f_GSL): 6.0073686856129647e-11
9348 const testcase_hyperg<double>
9349 data187[19] =
9350 {
9351   { 0.28363728383055781, 10.000000000000000, 1.0000000000000000,
9352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9353   { 0.30933003169808387, 10.000000000000000, 1.0000000000000000,
9354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9355   { 0.33998437757128797, 10.000000000000000, 1.0000000000000000,
9356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9357   { 0.37713553224291113, 10.000000000000000, 1.0000000000000000,
9358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9359   { 0.42299736538419669, 10.000000000000000, 1.0000000000000000,
9360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9361   { 0.48086597727600089, 10.000000000000000, 1.0000000000000000,
9362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9363   { 0.55583495759293033, 10.000000000000000, 1.0000000000000000,
9364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9365   { 0.65612850114039678, 10.000000000000000, 1.0000000000000000,
9366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9367   { 0.79573668772968142, 10.000000000000000, 1.0000000000000000,
9368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9369   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9371   { 1.3184712058058303, 10.000000000000000, 1.0000000000000000,
9372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9373   { 1.8576958065941236, 10.000000000000000, 1.0000000000000000,
9374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9375   { 2.8759509651764228, 10.000000000000000, 1.0000000000000000,
9376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9377   { 5.1046225531822289, 10.000000000000000, 1.0000000000000000,
9378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9379   { 11.095238095238095, 10.000000000000000, 1.0000000000000000,
9380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9381   { 32.797154017857174, 10.000000000000000, 1.0000000000000000,
9382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9383   { 158.01935680536548, 10.000000000000000, 1.0000000000000000,
9384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9385   { 1815.9523809523814, 10.000000000000000, 1.0000000000000000,
9386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9387   { 163302.14285714392, 10.000000000000000, 1.0000000000000000,
9388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9389 };
9390 const double toler187 = 2.5000000000000020e-13;
9391 
9392 // Test data for a=10.000000000000000, b=1.0000000000000000, c=6.0000000000000000.
9393 // max(|f - f_GSL|): 2.0463630789890885e-12 at index 18
9394 // max(|f - f_GSL| / |f_GSL|): 1.5238873992471854e-15
9395 // mean(f - f_GSL): 1.1029773585697082e-13
9396 // variance(f - f_GSL): 2.1981059026132227e-25
9397 // stddev(f - f_GSL): 4.6883962104468326e-13
9398 const testcase_hyperg<double>
9399 data188[19] =
9400 {
9401   { 0.39006633302741811, 10.000000000000000, 1.0000000000000000,
9402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9403   { 0.41898885698103278, 10.000000000000000, 1.0000000000000000,
9404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9405   { 0.45245557983812590, 10.000000000000000, 1.0000000000000000,
9406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9407   { 0.49160548618861627, 10.000000000000000, 1.0000000000000000,
9408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9409   { 0.53798419230517991, 10.000000000000000, 1.0000000000000000,
9410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9411   { 0.59373881442067322, 10.000000000000000, 1.0000000000000000,
9412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9413   { 0.66193391357076092, 10.000000000000000, 1.0000000000000000,
9414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9415   { 0.74708402736952118, 10.000000000000000, 1.0000000000000000,
9416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9417   { 0.85609281019430605, 10.000000000000000, 1.0000000000000000,
9418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9419   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9421   { 1.1974451135148187, 10.000000000000000, 1.0000000000000000,
9422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9423   { 1.4820886036706358, 10.000000000000000, 1.0000000000000000,
9424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9425   { 1.9201183180477521, 10.000000000000000, 1.0000000000000000,
9426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9427   { 2.6569338297733367, 10.000000000000000, 1.0000000000000000,
9428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9429   { 4.0634920634920650, 10.000000000000000, 1.0000000000000000,
9430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9431   { 7.3102678571428568, 10.000000000000000, 1.0000000000000000,
9432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9433   { 17.512574302697782, 10.000000000000000, 1.0000000000000000,
9434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9435   { 74.206349206349131, 10.000000000000000, 1.0000000000000000,
9436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9437   { 1342.8571428571502, 10.000000000000000, 1.0000000000000000,
9438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9439 };
9440 const double toler188 = 2.5000000000000020e-13;
9441 
9442 // Test data for a=10.000000000000000, b=1.0000000000000000, c=8.0000000000000000.
9443 // max(|f - f_GSL|): 7.8159700933611020e-14 at index 18
9444 // max(|f - f_GSL| / |f_GSL|): 1.4210854715201975e-15
9445 // mean(f - f_GSL): 4.6629367034256575e-15
9446 // variance(f - f_GSL): 3.1677071819086927e-28
9447 // stddev(f - f_GSL): 1.7798053775367387e-14
9448 const testcase_hyperg<double>
9449 data189[19] =
9450 {
9451   { 0.46726928123633210, 10.000000000000000, 1.0000000000000000,
9452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9453   { 0.49687547629934464, 10.000000000000000, 1.0000000000000000,
9454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9455   { 0.53045208856322223, 10.000000000000000, 1.0000000000000000,
9456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9457   { 0.56884765624999989, 10.000000000000000, 1.0000000000000000,
9458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9459   { 0.61316872427983504, 10.000000000000000, 1.0000000000000000,
9460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9461   { 0.66488500161969544, 10.000000000000000, 1.0000000000000000,
9462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9463   { 0.72598998634501621, 10.000000000000000, 1.0000000000000000,
9464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9465   { 0.79925411522633760, 10.000000000000000, 1.0000000000000000,
9466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9467   { 0.88863845062192182, 10.000000000000000, 1.0000000000000000,
9468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9469   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9471   { 1.1423563481176653, 10.000000000000000, 1.0000000000000000,
9472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9473   { 1.3302951388888891, 10.000000000000000, 1.0000000000000000,
9474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9475   { 1.5889212827988335, 10.000000000000000, 1.0000000000000000,
9476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9477   { 1.9650205761316886, 10.000000000000000, 1.0000000000000000,
9478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9479   { 2.5555555555555549, 10.000000000000000, 1.0000000000000000,
9480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9481   { 3.5937500000000013, 10.000000000000000, 1.0000000000000000,
9482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9483   { 5.7818930041152274, 10.000000000000000, 1.0000000000000000,
9484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9485   { 12.222222222222220, 10.000000000000000, 1.0000000000000000,
9486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9487   { 55.000000000000114, 10.000000000000000, 1.0000000000000000,
9488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9489 };
9490 const double toler189 = 2.5000000000000020e-13;
9491 
9492 // Test data for a=10.000000000000000, b=1.0000000000000000, c=10.000000000000000.
9493 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
9494 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
9495 // mean(f - f_GSL): 7.5962628000668607e-17
9496 // variance(f - f_GSL): 1.6955391669463862e-31
9497 // stddev(f - f_GSL): 4.1176925175957300e-16
9498 const testcase_hyperg<double>
9499 data190[19] =
9500 {
9501   { 0.52631578947368429, 10.000000000000000, 1.0000000000000000,
9502 	  10.000000000000000, -0.90000000000000002, 0.0 },
9503   { 0.55555555555555558, 10.000000000000000, 1.0000000000000000,
9504 	  10.000000000000000, -0.80000000000000004, 0.0 },
9505   { 0.58823529411764708, 10.000000000000000, 1.0000000000000000,
9506 	  10.000000000000000, -0.69999999999999996, 0.0 },
9507   { 0.62500000000000000, 10.000000000000000, 1.0000000000000000,
9508 	  10.000000000000000, -0.59999999999999998, 0.0 },
9509   { 0.66666666666666663, 10.000000000000000, 1.0000000000000000,
9510 	  10.000000000000000, -0.50000000000000000, 0.0 },
9511   { 0.71428571428571430, 10.000000000000000, 1.0000000000000000,
9512 	  10.000000000000000, -0.39999999999999991, 0.0 },
9513   { 0.76923076923076938, 10.000000000000000, 1.0000000000000000,
9514 	  10.000000000000000, -0.29999999999999993, 0.0 },
9515   { 0.83333333333333337, 10.000000000000000, 1.0000000000000000,
9516 	  10.000000000000000, -0.19999999999999996, 0.0 },
9517   { 0.90909090909090906, 10.000000000000000, 1.0000000000000000,
9518 	  10.000000000000000, -0.099999999999999978, 0.0 },
9519   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9520 	  10.000000000000000, 0.0000000000000000, 0.0 },
9521   { 1.1111111111111112, 10.000000000000000, 1.0000000000000000,
9522 	  10.000000000000000, 0.10000000000000009, 0.0 },
9523   { 1.2500000000000002, 10.000000000000000, 1.0000000000000000,
9524 	  10.000000000000000, 0.20000000000000018, 0.0 },
9525   { 1.4285714285714286, 10.000000000000000, 1.0000000000000000,
9526 	  10.000000000000000, 0.30000000000000004, 0.0 },
9527   { 1.6666666666666670, 10.000000000000000, 1.0000000000000000,
9528 	  10.000000000000000, 0.40000000000000013, 0.0 },
9529   { 2.0000000000000000, 10.000000000000000, 1.0000000000000000,
9530 	  10.000000000000000, 0.50000000000000000, 0.0 },
9531   { 2.5000000000000009, 10.000000000000000, 1.0000000000000000,
9532 	  10.000000000000000, 0.60000000000000009, 0.0 },
9533   { 3.3333333333333348, 10.000000000000000, 1.0000000000000000,
9534 	  10.000000000000000, 0.70000000000000018, 0.0 },
9535   { 5.0000000000000009, 10.000000000000000, 1.0000000000000000,
9536 	  10.000000000000000, 0.80000000000000004, 0.0 },
9537   { 10.000000000000011, 10.000000000000000, 1.0000000000000000,
9538 	  10.000000000000000, 0.90000000000000013, 0.0 },
9539 };
9540 const double toler190 = 2.5000000000000020e-13;
9541 
9542 // Test data for a=10.000000000000000, b=2.0000000000000000, c=2.0000000000000000.
9543 // max(|f - f_GSL|): 2.2888183593750000e-05 at index 18
9544 // max(|f - f_GSL| / |f_GSL|): 2.4795532226562509e-15
9545 // mean(f - f_GSL): 1.2059140510950354e-06
9546 // variance(f - f_GSL): 2.7568813079896666e-11
9547 // stddev(f - f_GSL): 5.2506012112801583e-06
9548 const testcase_hyperg<double>
9549 data191[19] =
9550 {
9551   { 0.0016310376661280216, 10.000000000000000, 2.0000000000000000,
9552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9553   { 0.0028007538972582421, 10.000000000000000, 2.0000000000000000,
9554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9555   { 0.0049603324681551939, 10.000000000000000, 2.0000000000000000,
9556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9557   { 0.0090949470177292789, 10.000000000000000, 2.0000000000000000,
9558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9559   { 0.017341529915832606, 10.000000000000000, 2.0000000000000000,
9560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9561   { 0.034571613033607791, 10.000000000000000, 2.0000000000000000,
9562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9563   { 0.072538150286405839, 10.000000000000000, 2.0000000000000000,
9564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9565   { 0.16150558288984579, 10.000000000000000, 2.0000000000000000,
9566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9567   { 0.38554328942953142, 10.000000000000000, 2.0000000000000000,
9568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9569   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9571   { 2.8679719907924444, 10.000000000000000, 2.0000000000000000,
9572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9573   { 9.3132257461548065, 10.000000000000000, 2.0000000000000000,
9574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9575   { 35.401331746414378, 10.000000000000000, 2.0000000000000000,
9576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9577   { 165.38171687920246, 10.000000000000000, 2.0000000000000000,
9578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9579   { 1024.0000000000000, 10.000000000000000, 2.0000000000000000,
9580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9581   { 9536.7431640625218, 10.000000000000000, 2.0000000000000000,
9582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9583   { 169350.87808430390, 10.000000000000000, 2.0000000000000000,
9584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9585   { 9765624.9999999963, 10.000000000000000, 2.0000000000000000,
9586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9587   { 10000000000.000111, 10.000000000000000, 2.0000000000000000,
9588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9589 };
9590 const double toler191 = 2.5000000000000020e-13;
9591 
9592 // Test data for a=10.000000000000000, b=2.0000000000000000, c=4.0000000000000000.
9593 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
9594 // max(|f - f_GSL| / |f_GSL|): 1.4958811384436608e-15
9595 // mean(f - f_GSL): 7.8582773037277017e-10
9596 // variance(f - f_GSL): 1.1683981904064149e-17
9597 // stddev(f - f_GSL): 3.4181840067591665e-09
9598 const testcase_hyperg<double>
9599 data192[19] =
9600 {
9601   { 0.071191280690193537, 10.000000000000000, 2.0000000000000000,
9602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9603   { 0.085646504654238384, 10.000000000000000, 2.0000000000000000,
9604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9605   { 0.10478215656371109, 10.000000000000000, 2.0000000000000000,
9606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9607   { 0.13074816337653578, 10.000000000000000, 2.0000000000000000,
9608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9609   { 0.16701141666848118, 10.000000000000000, 2.0000000000000000,
9610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9611   { 0.21939323375313963, 10.000000000000000, 2.0000000000000000,
9612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9613   { 0.29813515331786639, 10.000000000000000, 2.0000000000000000,
9614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9615   { 0.42225974638874397, 10.000000000000000, 2.0000000000000000,
9616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9617   { 0.62942145962174878, 10.000000000000000, 2.0000000000000000,
9618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9619   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9621   { 1.7218685262373197, 10.000000000000000, 2.0000000000000000,
9622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9623   { 3.2855760483514738, 10.000000000000000, 2.0000000000000000,
9624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9625   { 7.1616652508907093, 10.000000000000000, 2.0000000000000000,
9626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9627   { 18.612326808485950, 10.000000000000000, 2.0000000000000000,
9628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9629   { 61.476190476190474, 10.000000000000000, 2.0000000000000000,
9630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9631   { 286.27580915178623, 10.000000000000000, 2.0000000000000000,
9632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9633   { 2274.9441142102414, 10.000000000000000, 2.0000000000000000,
9634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9635   { 47229.761904761865, 10.000000000000000, 2.0000000000000000,
9636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9637   { 9961460.7142858077, 10.000000000000000, 2.0000000000000000,
9638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9639 };
9640 const double toler192 = 2.5000000000000020e-13;
9641 
9642 // Test data for a=10.000000000000000, b=2.0000000000000000, c=6.0000000000000000.
9643 // max(|f - f_GSL|): 8.7311491370201111e-11 at index 18
9644 // max(|f - f_GSL| / |f_GSL|): 1.5843951771650161e-15
9645 // mean(f - f_GSL): 4.6467391338242840e-12
9646 // variance(f - f_GSL): 4.0072766661644994e-22
9647 // stddev(f - f_GSL): 2.0018183399510804e-11
9648 const testcase_hyperg<double>
9649 data193[19] =
9650 {
9651   { 0.14747230019381058, 10.000000000000000, 2.0000000000000000,
9652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9653   { 0.17073600100690609, 10.000000000000000, 2.0000000000000000,
9654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9655   { 0.19982795745135354, 10.000000000000000, 2.0000000000000000,
9656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9657   { 0.23681776864188053, 10.000000000000000, 2.0000000000000000,
9658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9659   { 0.28475624360398011, 10.000000000000000, 2.0000000000000000,
9660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9661   { 0.34827500743063161, 10.000000000000000, 2.0000000000000000,
9662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9663   { 0.43464829159684687, 10.000000000000000, 2.0000000000000000,
9664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9665   { 0.55576053438064787, 10.000000000000000, 2.0000000000000000,
9666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9667   { 0.73195020913445530, 10.000000000000000, 2.0000000000000000,
9668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9669   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9671   { 1.4310223867822929, 10.000000000000000, 2.0000000000000000,
9672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9673   { 2.1742563399057566, 10.000000000000000, 2.0000000000000000,
9674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9675   { 3.5769231236256043, 10.000000000000000, 2.0000000000000000,
9676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9677   { 6.5620441134844469, 10.000000000000000, 2.0000000000000000,
9678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9679   { 14.063492063492063, 10.000000000000000, 2.0000000000000000,
9680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9681   { 38.085937500000036, 10.000000000000000, 2.0000000000000000,
9682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9683   { 150.92973632068330, 10.000000000000000, 2.0000000000000000,
9684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9685   { 1212.3015873015852, 10.000000000000000, 2.0000000000000000,
9686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9687   { 55107.142857143110, 10.000000000000000, 2.0000000000000000,
9688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9689 };
9690 const double toler193 = 2.5000000000000020e-13;
9691 
9692 // Test data for a=10.000000000000000, b=2.0000000000000000, c=8.0000000000000000.
9693 // max(|f - f_GSL|): 1.8189894035458565e-12 at index 18
9694 // max(|f - f_GSL| / |f_GSL|): 1.4848893090170230e-15
9695 // mean(f - f_GSL): 1.0027066896088256e-13
9696 // variance(f - f_GSL): 1.7322804840633983e-25
9697 // stddev(f - f_GSL): 4.1620673757922257e-13
9698 const testcase_hyperg<double>
9699 data194[19] =
9700 {
9701   { 0.21658059714090577, 10.000000000000000, 2.0000000000000000,
9702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9703   { 0.24513539602702861, 10.000000000000000, 2.0000000000000000,
9704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9705   { 0.27967018274845046, 10.000000000000000, 2.0000000000000000,
9706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9707   { 0.32196044921875022, 10.000000000000000, 2.0000000000000000,
9708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9709   { 0.37448559670781911, 10.000000000000000, 2.0000000000000000,
9710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9711   { 0.44078856032208802, 10.000000000000000, 2.0000000000000000,
9712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9713   { 0.52606701446027793, 10.000000000000000, 2.0000000000000000,
9714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9715   { 0.63818158436213956, 10.000000000000000, 2.0000000000000000,
9716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9717   { 0.78944971882612769, 10.000000000000000, 2.0000000000000000,
9718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9719   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9721   { 1.3044251384443430, 10.000000000000000, 2.0000000000000000,
9722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9723   { 1.7659505208333344, 10.000000000000000, 2.0000000000000000,
9724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9725   { 2.5093710953769270, 10.000000000000000, 2.0000000000000000,
9726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9727   { 3.8065843621399202, 10.000000000000000, 2.0000000000000000,
9728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9729   { 6.3333333333333313, 10.000000000000000, 2.0000000000000000,
9730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9731   { 12.109375000000004, 10.000000000000000, 2.0000000000000000,
9732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9733   { 29.115226337448608, 10.000000000000000, 2.0000000000000000,
9734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9735   { 108.33333333333330, 10.000000000000000, 2.0000000000000000,
9736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9737   { 1225.0000000000023, 10.000000000000000, 2.0000000000000000,
9738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9739 };
9740 const double toler194 = 2.5000000000000020e-13;
9741 
9742 // Test data for a=10.000000000000000, b=2.0000000000000000, c=10.000000000000000.
9743 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
9744 // max(|f - f_GSL| / |f_GSL|): 4.2632564145605916e-16
9745 // mean(f - f_GSL): 2.3636063866361887e-15
9746 // variance(f - f_GSL): 9.5093179694074762e-29
9747 // stddev(f - f_GSL): 9.7515731907254209e-15
9748 const testcase_hyperg<double>
9749 data195[19] =
9750 {
9751   { 0.27700831024930750, 10.000000000000000, 2.0000000000000000,
9752 	  10.000000000000000, -0.90000000000000002, 0.0 },
9753   { 0.30864197530864196, 10.000000000000000, 2.0000000000000000,
9754 	  10.000000000000000, -0.80000000000000004, 0.0 },
9755   { 0.34602076124567477, 10.000000000000000, 2.0000000000000000,
9756 	  10.000000000000000, -0.69999999999999996, 0.0 },
9757   { 0.39062500000000000, 10.000000000000000, 2.0000000000000000,
9758 	  10.000000000000000, -0.59999999999999998, 0.0 },
9759   { 0.44444444444444442, 10.000000000000000, 2.0000000000000000,
9760 	  10.000000000000000, -0.50000000000000000, 0.0 },
9761   { 0.51020408163265318, 10.000000000000000, 2.0000000000000000,
9762 	  10.000000000000000, -0.39999999999999991, 0.0 },
9763   { 0.59171597633136108, 10.000000000000000, 2.0000000000000000,
9764 	  10.000000000000000, -0.29999999999999993, 0.0 },
9765   { 0.69444444444444442, 10.000000000000000, 2.0000000000000000,
9766 	  10.000000000000000, -0.19999999999999996, 0.0 },
9767   { 0.82644628099173545, 10.000000000000000, 2.0000000000000000,
9768 	  10.000000000000000, -0.099999999999999978, 0.0 },
9769   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9770 	  10.000000000000000, 0.0000000000000000, 0.0 },
9771   { 1.2345679012345683, 10.000000000000000, 2.0000000000000000,
9772 	  10.000000000000000, 0.10000000000000009, 0.0 },
9773   { 1.5625000000000007, 10.000000000000000, 2.0000000000000000,
9774 	  10.000000000000000, 0.20000000000000018, 0.0 },
9775   { 2.0408163265306127, 10.000000000000000, 2.0000000000000000,
9776 	  10.000000000000000, 0.30000000000000004, 0.0 },
9777   { 2.7777777777777795, 10.000000000000000, 2.0000000000000000,
9778 	  10.000000000000000, 0.40000000000000013, 0.0 },
9779   { 4.0000000000000000, 10.000000000000000, 2.0000000000000000,
9780 	  10.000000000000000, 0.50000000000000000, 0.0 },
9781   { 6.2500000000000027, 10.000000000000000, 2.0000000000000000,
9782 	  10.000000000000000, 0.60000000000000009, 0.0 },
9783   { 11.111111111111125, 10.000000000000000, 2.0000000000000000,
9784 	  10.000000000000000, 0.70000000000000018, 0.0 },
9785   { 25.000000000000007, 10.000000000000000, 2.0000000000000000,
9786 	  10.000000000000000, 0.80000000000000004, 0.0 },
9787   { 100.00000000000023, 10.000000000000000, 2.0000000000000000,
9788 	  10.000000000000000, 0.90000000000000013, 0.0 },
9789 };
9790 const double toler195 = 2.5000000000000020e-13;
9791 
9792 // Test data for a=10.000000000000000, b=5.0000000000000000, c=2.0000000000000000.
9793 // max(|f - f_GSL|): 0.81250000000000000 at index 18
9794 // max(|f - f_GSL| / |f_GSL|): 1.8182428501096257e-15
9795 // mean(f - f_GSL): 0.042765168793266639
9796 // variance(f - f_GSL): 0.034744884250260212
9797 // stddev(f - f_GSL): 0.18639979680852714
9798 const testcase_hyperg<double>
9799 data196[19] =
9800 {
9801   { 0.00063586451658060813, 10.000000000000000, 5.0000000000000000,
9802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9803   { 0.0010334743461763829, 10.000000000000000, 5.0000000000000000,
9804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9805   { 0.0015326246054669763, 10.000000000000000, 5.0000000000000000,
9806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9807   { 0.0019007018181583513, 10.000000000000000, 5.0000000000000000,
9808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9809   { 0.0012845577715431562, 10.000000000000000, 5.0000000000000000,
9810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9811   { -0.0027213806178060305, 10.000000000000000, 5.0000000000000000,
9812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9813   { -0.015121744574954044, 10.000000000000000, 5.0000000000000000,
9814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9815   { -0.036637840562974290, 10.000000000000000, 5.0000000000000000,
9816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9817   { 0.019117849062621605, 10.000000000000000, 5.0000000000000000,
9818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9819   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9821   { 9.8116901852350615, 10.000000000000000, 5.0000000000000000,
9822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9823   { 84.255589172244427, 10.000000000000000, 5.0000000000000000,
9824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9825   { 773.87517619421294, 10.000000000000000, 5.0000000000000000,
9826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9827   { 8556.9725363054076, 10.000000000000000, 5.0000000000000000,
9828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9829   { 129023.99999999996, 10.000000000000000, 5.0000000000000000,
9830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9831   { 3174543.3807373112, 10.000000000000000, 5.0000000000000000,
9832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9833   { 175133896.95814583, 10.000000000000000, 5.0000000000000000,
9834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9835   { 43564453125.000061, 10.000000000000000, 5.0000000000000000,
9836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9837   { 446860000000007.00, 10.000000000000000, 5.0000000000000000,
9838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9839 };
9840 const double toler196 = 2.5000000000000020e-13;
9841 
9842 // Test data for a=10.000000000000000, b=5.0000000000000000, c=4.0000000000000000.
9843 // max(|f - f_GSL|): 0.00039672851562500000 at index 18
9844 // max(|f - f_GSL| / |f_GSL|): 1.6882064494680641e-15
9845 // mean(f - f_GSL): 2.0884382210121993e-05
9846 // variance(f - f_GSL): 8.2836958019297269e-09
9847 // stddev(f - f_GSL): 9.1014810893226203e-05
9848 const testcase_hyperg<double>
9849 data197[19] =
9850 {
9851   { -0.00030045430691814646, 10.000000000000000, 5.0000000000000000,
9852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9853   { -0.00031119487747322054, 10.000000000000000, 5.0000000000000000,
9854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9855   { -0.00014589213141656318, 10.000000000000000, 5.0000000000000000,
9856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9857   { 0.00056843418860824636, 10.000000000000000, 5.0000000000000000,
9858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9859   { 0.0028902549859721747, 10.000000000000000, 5.0000000000000000,
9860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9861   { 0.0098776037238877245, 10.000000000000000, 5.0000000000000000,
9862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9863   { 0.030689217428863859, 10.000000000000000, 5.0000000000000000,
9864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9865   { 0.094211590019076558, 10.000000000000000, 5.0000000000000000,
9866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9867   { 0.29791981455918370, 10.000000000000000, 5.0000000000000000,
9868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9869   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9871   { 3.6646308771236793, 10.000000000000000, 5.0000000000000000,
9872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9873   { 15.133991837501567, 10.000000000000000, 5.0000000000000000,
9874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9875   { 73.331330046144089, 10.000000000000000, 5.0000000000000000,
9876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9877   { 441.01791167787303, 10.000000000000000, 5.0000000000000000,
9878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9879   { 3583.9999999999991, 10.000000000000000, 5.0000000000000000,
9880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9881   { 45299.530029296984, 10.000000000000000, 5.0000000000000000,
9882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9883   { 1157231.0002427436, 10.000000000000000, 5.0000000000000000,
9884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9885   { 107421875.00000016, 10.000000000000000, 5.0000000000000000,
9886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9887   { 235000000000.00293, 10.000000000000000, 5.0000000000000000,
9888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9889 };
9890 const double toler197 = 2.5000000000000020e-13;
9891 
9892 // Test data for a=10.000000000000000, b=5.0000000000000000, c=6.0000000000000000.
9893 // max(|f - f_GSL|): 9.5367431640625000e-07 at index 18
9894 // max(|f - f_GSL| / |f_GSL|): 1.6314276114917587e-15
9895 // mean(f - f_GSL): 5.0242811922592076e-08
9896 // variance(f - f_GSL): 4.7862904884501567e-14
9897 // stddev(f - f_GSL): 2.1877592391417655e-07
9898 const testcase_hyperg<double>
9899 data198[19] =
9900 {
9901   { 0.0058530497315413248, 10.000000000000000, 5.0000000000000000,
9902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9903   { 0.0088526869356855397, 10.000000000000000, 5.0000000000000000,
9904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9905   { 0.013770987983442959, 10.000000000000000, 5.0000000000000000,
9906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9907   { 0.022108932690960776, 10.000000000000000, 5.0000000000000000,
9908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9909   { 0.036786236450921550, 10.000000000000000, 5.0000000000000000,
9910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9911   { 0.063750669040426408, 10.000000000000000, 5.0000000000000000,
9912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9913   { 0.11577228680714466, 10.000000000000000, 5.0000000000000000,
9914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9915   { 0.22197573416125760, 10.000000000000000, 5.0000000000000000,
9916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9917   { 0.45361312968415324, 10.000000000000000, 5.0000000000000000,
9918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9919   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9921   { 2.4162889363082747, 10.000000000000000, 5.0000000000000000,
9922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9923   { 6.5381564791240541, 10.000000000000000, 5.0000000000000000,
9924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9925   { 20.415771011498428, 10.000000000000000, 5.0000000000000000,
9926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9927   { 76.870682056629448, 10.000000000000000, 5.0000000000000000,
9928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9929   { 373.58730158730162, 10.000000000000000, 5.0000000000000000,
9930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9931   { 2626.2555803571477, 10.000000000000000, 5.0000000000000000,
9932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9933   { 33060.960671081237, 10.000000000000000, 5.0000000000000000,
9934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9935   { 1203521.8253968258, 10.000000000000000, 5.0000000000000000,
9936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9937   { 584564285.71428990, 10.000000000000000, 5.0000000000000000,
9938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9939 };
9940 const double toler198 = 2.5000000000000020e-13;
9941 
9942 // Test data for a=10.000000000000000, b=5.0000000000000000, c=8.0000000000000000.
9943 // max(|f - f_GSL|): 7.4505805969238281e-09 at index 18
9944 // max(|f - f_GSL| / |f_GSL|): 1.6196914341138665e-15
9945 // mean(f - f_GSL): 3.9331532183208954e-10
9946 // variance(f - f_GSL): 2.9206631793126476e-18
9947 // stddev(f - f_GSL): 1.7089947862157589e-09
9948 const testcase_hyperg<double>
9949 data199[19] =
9950 {
9951   { 0.020248990107069573, 10.000000000000000, 5.0000000000000000,
9952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9953   { 0.027876687750502366, 10.000000000000000, 5.0000000000000000,
9954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9955   { 0.039154648888447607, 10.000000000000000, 5.0000000000000000,
9956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9957   { 0.056251883506774715, 10.000000000000000, 5.0000000000000000,
9958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9959   { 0.082914189910074473, 10.000000000000000, 5.0000000000000000,
9960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9961   { 0.12585357817786472, 10.000000000000000, 5.0000000000000000,
9962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9963   { 0.19761423206224940, 10.000000000000000, 5.0000000000000000,
9964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9965   { 0.32280443863359237, 10.000000000000000, 5.0000000000000000,
9966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9967   { 0.55250024062839420, 10.000000000000000, 5.0000000000000000,
9968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9969   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9971   { 1.9374297986599267, 10.000000000000000, 5.0000000000000000,
9972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9973   { 4.0849049886067759, 10.000000000000000, 5.0000000000000000,
9974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9975   { 9.5926988633258983, 10.000000000000000, 5.0000000000000000,
9976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9977   { 25.958314281359588, 10.000000000000000, 5.0000000000000000,
9978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9979   { 85.333333333333300, 10.000000000000000, 5.0000000000000000,
9980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9981   { 372.31445312500028, 10.000000000000000, 5.0000000000000000,
9982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9983   { 2545.3436976070780, 10.000000000000000, 5.0000000000000000,
9984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9985   { 39583.333333333343, 10.000000000000000, 5.0000000000000000,
9986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9987   { 4600000.0000000261, 10.000000000000000, 5.0000000000000000,
9988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9989 };
9990 const double toler199 = 2.5000000000000020e-13;
9991 
9992 // Test data for a=10.000000000000000, b=5.0000000000000000, c=10.000000000000000.
9993 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
9994 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
9995 // mean(f - f_GSL): 5.5487040400966458e-12
9996 // variance(f - f_GSL): 5.4399356990620132e-22
9997 // stddev(f - f_GSL): 2.3323669734975269e-11
9998 const testcase_hyperg<double>
9999 data200[19] =
10000 {
10001   { 0.040386107340619273, 10.000000000000000, 5.0000000000000000,
10002 	  10.000000000000000, -0.90000000000000002, 0.0 },
10003   { 0.052922149401344633, 10.000000000000000, 5.0000000000000000,
10004 	  10.000000000000000, -0.80000000000000004, 0.0 },
10005   { 0.070429627772374270, 10.000000000000000, 5.0000000000000000,
10006 	  10.000000000000000, -0.69999999999999996, 0.0 },
10007   { 0.095367431640624986, 10.000000000000000, 5.0000000000000000,
10008 	  10.000000000000000, -0.59999999999999998, 0.0 },
10009   { 0.13168724279835389, 10.000000000000000, 5.0000000000000000,
10010 	  10.000000000000000, -0.50000000000000000, 0.0 },
10011   { 0.18593443208187072, 10.000000000000000, 5.0000000000000000,
10012 	  10.000000000000000, -0.39999999999999991, 0.0 },
10013   { 0.26932907434290460, 10.000000000000000, 5.0000000000000000,
10014 	  10.000000000000000, -0.29999999999999993, 0.0 },
10015   { 0.40187757201646102, 10.000000000000000, 5.0000000000000000,
10016 	  10.000000000000000, -0.19999999999999996, 0.0 },
10017   { 0.62092132305915493, 10.000000000000000, 5.0000000000000000,
10018 	  10.000000000000000, -0.099999999999999978, 0.0 },
10019   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
10020 	  10.000000000000000, 0.0000000000000000, 0.0 },
10021   { 1.6935087808430296, 10.000000000000000, 5.0000000000000000,
10022 	  10.000000000000000, 0.10000000000000009, 0.0 },
10023   { 3.0517578125000036, 10.000000000000000, 5.0000000000000000,
10024 	  10.000000000000000, 0.20000000000000018, 0.0 },
10025   { 5.9499018266198629, 10.000000000000000, 5.0000000000000000,
10026 	  10.000000000000000, 0.30000000000000004, 0.0 },
10027   { 12.860082304526767, 10.000000000000000, 5.0000000000000000,
10028 	  10.000000000000000, 0.40000000000000013, 0.0 },
10029   { 32.000000000000000, 10.000000000000000, 5.0000000000000000,
10030 	  10.000000000000000, 0.50000000000000000, 0.0 },
10031   { 97.656250000000114, 10.000000000000000, 5.0000000000000000,
10032 	  10.000000000000000, 0.60000000000000009, 0.0 },
10033   { 411.52263374485722, 10.000000000000000, 5.0000000000000000,
10034 	  10.000000000000000, 0.70000000000000018, 0.0 },
10035   { 3124.9999999999995, 10.000000000000000, 5.0000000000000000,
10036 	  10.000000000000000, 0.80000000000000004, 0.0 },
10037   { 100000.00000000055, 10.000000000000000, 5.0000000000000000,
10038 	  10.000000000000000, 0.90000000000000013, 0.0 },
10039 };
10040 const double toler200 = 2.5000000000000020e-13;
10041 
10042 // Test data for a=10.000000000000000, b=10.000000000000000, c=2.0000000000000000.
10043 // max(|f - f_GSL|): 3407872.0000000000 at index 18
10044 // max(|f - f_GSL| / |f_GSL|): 1.8642431677285562e-15
10045 // mean(f - f_GSL): 179361.84215676156
10046 // variance(f - f_GSL): 611241601687.40417
10047 // stddev(f - f_GSL): 781819.41756866348
10048 const testcase_hyperg<double>
10049 data201[19] =
10050 {
10051   { 2.3388730079478156e-05, 10.000000000000000, 10.000000000000000,
10052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10053   { -2.3204970759764180e-05, 10.000000000000000, 10.000000000000000,
10054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10055   { -0.00016219730505521665, 10.000000000000000, 10.000000000000000,
10056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10057   { -0.00044366962360922366, 10.000000000000000, 10.000000000000000,
10058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10059   { -0.00071863577205453773, 10.000000000000000, 10.000000000000000,
10060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10061   { 4.4378596544482927e-05, 10.000000000000000, 10.000000000000000,
10062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10063   { 0.0044446568070621991, 10.000000000000000, 10.000000000000000,
10064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10065   { 0.0071045155183571615, 10.000000000000000, 10.000000000000000,
10066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10067   { -0.049961558159890306, 10.000000000000000, 10.000000000000000,
10068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10069   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10071   { 51.305449964107403, 10.000000000000000, 10.000000000000000,
10072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10073   { 1435.9545414461415, 10.000000000000000, 10.000000000000000,
10074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10075   { 39657.913058984115, 10.000000000000000, 10.000000000000000,
10076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10077   { 1346016.4468570619, 10.000000000000000, 10.000000000000000,
10078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10079   { 68086556.444444403, 10.000000000000000, 10.000000000000000,
10080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10081   { 6646235808.7301531, 10.000000000000000, 10.000000000000000,
10082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10083   { 1954852335479.9958, 10.000000000000000, 10.000000000000000,
10084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10085   { 4573796225043418.0, 10.000000000000000, 10.000000000000000,
10086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10087   { 1.8280190368900440e+21, 10.000000000000000, 10.000000000000000,
10088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10089 };
10090 const double toler201 = 2.5000000000000020e-13;
10091 
10092 // Test data for a=10.000000000000000, b=10.000000000000000, c=4.0000000000000000.
10093 // max(|f - f_GSL|): 832.00000000000000 at index 18
10094 // max(|f - f_GSL| / |f_GSL|): 1.7889121078953330e-15
10095 // mean(f - f_GSL): 43.789679427686345
10096 // variance(f - f_GSL): 36432.823085424323
10097 // stddev(f - f_GSL): 190.87384075725075
10098 const testcase_hyperg<double>
10099 data202[19] =
10100 {
10101   { 1.3504013648914116e-05, 10.000000000000000, 10.000000000000000,
10102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10103   { 3.1753432098506483e-05, 10.000000000000000, 10.000000000000000,
10104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10105   { 6.2032098207654132e-05, 10.000000000000000, 10.000000000000000,
10106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10107   { 8.8747213942816339e-05, 10.000000000000000, 10.000000000000000,
10108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10109   { 1.0478094697613739e-05, 10.000000000000000, 10.000000000000000,
10110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10111   { -0.00055998751006022351, 10.000000000000000, 10.000000000000000,
10112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10113   { -0.0024718654966575221, 10.000000000000000, 10.000000000000000,
10114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10115   { -0.0027000264053620069, 10.000000000000000, 10.000000000000000,
10116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10117   { 0.066515394406810743, 10.000000000000000, 10.000000000000000,
10118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10119   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10121   { 11.579200866389527, 10.000000000000000, 10.000000000000000,
10122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10123   { 137.50750548795330, 10.000000000000000, 10.000000000000000,
10124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10125   { 1901.3196072993419, 10.000000000000000, 10.000000000000000,
10126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10127   { 34210.659507138007, 10.000000000000000, 10.000000000000000,
10128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10129   { 920588.19047619053, 10.000000000000000, 10.000000000000000,
10130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10131   { 45876220.933028772, 10.000000000000000, 10.000000000000000,
10132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10133   { 6234608574.0964050, 10.000000000000000, 10.000000000000000,
10134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10135   { 5445391090029.7783, 10.000000000000000, 10.000000000000000,
10136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10137   { 4.6508713107143840e+17, 10.000000000000000, 10.000000000000000,
10138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10139 };
10140 const double toler202 = 2.5000000000000020e-13;
10141 
10142 // Test data for a=10.000000000000000, b=10.000000000000000, c=6.0000000000000000.
10143 // max(|f - f_GSL|): 0.93750000000000000 at index 18
10144 // max(|f - f_GSL| / |f_GSL|): 1.8742262123208804e-15
10145 // mean(f - f_GSL): 0.049343110712039846
10146 // variance(f - f_GSL): 0.046258118950011272
10147 // stddev(f - f_GSL): 0.21507700702309224
10148 const testcase_hyperg<double>
10149 data203[19] =
10150 {
10151   { -2.6846726901509877e-05, 10.000000000000000, 10.000000000000000,
10152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10153   { -4.7817237144298244e-05, 10.000000000000000, 10.000000000000000,
10154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10155   { -7.2908121941826117e-05, 10.000000000000000, 10.000000000000000,
10156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10157   { -6.0427853197636777e-05, 10.000000000000000, 10.000000000000000,
10158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10159   { 0.00020559720946644960, 10.000000000000000, 10.000000000000000,
10160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10161   { 0.0017056910683365867, 10.000000000000000, 10.000000000000000,
10162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10163   { 0.0088037230970524228, 10.000000000000000, 10.000000000000000,
10164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10165   { 0.041510819735141528, 10.000000000000000, 10.000000000000000,
10166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10167   { 0.19754880805677244, 10.000000000000000, 10.000000000000000,
10168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10169   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10171   { 5.6130947302779246, 10.000000000000000, 10.000000000000000,
10172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10173   { 36.475357196722619, 10.000000000000000, 10.000000000000000,
10174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10175   { 289.29483001400672, 10.000000000000000, 10.000000000000000,
10176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10177   { 3010.8676549536667, 10.000000000000000, 10.000000000000000,
10178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10179   { 45844.317460317419, 10.000000000000000, 10.000000000000000,
10180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10181   { 1221852.6431492427, 10.000000000000000, 10.000000000000000,
10182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10183   { 79585968.928969592, 10.000000000000000, 10.000000000000000,
10184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10185   { 26733475942.460335, 10.000000000000000, 10.000000000000000,
10186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10187   { 500206428571437.38, 10.000000000000000, 10.000000000000000,
10188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10189 };
10190 const double toler203 = 2.5000000000000020e-13;
10191 
10192 // Test data for a=10.000000000000000, b=10.000000000000000, c=8.0000000000000000.
10193 // max(|f - f_GSL|): 0.0024414062500000000 at index 18
10194 // max(|f - f_GSL| / |f_GSL|): 1.6580008488964090e-15
10195 // mean(f - f_GSL): 0.00012850766473236850
10196 // variance(f - f_GSL): 3.1370523903989881e-07
10197 // stddev(f - f_GSL): 0.00056009395554665537
10198 const testcase_hyperg<double>
10199 data204[19] =
10200 {
10201   { 0.00025866179054283083, 10.000000000000000, 10.000000000000000,
10202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10203   { 0.00053402577739226583, 10.000000000000000, 10.000000000000000,
10204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10205   { 0.0011390075227239291, 10.000000000000000, 10.000000000000000,
10206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10207   { 0.0025224267119482941, 10.000000000000000, 10.000000000000000,
10208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10209   { 0.0058340332124251458, 10.000000000000000, 10.000000000000000,
10210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10211   { 0.014189256143045212, 10.000000000000000, 10.000000000000000,
10212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10213   { 0.036590990011337789, 10.000000000000000, 10.000000000000000,
10214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10215   { 0.10106560781146991, 10.000000000000000, 10.000000000000000,
10216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10217   { 0.30278778538531392, 10.000000000000000, 10.000000000000000,
10218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10219   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10221   { 3.7187249990350599, 10.000000000000000, 10.000000000000000,
10222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10223   { 16.023275545901761, 10.000000000000000, 10.000000000000000,
10224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10225   { 83.265377219882822, 10.000000000000000, 10.000000000000000,
10226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10227   { 553.31413918844225, 10.000000000000000, 10.000000000000000,
10228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10229   { 5148.4444444444416, 10.000000000000000, 10.000000000000000,
10230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10231   { 78082.084655761908, 10.000000000000000, 10.000000000000000,
10232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10233   { 2565874.8781353347, 10.000000000000000, 10.000000000000000,
10234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10235   { 346137152.77777809, 10.000000000000000, 10.000000000000000,
10236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10237   { 1472500000000.0227, 10.000000000000000, 10.000000000000000,
10238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10239 };
10240 const double toler204 = 2.5000000000000020e-13;
10241 
10242 // Test data for a=10.000000000000000, b=10.000000000000000, c=10.000000000000000.
10243 // max(|f - f_GSL|): 2.2888183593750000e-05 at index 18
10244 // max(|f - f_GSL| / |f_GSL|): 2.4795532226562509e-15
10245 // mean(f - f_GSL): 1.2059140510950354e-06
10246 // variance(f - f_GSL): 2.7568813079896666e-11
10247 // stddev(f - f_GSL): 5.2506012112801583e-06
10248 const testcase_hyperg<double>
10249 data205[19] =
10250 {
10251   { 0.0016310376661280216, 10.000000000000000, 10.000000000000000,
10252 	  10.000000000000000, -0.90000000000000002, 0.0 },
10253   { 0.0028007538972582421, 10.000000000000000, 10.000000000000000,
10254 	  10.000000000000000, -0.80000000000000004, 0.0 },
10255   { 0.0049603324681551939, 10.000000000000000, 10.000000000000000,
10256 	  10.000000000000000, -0.69999999999999996, 0.0 },
10257   { 0.0090949470177292789, 10.000000000000000, 10.000000000000000,
10258 	  10.000000000000000, -0.59999999999999998, 0.0 },
10259   { 0.017341529915832606, 10.000000000000000, 10.000000000000000,
10260 	  10.000000000000000, -0.50000000000000000, 0.0 },
10261   { 0.034571613033607791, 10.000000000000000, 10.000000000000000,
10262 	  10.000000000000000, -0.39999999999999991, 0.0 },
10263   { 0.072538150286405839, 10.000000000000000, 10.000000000000000,
10264 	  10.000000000000000, -0.29999999999999993, 0.0 },
10265   { 0.16150558288984579, 10.000000000000000, 10.000000000000000,
10266 	  10.000000000000000, -0.19999999999999996, 0.0 },
10267   { 0.38554328942953142, 10.000000000000000, 10.000000000000000,
10268 	  10.000000000000000, -0.099999999999999978, 0.0 },
10269   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10270 	  10.000000000000000, 0.0000000000000000, 0.0 },
10271   { 2.8679719907924444, 10.000000000000000, 10.000000000000000,
10272 	  10.000000000000000, 0.10000000000000009, 0.0 },
10273   { 9.3132257461548065, 10.000000000000000, 10.000000000000000,
10274 	  10.000000000000000, 0.20000000000000018, 0.0 },
10275   { 35.401331746414378, 10.000000000000000, 10.000000000000000,
10276 	  10.000000000000000, 0.30000000000000004, 0.0 },
10277   { 165.38171687920246, 10.000000000000000, 10.000000000000000,
10278 	  10.000000000000000, 0.40000000000000013, 0.0 },
10279   { 1024.0000000000000, 10.000000000000000, 10.000000000000000,
10280 	  10.000000000000000, 0.50000000000000000, 0.0 },
10281   { 9536.7431640625218, 10.000000000000000, 10.000000000000000,
10282 	  10.000000000000000, 0.60000000000000009, 0.0 },
10283   { 169350.87808430390, 10.000000000000000, 10.000000000000000,
10284 	  10.000000000000000, 0.70000000000000018, 0.0 },
10285   { 9765624.9999999963, 10.000000000000000, 10.000000000000000,
10286 	  10.000000000000000, 0.80000000000000004, 0.0 },
10287   { 10000000000.000111, 10.000000000000000, 10.000000000000000,
10288 	  10.000000000000000, 0.90000000000000013, 0.0 },
10289 };
10290 const double toler205 = 2.5000000000000020e-13;
10291 
10292 // Test data for a=10.000000000000000, b=20.000000000000000, c=2.0000000000000000.
10293 // max(|f - f_GSL|): 2.5940733853654057e+18 at index 18
10294 // max(|f - f_GSL| / |f_GSL|): 1.8312596334404269e-15
10295 // mean(f - f_GSL): 1.3653017829015250e+17
10296 // variance(f - f_GSL): 4.1617051640949032e+35
10297 // stddev(f - f_GSL): 6.4511279355589466e+17
10298 const testcase_hyperg<double>
10299 data206[19] =
10300 {
10301   { -2.1776535312781759e-07, 10.000000000000000, 20.000000000000000,
10302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10303   { -2.9128833151630439e-06, 10.000000000000000, 20.000000000000000,
10304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10305   { -9.4755553429932710e-06, 10.000000000000000, 20.000000000000000,
10306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10307   { -1.2844297353852837e-05, 10.000000000000000, 20.000000000000000,
10308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10309   { 3.6576965483549205e-05, 10.000000000000000, 20.000000000000000,
10310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10311   { 0.00020847453890703339, 10.000000000000000, 20.000000000000000,
10312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10313   { -0.00022868510398194936, 10.000000000000000, 20.000000000000000,
10314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10315   { -0.0021855513841943421, 10.000000000000000, 20.000000000000000,
10316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10317   { 0.014662111759334568, 10.000000000000000, 20.000000000000000,
10318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10319   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10321   { 746.44776348798098, 10.000000000000000, 20.000000000000000,
10322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10323   { 136080.48445225772, 10.000000000000000, 20.000000000000000,
10324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10325   { 23094279.597826406, 10.000000000000000, 20.000000000000000,
10326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10327   { 5315913395.5545979, 10.000000000000000, 20.000000000000000,
10328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10329   { 2261935718399.9990, 10.000000000000000, 20.000000000000000,
10330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10331   { 2669150854828235.0, 10.000000000000000, 20.000000000000000,
10332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10333   { 1.7499363099366351e+19, 10.000000000000000, 20.000000000000000,
10334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10335   { 2.8881518494606140e+24, 10.000000000000000, 20.000000000000000,
10336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10337   { 1.4165513933662505e+33, 10.000000000000000, 20.000000000000000,
10338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10339 };
10340 const double toler206 = 2.5000000000000020e-13;
10341 
10342 // Test data for a=10.000000000000000, b=20.000000000000000, c=4.0000000000000000.
10343 // max(|f - f_GSL|): 299067162755072.00 at index 18
10344 // max(|f - f_GSL| / |f_GSL|): 2.1129345912023457e-15
10345 // mean(f - f_GSL): 15740377042297.895
10346 // variance(f - f_GSL): 4.7074334083472640e+27
10347 // stddev(f - f_GSL): 68610738287437.656
10348 const testcase_hyperg<double>
10349 data207[19] =
10350 {
10351   { 1.7149006966334498e-07, 10.000000000000000, 20.000000000000000,
10352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10353   { 3.2399324906563845e-07, 10.000000000000000, 20.000000000000000,
10354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10355   { 1.6015317699713284e-07, 10.000000000000000, 20.000000000000000,
10356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10357   { -2.0500917201273337e-06, 10.000000000000000, 20.000000000000000,
10358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10359   { -1.0175546788592665e-05, 10.000000000000000, 20.000000000000000,
10360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10361   { -1.1720101988188077e-05, 10.000000000000000, 20.000000000000000,
10362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10363   { 0.00014199637113982382, 10.000000000000000, 20.000000000000000,
10364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10365   { 0.00021263363640641769, 10.000000000000000, 20.000000000000000,
10366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10367   { -0.0072649256698439626, 10.000000000000000, 20.000000000000000,
10368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10369   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10371   { 90.430293772869618, 10.000000000000000, 20.000000000000000,
10372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10373   { 6248.1455940292872, 10.000000000000000, 20.000000000000000,
10374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10375   { 501143.39852548984, 10.000000000000000, 20.000000000000000,
10376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10377   { 58852027.356440276, 10.000000000000000, 20.000000000000000,
10378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10379   { 12942923093.333330, 10.000000000000000, 20.000000000000000,
10380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10381   { 7618073993853.6592, 10.000000000000000, 20.000000000000000,
10382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10383   { 22630251562549772., 10.000000000000000, 20.000000000000000,
10384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10385   { 1.3708372433980356e+21, 10.000000000000000, 20.000000000000000,
10386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10387   { 1.4154113620000448e+29, 10.000000000000000, 20.000000000000000,
10388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10389 };
10390 const double toler207 = 2.5000000000000020e-13;
10391 
10392 // Test data for a=10.000000000000000, b=20.000000000000000, c=6.0000000000000000.
10393 // max(|f - f_GSL|): 103079215104.00000 at index 18
10394 // max(|f - f_GSL| / |f_GSL|): 1.8869870511941024e-15
10395 // mean(f - f_GSL): 5425221928.4235201
10396 // variance(f - f_GSL): 5.5922760890380314e+20
10397 // stddev(f - f_GSL): 23647993760.651306
10398 const testcase_hyperg<double>
10399 data208[19] =
10400 {
10401   { -1.6667473284194196e-08, 10.000000000000000, 20.000000000000000,
10402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10403   { 8.6214843496406671e-08, 10.000000000000000, 20.000000000000000,
10404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10405   { 5.7778331275185146e-07, 10.000000000000000, 20.000000000000000,
10406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10407   { 2.1911400502042259e-06, 10.000000000000000, 20.000000000000000,
10408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10409   { 4.7440049217199358e-06, 10.000000000000000, 20.000000000000000,
10410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10411   { -1.0564233314712615e-05, 10.000000000000000, 20.000000000000000,
10412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10413   { -0.00017990026051847404, 10.000000000000000, 20.000000000000000,
10414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10415   { -0.00027618146288724629, 10.000000000000000, 20.000000000000000,
10416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10417   { 0.030606019577723666, 10.000000000000000, 20.000000000000000,
10418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10419   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10421   { 27.832854169493341, 10.000000000000000, 20.000000000000000,
10422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10423   { 874.00624088575910, 10.000000000000000, 20.000000000000000,
10424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10425   { 36049.199340831554, 10.000000000000000, 20.000000000000000,
10426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10427   { 2270967.7298625209, 10.000000000000000, 20.000000000000000,
10428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10429   { 266979100.44444439, 10.000000000000000, 20.000000000000000,
10430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10431   { 80311224337.493027, 10.000000000000000, 20.000000000000000,
10432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10433   { 110111693103801.77, 10.000000000000000, 20.000000000000000,
10434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10435   { 2.4838871426052618e+18, 10.000000000000000, 20.000000000000000,
10436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10437   { 5.4626350000001618e+25, 10.000000000000000, 20.000000000000000,
10438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10439 };
10440 const double toler208 = 2.5000000000000020e-13;
10441 
10442 // Test data for a=10.000000000000000, b=20.000000000000000, c=8.0000000000000000.
10443 // max(|f - f_GSL|): 100663296.00000000 at index 18
10444 // max(|f - f_GSL| / |f_GSL|): 1.9414329026036117e-15
10445 // mean(f - f_GSL): 5298068.6316046715
10446 // variance(f - f_GSL): 533321003794731.12
10447 // stddev(f - f_GSL): 23093743.823701065
10448 const testcase_hyperg<double>
10449 data209[19] =
10450 {
10451   { -1.5843795889906876e-07, 10.000000000000000, 20.000000000000000,
10452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10453   { -5.4877276002864784e-07, 10.000000000000000, 20.000000000000000,
10454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10455   { -1.7169507967699695e-06, 10.000000000000000, 20.000000000000000,
10456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10457   { -4.5236439749819329e-06, 10.000000000000000, 20.000000000000000,
10458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10459   { -5.5690492560381956e-06, 10.000000000000000, 20.000000000000000,
10460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10461   { 5.6914115606653561e-05, 10.000000000000000, 20.000000000000000,
10462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10463   { 0.00082507252097489250, 10.000000000000000, 20.000000000000000,
10464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10465   { 0.0085739249288230429, 10.000000000000000, 20.000000000000000,
10466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10467   { 0.088244357683754687, 10.000000000000000, 20.000000000000000,
10468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10469   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10471   { 13.387208440156897, 10.000000000000000, 20.000000000000000,
10472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10473   { 226.77895441155252, 10.000000000000000, 20.000000000000000,
10474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10475   { 5281.5716482686785, 10.000000000000000, 20.000000000000000,
10476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10477   { 189431.77762850633, 10.000000000000000, 20.000000000000000,
10478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10479   { 12408149.333333332, 10.000000000000000, 20.000000000000000,
10480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10481   { 1966782292.5839682, 10.000000000000000, 20.000000000000000,
10482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10483   { 1274123112205.7700, 10.000000000000000, 20.000000000000000,
10484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10485   { 10903676350911508., 10.000000000000000, 20.000000000000000,
10486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10487   { 5.1850000000001411e+22, 10.000000000000000, 20.000000000000000,
10488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10489 };
10490 const double toler209 = 2.5000000000000020e-13;
10491 
10492 // Test data for a=10.000000000000000, b=20.000000000000000, c=10.000000000000000.
10493 // max(|f - f_GSL|): 475136.00000000000 at index 18
10494 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
10495 // mean(f - f_GSL): 25007.185032091642
10496 // variance(f - f_GSL): 11881799540.814577
10497 // stddev(f - f_GSL): 109003.66755671379
10498 const testcase_hyperg<double>
10499 data210[19] =
10500 {
10501   { 2.6602838683283435e-06, 10.000000000000000, 20.000000000000000,
10502 	  10.000000000000000, -0.90000000000000002, 0.0 },
10503   { 7.8442223930072316e-06, 10.000000000000000, 20.000000000000000,
10504 	  10.000000000000000, -0.80000000000000004, 0.0 },
10505   { 2.4604898194634598e-05, 10.000000000000000, 20.000000000000000,
10506 	  10.000000000000000, -0.69999999999999996, 0.0 },
10507   { 8.2718061255302686e-05, 10.000000000000000, 20.000000000000000,
10508 	  10.000000000000000, -0.59999999999999998, 0.0 },
10509   { 0.00030072865982171723, 10.000000000000000, 20.000000000000000,
10510 	  10.000000000000000, -0.50000000000000000, 0.0 },
10511   { 0.0011951964277455204, 10.000000000000000, 20.000000000000000,
10512 	  10.000000000000000, -0.39999999999999991, 0.0 },
10513   { 0.0052617832469731996, 10.000000000000000, 20.000000000000000,
10514 	  10.000000000000000, -0.29999999999999993, 0.0 },
10515   { 0.026084053304588850, 10.000000000000000, 20.000000000000000,
10516 	  10.000000000000000, -0.19999999999999996, 0.0 },
10517   { 0.14864362802414346, 10.000000000000000, 20.000000000000000,
10518 	  10.000000000000000, -0.099999999999999978, 0.0 },
10519   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10520 	  10.000000000000000, 0.0000000000000000, 0.0 },
10521   { 8.2252633399699757, 10.000000000000000, 20.000000000000000,
10522 	  10.000000000000000, 0.10000000000000009, 0.0 },
10523   { 86.736173798840738, 10.000000000000000, 20.000000000000000,
10524 	  10.000000000000000, 0.20000000000000018, 0.0 },
10525   { 1253.2542894196868, 10.000000000000000, 20.000000000000000,
10526 	  10.000000000000000, 0.30000000000000004, 0.0 },
10527   { 27351.112277912678, 10.000000000000000, 20.000000000000000,
10528 	  10.000000000000000, 0.40000000000000013, 0.0 },
10529   { 1048576.0000000000, 10.000000000000000, 20.000000000000000,
10530 	  10.000000000000000, 0.50000000000000000, 0.0 },
10531   { 90949470.177293226, 10.000000000000000, 20.000000000000000,
10532 	  10.000000000000000, 0.60000000000000009, 0.0 },
10533   { 28679719907.924767, 10.000000000000000, 20.000000000000000,
10534 	  10.000000000000000, 0.70000000000000018, 0.0 },
10535   { 95367431640624.906, 10.000000000000000, 20.000000000000000,
10536 	  10.000000000000000, 0.80000000000000004, 0.0 },
10537   { 1.0000000000000220e+20, 10.000000000000000, 20.000000000000000,
10538 	  10.000000000000000, 0.90000000000000013, 0.0 },
10539 };
10540 const double toler210 = 5.0000000000000039e-13;
10541 
10542 // Test data for a=20.000000000000000, b=0.0000000000000000, c=2.0000000000000000.
10543 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10544 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10545 // mean(f - f_GSL): 0.0000000000000000
10546 // variance(f - f_GSL): 0.0000000000000000
10547 // stddev(f - f_GSL): 0.0000000000000000
10548 const testcase_hyperg<double>
10549 data211[19] =
10550 {
10551   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10553   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10555   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10557   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10559   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10561   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10563   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10565   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10567   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10569   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10571   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10573   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10575   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10577   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10579   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10581   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10583   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10585   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10587   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10589 };
10590 const double toler211 = 2.5000000000000020e-13;
10591 
10592 // Test data for a=20.000000000000000, b=0.0000000000000000, c=4.0000000000000000.
10593 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10594 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10595 // mean(f - f_GSL): 0.0000000000000000
10596 // variance(f - f_GSL): 0.0000000000000000
10597 // stddev(f - f_GSL): 0.0000000000000000
10598 const testcase_hyperg<double>
10599 data212[19] =
10600 {
10601   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10603   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10605   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10607   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10609   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10611   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10613   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10615   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10617   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10619   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10621   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10623   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10625   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10627   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10629   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10631   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10633   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10635   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10637   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10639 };
10640 const double toler212 = 2.5000000000000020e-13;
10641 
10642 // Test data for a=20.000000000000000, b=0.0000000000000000, c=6.0000000000000000.
10643 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10644 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10645 // mean(f - f_GSL): 0.0000000000000000
10646 // variance(f - f_GSL): 0.0000000000000000
10647 // stddev(f - f_GSL): 0.0000000000000000
10648 const testcase_hyperg<double>
10649 data213[19] =
10650 {
10651   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10653   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10655   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10657   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10659   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10661   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10663   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10665   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10667   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10669   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10671   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10673   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10675   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10677   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10679   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10681   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10683   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10685   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10687   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10689 };
10690 const double toler213 = 2.5000000000000020e-13;
10691 
10692 // Test data for a=20.000000000000000, b=0.0000000000000000, c=8.0000000000000000.
10693 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10694 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10695 // mean(f - f_GSL): 0.0000000000000000
10696 // variance(f - f_GSL): 0.0000000000000000
10697 // stddev(f - f_GSL): 0.0000000000000000
10698 const testcase_hyperg<double>
10699 data214[19] =
10700 {
10701   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10703   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10705   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10707   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10709   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10711   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10713   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10715   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10717   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10719   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10721   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10723   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10725   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10727   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10729   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10731   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10733   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10735   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10737   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10739 };
10740 const double toler214 = 2.5000000000000020e-13;
10741 
10742 // Test data for a=20.000000000000000, b=0.0000000000000000, c=10.000000000000000.
10743 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10744 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10745 // mean(f - f_GSL): 0.0000000000000000
10746 // variance(f - f_GSL): 0.0000000000000000
10747 // stddev(f - f_GSL): 0.0000000000000000
10748 const testcase_hyperg<double>
10749 data215[19] =
10750 {
10751   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10752 	  10.000000000000000, -0.90000000000000002, 0.0 },
10753   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10754 	  10.000000000000000, -0.80000000000000004, 0.0 },
10755   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10756 	  10.000000000000000, -0.69999999999999996, 0.0 },
10757   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10758 	  10.000000000000000, -0.59999999999999998, 0.0 },
10759   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10760 	  10.000000000000000, -0.50000000000000000, 0.0 },
10761   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10762 	  10.000000000000000, -0.39999999999999991, 0.0 },
10763   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10764 	  10.000000000000000, -0.29999999999999993, 0.0 },
10765   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10766 	  10.000000000000000, -0.19999999999999996, 0.0 },
10767   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10768 	  10.000000000000000, -0.099999999999999978, 0.0 },
10769   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10770 	  10.000000000000000, 0.0000000000000000, 0.0 },
10771   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10772 	  10.000000000000000, 0.10000000000000009, 0.0 },
10773   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10774 	  10.000000000000000, 0.20000000000000018, 0.0 },
10775   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10776 	  10.000000000000000, 0.30000000000000004, 0.0 },
10777   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10778 	  10.000000000000000, 0.40000000000000013, 0.0 },
10779   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10780 	  10.000000000000000, 0.50000000000000000, 0.0 },
10781   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10782 	  10.000000000000000, 0.60000000000000009, 0.0 },
10783   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10784 	  10.000000000000000, 0.70000000000000018, 0.0 },
10785   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10786 	  10.000000000000000, 0.80000000000000004, 0.0 },
10787   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10788 	  10.000000000000000, 0.90000000000000013, 0.0 },
10789 };
10790 const double toler215 = 2.5000000000000020e-13;
10791 
10792 // Test data for a=20.000000000000000, b=0.50000000000000000, c=2.0000000000000000.
10793 // max(|f - f_GSL|): 48.000000000000000 at index 18
10794 // max(|f - f_GSL| / |f_GSL|): 1.8556481344874416e-15
10795 // mean(f - f_GSL): 2.5263190030329112
10796 // variance(f - f_GSL): 121.26314075575490
10797 // stddev(f - f_GSL): 11.011954447588080
10798 const testcase_hyperg<double>
10799 data216[19] =
10800 {
10801   { 0.26690449940521549, 20.000000000000000, 0.50000000000000000,
10802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10803   { 0.28252302866181833, 20.000000000000000, 0.50000000000000000,
10804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10805   { 0.30123616141153836, 20.000000000000000, 0.50000000000000000,
10806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10807   { 0.32421384687602633, 20.000000000000000, 0.50000000000000000,
10808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10809   { 0.35334630811776774, 20.000000000000000, 0.50000000000000000,
10810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10811   { 0.39191793127466995, 20.000000000000000, 0.50000000000000000,
10812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10813   { 0.44620488618129212, 20.000000000000000, 0.50000000000000000,
10814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10815   { 0.52980896919265719, 20.000000000000000, 0.50000000000000000,
10816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10817   { 0.67754711477562324, 20.000000000000000, 0.50000000000000000,
10818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10819   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10821   { 1.9567557771780317, 20.000000000000000, 0.50000000000000000,
10822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10823   { 6.1816042148333272, 20.000000000000000, 0.50000000000000000,
10824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10825   { 35.653088618561227, 20.000000000000000, 0.50000000000000000,
10826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10827   { 377.51482843180133, 20.000000000000000, 0.50000000000000000,
10828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10829   { 7645.8816551195359, 20.000000000000000, 0.50000000000000000,
10830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10831   { 354791.74537980522, 20.000000000000000, 0.50000000000000000,
10832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10833   { 57009889.966639392, 20.000000000000000, 0.50000000000000000,
10834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10835   { 83771357024.863937, 20.000000000000000, 0.50000000000000000,
10836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10837   { 25866972896377436., 20.000000000000000, 0.50000000000000000,
10838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10839 };
10840 const double toler216 = 2.5000000000000020e-13;
10841 
10842 // Test data for a=20.000000000000000, b=0.50000000000000000, c=4.0000000000000000.
10843 // max(|f - f_GSL|): 0.011718750000000000 at index 18
10844 // max(|f - f_GSL| / |f_GSL|): 1.7519521419033478e-15
10845 // mean(f - f_GSL): 0.00061678102606403001
10846 // variance(f - f_GSL): 7.2278413174892008e-06
10847 // stddev(f - f_GSL): 0.0026884644906506020
10848 const testcase_hyperg<double>
10849 data217[19] =
10850 {
10851   { 0.40342659436153389, 20.000000000000000, 0.50000000000000000,
10852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10853   { 0.42420571192034318, 20.000000000000000, 0.50000000000000000,
10854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10855   { 0.44852768286073041, 20.000000000000000, 0.50000000000000000,
10856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10857   { 0.47751245808592863, 20.000000000000000, 0.50000000000000000,
10858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10859   { 0.51283632632707765, 20.000000000000000, 0.50000000000000000,
10860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10861   { 0.55713468814894329, 20.000000000000000, 0.50000000000000000,
10862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10863   { 0.61481320817757346, 20.000000000000000, 0.50000000000000000,
10864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10865   { 0.69383483410097213, 20.000000000000000, 0.50000000000000000,
10866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10867   { 0.81012002526006044, 20.000000000000000, 0.50000000000000000,
10868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10869   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10871   { 1.3622225506603911, 20.000000000000000, 0.50000000000000000,
10872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10873   { 2.2349513086109027, 20.000000000000000, 0.50000000000000000,
10874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10875   { 5.1864917536761723, 20.000000000000000, 0.50000000000000000,
10876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10877   { 21.020560423779497, 20.000000000000000, 0.50000000000000000,
10878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10879   { 175.19649997100612, 20.000000000000000, 0.50000000000000000,
10880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10881   { 3467.1587803688708, 20.000000000000000, 0.50000000000000000,
10882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10883   { 225003.88683446089, 20.000000000000000, 0.50000000000000000,
10884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10885   { 110837674.65652709, 20.000000000000000, 0.50000000000000000,
10886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10887   { 6688966964170.9326, 20.000000000000000, 0.50000000000000000,
10888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10889 };
10890 const double toler217 = 2.5000000000000020e-13;
10891 
10892 // Test data for a=20.000000000000000, b=0.50000000000000000, c=6.0000000000000000.
10893 // max(|f - f_GSL|): 1.4305114746093750e-05 at index 18
10894 // max(|f - f_GSL| / |f_GSL|): 1.9261147266353426e-15
10895 // mean(f - f_GSL): 7.5292535813082699e-07
10896 // variance(f - f_GSL): 1.0770292922645316e-11
10897 // stddev(f - f_GSL): 3.2818124447697064e-06
10898 const testcase_hyperg<double>
10899 data218[19] =
10900 {
10901   { 0.48716309885816822, 20.000000000000000, 0.50000000000000000,
10902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10903   { 0.50965859152542337, 20.000000000000000, 0.50000000000000000,
10904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10905   { 0.53554809210658938, 20.000000000000000, 0.50000000000000000,
10906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10907   { 0.56576689207507136, 20.000000000000000, 0.50000000000000000,
10908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10909   { 0.60164849637133655, 20.000000000000000, 0.50000000000000000,
10910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10911   { 0.64516711595404408, 20.000000000000000, 0.50000000000000000,
10912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10913   { 0.69938278735493553, 20.000000000000000, 0.50000000000000000,
10914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10915   { 0.76931621518401860, 20.000000000000000, 0.50000000000000000,
10916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10917   { 0.86381808725530662, 20.000000000000000, 0.50000000000000000,
10918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10919   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10921   { 1.2152051956815531, 20.000000000000000, 0.50000000000000000,
10922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10923   { 1.6052546785425557, 20.000000000000000, 0.50000000000000000,
10924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10925   { 2.4765586046012635, 20.000000000000000, 0.50000000000000000,
10926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10927   { 5.1564492216997611, 20.000000000000000, 0.50000000000000000,
10928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10929   { 18.446158392136365, 20.000000000000000, 0.50000000000000000,
10930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10931   { 150.44577670123971, 20.000000000000000, 0.50000000000000000,
10932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10933   { 3862.6317400116104, 20.000000000000000, 0.50000000000000000,
10934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10935   { 632428.34833625401, 20.000000000000000, 0.50000000000000000,
10936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10937   { 7426927663.3810987, 20.000000000000000, 0.50000000000000000,
10938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10939 };
10940 const double toler218 = 2.5000000000000020e-13;
10941 
10942 // Test data for a=20.000000000000000, b=0.50000000000000000, c=8.0000000000000000.
10943 // max(|f - f_GSL|): 4.0978193283081055e-08 at index 18
10944 // max(|f - f_GSL| / |f_GSL|): 1.7692881266931270e-15
10945 // mean(f - f_GSL): 2.1571346930926438e-09
10946 // variance(f - f_GSL): 8.8377830897836260e-17
10947 // stddev(f - f_GSL): 9.4009484041683924e-09
10948 const testcase_hyperg<double>
10949 data219[19] =
10950 {
10951   { 0.54703266209548373, 20.000000000000000, 0.50000000000000000,
10952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10953   { 0.56997321774144960, 20.000000000000000, 0.50000000000000000,
10954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10955   { 0.59603026159654982, 20.000000000000000, 0.50000000000000000,
10956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10957   { 0.62596978851120511, 20.000000000000000, 0.50000000000000000,
10958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10959   { 0.66084565876898915, 20.000000000000000, 0.50000000000000000,
10960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10961   { 0.70215256667232862, 20.000000000000000, 0.50000000000000000,
10962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10963   { 0.75208916592008568, 20.000000000000000, 0.50000000000000000,
10964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10965   { 0.81403631111658625, 20.000000000000000, 0.50000000000000000,
10966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10967   { 0.89348608489854597, 20.000000000000000, 0.50000000000000000,
10968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10969   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10971   { 1.1517793185139173, 20.000000000000000, 0.50000000000000000,
10972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10973   { 1.3878110313656606, 20.000000000000000, 0.50000000000000000,
10974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10975   { 1.8061071794572381, 20.000000000000000, 0.50000000000000000,
10976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10977   { 2.7148594517859612, 20.000000000000000, 0.50000000000000000,
10978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10979   { 5.4529435709049361, 20.000000000000000, 0.50000000000000000,
10980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10981   { 19.487310275377109, 20.000000000000000, 0.50000000000000000,
10982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10983   { 191.69079165937592, 20.000000000000000, 0.50000000000000000,
10984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10985   { 10218.543981792311, 20.000000000000000, 0.50000000000000000,
10986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10987   { 23160836.646584522, 20.000000000000000, 0.50000000000000000,
10988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10989 };
10990 const double toler219 = 2.5000000000000020e-13;
10991 
10992 // Test data for a=20.000000000000000, b=0.50000000000000000, c=10.000000000000000.
10993 // max(|f - f_GSL|): 2.9103830456733704e-10 at index 18
10994 // max(|f - f_GSL| / |f_GSL|): 1.6694673196526424e-15
10995 // mean(f - f_GSL): 1.5333453804912193e-11
10996 // variance(f - f_GSL): 4.4575621294589140e-21
10997 // stddev(f - f_GSL): 6.6764976817631821e-11
10998 const testcase_hyperg<double>
10999 data220[19] =
11000 {
11001   { 0.59292067298616025, 20.000000000000000, 0.50000000000000000,
11002 	  10.000000000000000, -0.90000000000000002, 0.0 },
11003   { 0.61572496720679892, 20.000000000000000, 0.50000000000000000,
11004 	  10.000000000000000, -0.80000000000000004, 0.0 },
11005   { 0.64135339122875590, 20.000000000000000, 0.50000000000000000,
11006 	  10.000000000000000, -0.69999999999999996, 0.0 },
11007   { 0.67043457419280461, 20.000000000000000, 0.50000000000000000,
11008 	  10.000000000000000, -0.59999999999999998, 0.0 },
11009   { 0.70380956268170969, 20.000000000000000, 0.50000000000000000,
11010 	  10.000000000000000, -0.50000000000000000, 0.0 },
11011   { 0.74263251901495264, 20.000000000000000, 0.50000000000000000,
11012 	  10.000000000000000, -0.39999999999999991, 0.0 },
11013   { 0.78853555445528289, 20.000000000000000, 0.50000000000000000,
11014 	  10.000000000000000, -0.29999999999999993, 0.0 },
11015   { 0.84391122775673755, 20.000000000000000, 0.50000000000000000,
11016 	  10.000000000000000, -0.19999999999999996, 0.0 },
11017   { 0.91242401018807373, 20.000000000000000, 0.50000000000000000,
11018 	  10.000000000000000, -0.099999999999999978, 0.0 },
11019   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
11020 	  10.000000000000000, 0.0000000000000000, 0.0 },
11021   { 1.1169059681274873, 20.000000000000000, 0.50000000000000000,
11022 	  10.000000000000000, 0.10000000000000009, 0.0 },
11023   { 1.2825928301302669, 20.000000000000000, 0.50000000000000000,
11024 	  10.000000000000000, 0.20000000000000018, 0.0 },
11025   { 1.5385937789924939, 20.000000000000000, 0.50000000000000000,
11026 	  10.000000000000000, 0.30000000000000004, 0.0 },
11027   { 1.9895771187893914, 20.000000000000000, 0.50000000000000000,
11028 	  10.000000000000000, 0.40000000000000013, 0.0 },
11029   { 2.9707335806970168, 20.000000000000000, 0.50000000000000000,
11030 	  10.000000000000000, 0.50000000000000000, 0.0 },
11031   { 6.0299506157180467, 20.000000000000000, 0.50000000000000000,
11032 	  10.000000000000000, 0.60000000000000009, 0.0 },
11033   { 24.259090336955669, 20.000000000000000, 0.50000000000000000,
11034 	  10.000000000000000, 0.70000000000000018, 0.0 },
11035   { 406.27267173257223, 20.000000000000000, 0.50000000000000000,
11036 	  10.000000000000000, 0.80000000000000004, 0.0 },
11037   { 174330.03997220617, 20.000000000000000, 0.50000000000000000,
11038 	  10.000000000000000, 0.90000000000000013, 0.0 },
11039 };
11040 const double toler220 = 2.5000000000000020e-13;
11041 
11042 // Test data for a=20.000000000000000, b=1.0000000000000000, c=2.0000000000000000.
11043 // max(|f - f_GSL|): 1024.0000000000000 at index 18
11044 // max(|f - f_GSL| / |f_GSL|): 1.7510399999999635e-15
11045 // mean(f - f_GSL): 53.894788252704814
11046 // variance(f - f_GSL): 55188.204676932175
11047 // stddev(f - f_GSL): 234.92169903381034
11048 const testcase_hyperg<double>
11049 data221[19] =
11050 {
11051   { 0.058479236576646311, 20.000000000000000, 1.0000000000000000,
11052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11053   { 0.065788544763137821, 20.000000000000000, 1.0000000000000000,
11054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11055   { 0.075184824937824482, 20.000000000000000, 1.0000000000000000,
11056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11057   { 0.087707688693157121, 20.000000000000000, 1.0000000000000000,
11058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11059   { 0.10521567442213345, 20.000000000000000, 1.0000000000000000,
11060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11061   { 0.13135877960541509, 20.000000000000000, 1.0000000000000000,
11062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11063   { 0.17423854066297137, 20.000000000000000, 1.0000000000000000,
11064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11065   { 0.25492082527223520, 20.000000000000000, 1.0000000000000000,
11066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11067   { 0.44025895219654843, 20.000000000000000, 1.0000000000000000,
11068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11069   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11071   { 3.3698615820910360, 20.000000000000000, 1.0000000000000000,
11072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11073   { 17.997089220808562, 20.000000000000000, 1.0000000000000000,
11074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11075   { 153.73298291118951, 20.000000000000000, 1.0000000000000000,
11076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11077   { 2159.1667587825768, 20.000000000000000, 1.0000000000000000,
11078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11079   { 55188.105263157879, 20.000000000000000, 1.0000000000000000,
11080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11081   { 3191209.3921857267, 20.000000000000000, 1.0000000000000000,
11082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11083   { 646910975.29153574, 20.000000000000000, 1.0000000000000000,
11084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11085   { 1254834626850.2659, 20.000000000000000, 1.0000000000000000,
11086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11087   { 5.8479532163743910e+17, 20.000000000000000, 1.0000000000000000,
11088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11089 };
11090 const double toler221 = 2.5000000000000020e-13;
11091 
11092 // Test data for a=20.000000000000000, b=1.0000000000000000, c=4.0000000000000000.
11093 // max(|f - f_GSL|): 0.21875000000000000 at index 18
11094 // max(|f - f_GSL| / |f_GSL|): 1.5452521874999694e-15
11095 // mean(f - f_GSL): 0.011513220685868108
11096 // variance(f - f_GSL): 0.0025185017633005862
11097 // stddev(f - f_GSL): 0.050184676578618956
11098 const testcase_hyperg<double>
11099 data222[19] =
11100 {
11101   { 0.15519511120894958, 20.000000000000000, 1.0000000000000000,
11102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11103   { 0.17197165701692893, 20.000000000000000, 1.0000000000000000,
11104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11105   { 0.19276847315207329, 20.000000000000000, 1.0000000000000000,
11106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11107   { 0.21920107206179093, 20.000000000000000, 1.0000000000000000,
11108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11109   { 0.25386158960390576, 20.000000000000000, 1.0000000000000000,
11110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11111   { 0.30115970686600663, 20.000000000000000, 1.0000000000000000,
11112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11113   { 0.36916408142057128, 20.000000000000000, 1.0000000000000000,
11114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11115   { 0.47406175901569547, 20.000000000000000, 1.0000000000000000,
11116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11117   { 0.65237908266239919, 20.000000000000000, 1.0000000000000000,
11118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11119   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11121   { 1.8227213362622299, 20.000000000000000, 1.0000000000000000,
11122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11123   { 4.3716358339791430, 20.000000000000000, 1.0000000000000000,
11124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11125   { 15.670841312959222, 20.000000000000000, 1.0000000000000000,
11126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11127   { 94.742651122760662, 20.000000000000000, 1.0000000000000000,
11128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11129   { 1081.7275541795671, 20.000000000000000, 1.0000000000000000,
11130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11131   { 27809.787731465960, 20.000000000000000, 1.0000000000000000,
11132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11133   { 2329811.1715181284, 20.000000000000000, 1.0000000000000000,
11134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11135   { 1537787532.6780224, 20.000000000000000, 1.0000000000000000,
11136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11137   { 141562653507005.19, 20.000000000000000, 1.0000000000000000,
11138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11139 };
11140 const double toler222 = 2.5000000000000020e-13;
11141 
11142 // Test data for a=20.000000000000000, b=1.0000000000000000, c=6.0000000000000000.
11143 // max(|f - f_GSL|): 0.00024414062500000000 at index 18
11144 // max(|f - f_GSL| / |f_GSL|): 1.6763226855512285e-15
11145 // mean(f - f_GSL): 1.2849899481406474e-05
11146 // variance(f - f_GSL): 3.1370759089735494e-09
11147 // stddev(f - f_GSL): 5.6009605506319623e-05
11148 const testcase_hyperg<double>
11149 data223[19] =
11150 {
11151   { 0.23253645591196551, 20.000000000000000, 1.0000000000000000,
11152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11153   { 0.25484220947068342, 20.000000000000000, 1.0000000000000000,
11154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11155   { 0.28181987881113812, 20.000000000000000, 1.0000000000000000,
11156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11157   { 0.31508211677735770, 20.000000000000000, 1.0000000000000000,
11158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11159   { 0.35706285886959610, 20.000000000000000, 1.0000000000000000,
11160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11161   { 0.41160053409238190, 20.000000000000000, 1.0000000000000000,
11162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11163   { 0.48508083111181938, 20.000000000000000, 1.0000000000000000,
11164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11165   { 0.58885194371375260, 20.000000000000000, 1.0000000000000000,
11166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11167   { 0.74482241684585782, 20.000000000000000, 1.0000000000000000,
11168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11169   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11171   { 1.4700356864367146, 20.000000000000000, 1.0000000000000000,
11172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11173   { 2.4955144453055174, 20.000000000000000, 1.0000000000000000,
11174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11175   { 5.3506594845833471, 20.000000000000000, 1.0000000000000000,
11176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11177   { 16.618413752184267, 20.000000000000000, 1.0000000000000000,
11178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11179   { 89.310629514963878, 20.000000000000000, 1.0000000000000000,
11180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11181   { 1029.3439900542960, 20.000000000000000, 1.0000000000000000,
11182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11183   { 35659.847863372670, 20.000000000000000, 1.0000000000000000,
11184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11185   { 8009309.6233230168, 20.000000000000000, 1.0000000000000000,
11186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11187   { 145640590027.40201, 20.000000000000000, 1.0000000000000000,
11188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11189 };
11190 const double toler223 = 2.5000000000000020e-13;
11191 
11192 // Test data for a=20.000000000000000, b=1.0000000000000000, c=8.0000000000000000.
11193 // max(|f - f_GSL|): 7.1525573730468750e-07 at index 18
11194 // max(|f - f_GSL| / |f_GSL|): 1.7237966704607975e-15
11195 // mean(f - f_GSL): 3.7648905700618082e-08
11196 // variance(f - f_GSL): 2.6925522674362989e-14
11197 // stddev(f - f_GSL): 1.6408998346749562e-07
11198 const testcase_hyperg<double>
11199 data224[19] =
11200 {
11201   { 0.29614148314592509, 20.000000000000000, 1.0000000000000000,
11202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11203   { 0.32176277356430805, 20.000000000000000, 1.0000000000000000,
11204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11205   { 0.35217870475550511, 20.000000000000000, 1.0000000000000000,
11206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11207   { 0.38885270445515113, 20.000000000000000, 1.0000000000000000,
11208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11209   { 0.43389978380608418, 20.000000000000000, 1.0000000000000000,
11210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11211   { 0.49048612522269414, 20.000000000000000, 1.0000000000000000,
11212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11213   { 0.56355539635634599, 20.000000000000000, 1.0000000000000000,
11214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11215   { 0.66123153239117671, 20.000000000000000, 1.0000000000000000,
11216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11217   { 0.79773363961895416, 20.000000000000000, 1.0000000000000000,
11218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11219   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11221   { 1.3245132157016595, 20.000000000000000, 1.0000000000000000,
11222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11223   { 1.9065148749742094, 20.000000000000000, 1.0000000000000000,
11224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11225   { 3.1328798652457452, 20.000000000000000, 1.0000000000000000,
11226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11227   { 6.4172532944033636, 20.000000000000000, 1.0000000000000000,
11228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11229   { 19.071683734222436, 20.000000000000000, 1.0000000000000000,
11230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11231   { 104.41989641582512, 20.000000000000000, 1.0000000000000000,
11232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11233   { 1510.5743992324351, 20.000000000000000, 1.0000000000000000,
11234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11235   { 115518.14360562043, 20.000000000000000, 1.0000000000000000,
11236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11237   { 414930455.29174191, 20.000000000000000, 1.0000000000000000,
11238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11239 };
11240 const double toler224 = 2.5000000000000020e-13;
11241 
11242 // Test data for a=20.000000000000000, b=1.0000000000000000, c=10.000000000000000.
11243 // max(|f - f_GSL|): 4.6566128730773926e-09 at index 18
11244 // max(|f - f_GSL| / |f_GSL|): 1.6665618165271877e-15
11245 // mean(f - f_GSL): 2.4523176471958370e-10
11246 // variance(f - f_GSL): 1.1411894517911952e-18
11247 // stddev(f - f_GSL): 1.0682646918208967e-09
11248 const testcase_hyperg<double>
11249 data225[19] =
11250 {
11251   { 0.34954259539177701, 20.000000000000000, 1.0000000000000000,
11252 	  10.000000000000000, -0.90000000000000002, 0.0 },
11253   { 0.37714038609235134, 20.000000000000000, 1.0000000000000000,
11254 	  10.000000000000000, -0.80000000000000004, 0.0 },
11255   { 0.40942091659748781, 20.000000000000000, 1.0000000000000000,
11256 	  10.000000000000000, -0.69999999999999996, 0.0 },
11257   { 0.44767109606846422, 20.000000000000000, 1.0000000000000000,
11258 	  10.000000000000000, -0.59999999999999998, 0.0 },
11259   { 0.49368984777532227, 20.000000000000000, 1.0000000000000000,
11260 	  10.000000000000000, -0.50000000000000000, 0.0 },
11261   { 0.55006638216982318, 20.000000000000000, 1.0000000000000000,
11262 	  10.000000000000000, -0.39999999999999991, 0.0 },
11263   { 0.62065830207408901, 20.000000000000000, 1.0000000000000000,
11264 	  10.000000000000000, -0.29999999999999993, 0.0 },
11265   { 0.71145554513583764, 20.000000000000000, 1.0000000000000000,
11266 	  10.000000000000000, -0.19999999999999996, 0.0 },
11267   { 0.83223839666914623, 20.000000000000000, 1.0000000000000000,
11268 	  10.000000000000000, -0.099999999999999978, 0.0 },
11269   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11270 	  10.000000000000000, 0.0000000000000000, 0.0 },
11271   { 1.2466748028187731, 20.000000000000000, 1.0000000000000000,
11272 	  10.000000000000000, 0.10000000000000009, 0.0 },
11273   { 1.6386752725021760, 20.000000000000000, 1.0000000000000000,
11274 	  10.000000000000000, 0.20000000000000018, 0.0 },
11275   { 2.3340068725479681, 20.000000000000000, 1.0000000000000000,
11276 	  10.000000000000000, 0.30000000000000004, 0.0 },
11277   { 3.7848108613132099, 20.000000000000000, 1.0000000000000000,
11278 	  10.000000000000000, 0.40000000000000013, 0.0 },
11279   { 7.6754638550304133, 20.000000000000000, 1.0000000000000000,
11280 	  10.000000000000000, 0.50000000000000000, 0.0 },
11281   { 23.344217312927277, 20.000000000000000, 1.0000000000000000,
11282 	  10.000000000000000, 0.60000000000000009, 0.0 },
11283   { 149.83491198246998, 20.000000000000000, 1.0000000000000000,
11284 	  10.000000000000000, 0.70000000000000018, 0.0 },
11285   { 3936.9253501916060, 20.000000000000000, 1.0000000000000000,
11286 	  10.000000000000000, 0.80000000000000004, 0.0 },
11287   { 2794143.5036480846, 20.000000000000000, 1.0000000000000000,
11288 	  10.000000000000000, 0.90000000000000013, 0.0 },
11289 };
11290 const double toler225 = 2.5000000000000020e-13;
11291 
11292 // Test data for a=20.000000000000000, b=2.0000000000000000, c=2.0000000000000000.
11293 // max(|f - f_GSL|): 475136.00000000000 at index 18
11294 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
11295 // mean(f - f_GSL): 25007.185032091642
11296 // variance(f - f_GSL): 11881799540.814577
11297 // stddev(f - f_GSL): 109003.66755671379
11298 const testcase_hyperg<double>
11299 data226[19] =
11300 {
11301   { 2.6602838683283435e-06, 20.000000000000000, 2.0000000000000000,
11302 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11303   { 7.8442223930072316e-06, 20.000000000000000, 2.0000000000000000,
11304 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11305   { 2.4604898194634598e-05, 20.000000000000000, 2.0000000000000000,
11306 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11307   { 8.2718061255302686e-05, 20.000000000000000, 2.0000000000000000,
11308 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11309   { 0.00030072865982171723, 20.000000000000000, 2.0000000000000000,
11310 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11311   { 0.0011951964277455204, 20.000000000000000, 2.0000000000000000,
11312 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11313   { 0.0052617832469731996, 20.000000000000000, 2.0000000000000000,
11314 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11315   { 0.026084053304588850, 20.000000000000000, 2.0000000000000000,
11316 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11317   { 0.14864362802414346, 20.000000000000000, 2.0000000000000000,
11318 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11319   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11320 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11321   { 8.2252633399699757, 20.000000000000000, 2.0000000000000000,
11322 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11323   { 86.736173798840738, 20.000000000000000, 2.0000000000000000,
11324 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11325   { 1253.2542894196868, 20.000000000000000, 2.0000000000000000,
11326 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11327   { 27351.112277912678, 20.000000000000000, 2.0000000000000000,
11328 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11329   { 1048576.0000000000, 20.000000000000000, 2.0000000000000000,
11330 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11331   { 90949470.177293226, 20.000000000000000, 2.0000000000000000,
11332 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11333   { 28679719907.924767, 20.000000000000000, 2.0000000000000000,
11334 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11335   { 95367431640624.906, 20.000000000000000, 2.0000000000000000,
11336 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11337   { 1.0000000000000220e+20, 20.000000000000000, 2.0000000000000000,
11338 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11339 };
11340 const double toler226 = 5.0000000000000039e-13;
11341 
11342 // Test data for a=20.000000000000000, b=2.0000000000000000, c=4.0000000000000000.
11343 // max(|f - f_GSL|): 40.000000000000000 at index 18
11344 // max(|f - f_GSL| / |f_GSL|): 1.8712609271522778e-15
11345 // mean(f - f_GSL): 2.1052671749403089
11346 // variance(f - f_GSL): 84.210508462254538
11347 // stddev(f - f_GSL): 9.1766283820504881
11348 const testcase_hyperg<double>
11349 data227[19] =
11350 {
11351   { 0.018828092583720632, 20.000000000000000, 2.0000000000000000,
11352 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11353   { 0.023381944060455365, 20.000000000000000, 2.0000000000000000,
11354 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11355   { 0.029789623984280887, 20.000000000000000, 2.0000000000000000,
11356 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11357   { 0.039191021482500567, 20.000000000000000, 2.0000000000000000,
11358 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11359   { 0.053727813036721528, 20.000000000000000, 2.0000000000000000,
11360 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11361   { 0.077762010061668857, 20.000000000000000, 2.0000000000000000,
11362 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11363   { 0.12110505620123323, 20.000000000000000, 2.0000000000000000,
11364 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11365   { 0.20870149809080582, 20.000000000000000, 2.0000000000000000,
11366 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11367   { 0.41429234328785763, 20.000000000000000, 2.0000000000000000,
11368 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11369   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11370 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11371   { 3.1308087404153113, 20.000000000000000, 2.0000000000000000,
11372 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11373   { 13.586180626453100, 20.000000000000000, 2.0000000000000000,
11374 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11375   { 87.117304082784415, 20.000000000000000, 2.0000000000000000,
11376 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11377   { 889.26474381243384, 20.000000000000000, 2.0000000000000000,
11378 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11379   { 16231.913312693494, 20.000000000000000, 2.0000000000000000,
11380 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11381   { 653537.51168945129, 20.000000000000000, 2.0000000000000000,
11382 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11383   { 87756230.793849647, 20.000000000000000, 2.0000000000000000,
11384 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11385   { 101493977171.74945, 20.000000000000000, 2.0000000000000000,
11386 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11387   { 21375960679557820., 20.000000000000000, 2.0000000000000000,
11388 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11389 };
11390 const double toler227 = 2.5000000000000020e-13;
11391 
11392 // Test data for a=20.000000000000000, b=2.0000000000000000, c=6.0000000000000000.
11393 // max(|f - f_GSL|): 0.031250000000000000 at index 18
11394 // max(|f - f_GSL| / |f_GSL|): 1.6379336164121759e-15
11395 // mean(f - f_GSL): 0.0016447556893365942
11396 // variance(f - f_GSL): 5.1397960874034849e-05
11397 // stddev(f - f_GSL): 0.0071692371193896806
11398 const testcase_hyperg<double>
11399 data228[19] =
11400 {
11401   { 0.049200410661854238, 20.000000000000000, 2.0000000000000000,
11402 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11403   { 0.059460876757152607, 20.000000000000000, 2.0000000000000000,
11404 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11405   { 0.073244762686653225, 20.000000000000000, 2.0000000000000000,
11406 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11407   { 0.092334626017932769, 20.000000000000000, 2.0000000000000000,
11408 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11409   { 0.11976760350696856, 20.000000000000000, 2.0000000000000000,
11410 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11411   { 0.16102414609169405, 20.000000000000000, 2.0000000000000000,
11412 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11413   { 0.22670456785796236, 20.000000000000000, 2.0000000000000000,
11414 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11415   { 0.33912903252727361, 20.000000000000000, 2.0000000000000000,
11416 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11417   { 0.55049794600858049, 20.000000000000000, 2.0000000000000000,
11418 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11419   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11420 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11421   { 2.1254722872032232, 20.000000000000000, 2.0000000000000000,
11422 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11423   { 5.6261213886736314, 20.000000000000000, 2.0000000000000000,
11424 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11425   { 20.137315891130996, 20.000000000000000, 2.0000000000000000,
11426 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11427   { 108.04381584643900, 20.000000000000000, 2.0000000000000000,
11428 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11429   { 992.41692466460245, 20.000000000000000, 2.0000000000000000,
11430 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11431   { 19055.363816004465, 20.000000000000000, 2.0000000000000000,
11432 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11433   { 1105471.9504312191, 20.000000000000000, 2.0000000000000000,
11434 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11435   { 448521363.90608919, 20.000000000000000, 2.0000000000000000,
11436 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11437   { 19078917293639.652, 20.000000000000000, 2.0000000000000000,
11438 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11439 };
11440 const double toler228 = 2.5000000000000020e-13;
11441 
11442 // Test data for a=20.000000000000000, b=2.0000000000000000, c=8.0000000000000000.
11443 // max(|f - f_GSL|): 8.3923339843750000e-05 at index 18
11444 // max(|f - f_GSL| / |f_GSL|): 1.8221514326726564e-15
11445 // mean(f - f_GSL): 4.4172143495227617e-06
11446 // variance(f - f_GSL): 3.7068906120670492e-10
11447 // stddev(f - f_GSL): 1.9253287023433297e-05
11448 const testcase_hyperg<double>
11449 data229[19] =
11450 {
11451   { 0.083753547015334884, 20.000000000000000, 2.0000000000000000,
11452 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11453   { 0.099238444687035743, 20.000000000000000, 2.0000000000000000,
11454 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11455   { 0.11938294012867748, 20.000000000000000, 2.0000000000000000,
11456 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11457   { 0.14622683905023329, 20.000000000000000, 2.0000000000000000,
11458 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11459   { 0.18303556733713028, 20.000000000000000, 2.0000000000000000,
11460 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11461   { 0.23527764069382415, 20.000000000000000, 2.0000000000000000,
11462 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11463   { 0.31261681740827069, 20.000000000000000, 2.0000000000000000,
11464 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11465   { 0.43327581880538862, 20.000000000000000, 2.0000000000000000,
11466 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11467   { 0.63445840637296680, 20.000000000000000, 2.0000000000000000,
11468 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11469   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11470 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11471   { 1.7438842395813297, 20.000000000000000, 2.0000000000000000,
11472 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11473   { 3.5070840938209331, 20.000000000000000, 2.0000000000000000,
11474 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11475   { 8.6573372006089713, 20.000000000000000, 2.0000000000000000,
11476 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11477   { 28.779342118408998, 20.000000000000000, 2.0000000000000000,
11478 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11479   { 147.50178613955714, 20.000000000000000, 2.0000000000000000,
11480 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11481   { 1427.1686016136398, 20.000000000000000, 2.0000000000000000,
11482 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11483   { 36780.643714655955, 20.000000000000000, 2.0000000000000000,
11484 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11485   { 5313869.6058585485, 20.000000000000000, 2.0000000000000000,
11486 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11487   { 46057280607.383286, 20.000000000000000, 2.0000000000000000,
11488 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11489 };
11490 const double toler229 = 2.5000000000000020e-13;
11491 
11492 // Test data for a=20.000000000000000, b=2.0000000000000000, c=10.000000000000000.
11493 // max(|f - f_GSL|): 5.0663948059082031e-07 at index 18
11494 // max(|f - f_GSL| / |f_GSL|): 1.9925479281069681e-15
11495 // mean(f - f_GSL): 2.6669880993704522e-08
11496 // variance(f - f_GSL): 1.3509399735218820e-14
11497 // stddev(f - f_GSL): 1.1622994336752823e-07
11498 const testcase_hyperg<double>
11499 data230[19] =
11500 {
11501   { 0.11920045035073676, 20.000000000000000, 2.0000000000000000,
11502 	  10.000000000000000, -0.90000000000000002, 0.0 },
11503   { 0.13907946814302777, 20.000000000000000, 2.0000000000000000,
11504 	  10.000000000000000, -0.80000000000000004, 0.0 },
11505   { 0.16431439792559696, 20.000000000000000, 2.0000000000000000,
11506 	  10.000000000000000, -0.69999999999999996, 0.0 },
11507   { 0.19698796016986989, 20.000000000000000, 2.0000000000000000,
11508 	  10.000000000000000, -0.59999999999999998, 0.0 },
11509   { 0.24028510928790547, 20.000000000000000, 2.0000000000000000,
11510 	  10.000000000000000, -0.50000000000000000, 0.0 },
11511   { 0.29926031296483130, 20.000000000000000, 2.0000000000000000,
11512 	  10.000000000000000, -0.39999999999999991, 0.0 },
11513   { 0.38229327814229175, 20.000000000000000, 2.0000000000000000,
11514 	  10.000000000000000, -0.29999999999999993, 0.0 },
11515   { 0.50402047283093132, 20.000000000000000, 2.0000000000000000,
11516 	  10.000000000000000, -0.19999999999999996, 0.0 },
11517   { 0.69167261179586526, 20.000000000000000, 2.0000000000000000,
11518 	  10.000000000000000, -0.099999999999999978, 0.0 },
11519   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11520 	  10.000000000000000, 0.0000000000000000, 0.0 },
11521   { 1.5503152253394308, 20.000000000000000, 2.0000000000000000,
11522 	  10.000000000000000, 0.10000000000000009, 0.0 },
11523   { 2.6469548193635828, 20.000000000000000, 2.0000000000000000,
11524 	  10.000000000000000, 0.20000000000000018, 0.0 },
11525   { 5.1882631330566813, 20.000000000000000, 2.0000000000000000,
11526 	  10.000000000000000, 0.30000000000000004, 0.0 },
11527   { 12.476792759124546, 20.000000000000000, 2.0000000000000000,
11528 	  10.000000000000000, 0.40000000000000013, 0.0 },
11529   { 41.026391565091259, 20.000000000000000, 2.0000000000000000,
11530 	  10.000000000000000, 0.50000000000000000, 0.0 },
11531   { 220.92584715988204, 20.000000000000000, 2.0000000000000000,
11532 	  10.000000000000000, 0.60000000000000009, 0.0 },
11533   { 2677.0834450236389, 20.000000000000000, 2.0000000000000000,
11534 	  10.000000000000000, 0.70000000000000018, 0.0 },
11535   { 141774.31260689779, 20.000000000000000, 2.0000000000000000,
11536 	  10.000000000000000, 0.80000000000000004, 0.0 },
11537   { 254267148.83197621, 20.000000000000000, 2.0000000000000000,
11538 	  10.000000000000000, 0.90000000000000013, 0.0 },
11539 };
11540 const double toler230 = 2.5000000000000020e-13;
11541 
11542 // Test data for a=20.000000000000000, b=5.0000000000000000, c=2.0000000000000000.
11543 // max(|f - f_GSL|): 60129542144.000000 at index 18
11544 // max(|f - f_GSL| / |f_GSL|): 2.0181355730232468e-15
11545 // mean(f - f_GSL): 3164712852.2154636
11546 // variance(f - f_GSL): 1.9029272767041847e+20
11547 // stddev(f - f_GSL): 13794663014.021708
11548 const testcase_hyperg<double>
11549 data231[19] =
11550 {
11551   { -1.8650300348790099e-05, 20.000000000000000, 5.0000000000000000,
11552 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11553   { -3.6488008415371319e-05, 20.000000000000000, 5.0000000000000000,
11554 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11555   { -6.4614776410961038e-05, 20.000000000000000, 5.0000000000000000,
11556 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11557   { -8.4495207102246549e-05, 20.000000000000000, 5.0000000000000000,
11558 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11559   { 2.2276197023825424e-05, 20.000000000000000, 5.0000000000000000,
11560 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11561   { 0.00070736115111457809, 20.000000000000000, 5.0000000000000000,
11562 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11563   { 0.0027829732057272588, 20.000000000000000, 5.0000000000000000,
11564 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11565   { 0.0013283545664371644, 20.000000000000000, 5.0000000000000000,
11566 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11567   { -0.041767631015048774, 20.000000000000000, 5.0000000000000000,
11568 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11569   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11570 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11571   { 61.311496556100003, 20.000000000000000, 5.0000000000000000,
11572 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11573   { 2397.4420539085872, 20.000000000000000, 5.0000000000000000,
11574 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11575   { 103687.60998586559, 20.000000000000000, 5.0000000000000000,
11576 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11577   { 6247196.6451069508, 20.000000000000000, 5.0000000000000000,
11578 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11579   { 656408576.00000000, 20.000000000000000, 5.0000000000000000,
11580 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11581   { 165334768098.54715, 20.000000000000000, 5.0000000000000000,
11582 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11583   { 175097125520819.91, 20.000000000000000, 5.0000000000000000,
11584 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11585   { 2.6818275451660257e+18, 20.000000000000000, 5.0000000000000000,
11586 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11587   { 2.9794600000000777e+25, 20.000000000000000, 5.0000000000000000,
11588 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11589 };
11590 const double toler231 = 2.5000000000000020e-13;
11591 
11592 // Test data for a=20.000000000000000, b=5.0000000000000000, c=4.0000000000000000.
11593 // max(|f - f_GSL|): 9437184.0000000000 at index 18
11594 // max(|f - f_GSL| / |f_GSL|): 2.0515617391303805e-15
11595 // mean(f - f_GSL): 496693.97369064158
11596 // variance(f - f_GSL): 4687391593519.1660
11597 // stddev(f - f_GSL): 2165038.4739119918
11598 const testcase_hyperg<double>
11599 data232[19] =
11600 {
11601   { -3.6403884516313627e-06, 20.000000000000000, 5.0000000000000000,
11602 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11603   { -9.5873829246491408e-06, 20.000000000000000, 5.0000000000000000,
11604 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11605   { -2.6052245147200097e-05, 20.000000000000000, 5.0000000000000000,
11606 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11607   { -7.2378303598384501e-05, 20.000000000000000, 5.0000000000000000,
11608 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11609   { -0.00020048577321417379, 20.000000000000000, 5.0000000000000000,
11610 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11611   { -0.00051222704046234439, 20.000000000000000, 5.0000000000000000,
11612 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11613   { -0.00080950511491888959, 20.000000000000000, 5.0000000000000000,
11614 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11615   { 0.0043473422174314250, 20.000000000000000, 5.0000000000000000,
11616 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11617   { 0.081078342558623853, 20.000000000000000, 5.0000000000000000,
11618 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11619   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11620 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11621   { 12.794854084397739, 20.000000000000000, 5.0000000000000000,
11622 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11623   { 195.15639104739174, 20.000000000000000, 5.0000000000000000,
11624 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11625   { 3938.7991953190131, 20.000000000000000, 5.0000000000000000,
11626 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11627   { 118521.48653762160, 20.000000000000000, 5.0000000000000000,
11628 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11629   { 6291455.9999999972, 20.000000000000000, 5.0000000000000000,
11630 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11631   { 773070496.50699198, 20.000000000000000, 5.0000000000000000,
11632 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11633   { 363276452167.04718, 20.000000000000000, 5.0000000000000000,
11634 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11635   { 2002716064453133.0, 20.000000000000000, 5.0000000000000000,
11636 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11637   { 4.6000000000001222e+21, 20.000000000000000, 5.0000000000000000,
11638 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11639 };
11640 const double toler232 = 2.5000000000000020e-13;
11641 
11642 // Test data for a=20.000000000000000, b=5.0000000000000000, c=6.0000000000000000.
11643 // max(|f - f_GSL|): 5120.0000000000000 at index 18
11644 // max(|f - f_GSL| / |f_GSL|): 1.7944916193878173e-15
11645 // mean(f - f_GSL): 269.47388985302263
11646 // variance(f - f_GSL): 1379705.1461701661
11647 // stddev(f - f_GSL): 1174.6085076186730
11648 const testcase_hyperg<double>
11649 data233[19] =
11650 {
11651   { 0.00014313323624053599, 20.000000000000000, 5.0000000000000000,
11652 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11653   { 0.00025426183473118769, 20.000000000000000, 5.0000000000000000,
11654 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11655   { 0.00048255612836437054, 20.000000000000000, 5.0000000000000000,
11656 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11657   { 0.00099096904674794185, 20.000000000000000, 5.0000000000000000,
11658 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11659   { 0.0022347805521915616, 20.000000000000000, 5.0000000000000000,
11660 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11661   { 0.0056271390060294354, 20.000000000000000, 5.0000000000000000,
11662 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11663   { 0.016109059519227351, 20.000000000000000, 5.0000000000000000,
11664 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11665   { 0.053453465775609076, 20.000000000000000, 5.0000000000000000,
11666 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11667   { 0.20995202901839263, 20.000000000000000, 5.0000000000000000,
11668 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11669   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11670 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11671   { 5.9534372167648799, 20.000000000000000, 5.0000000000000000,
11672 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11673   { 46.157632071206095, 20.000000000000000, 5.0000000000000000,
11674 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11675   { 494.32074431164915, 20.000000000000000, 5.0000000000000000,
11676 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11677   { 7989.5277611776519, 20.000000000000000, 5.0000000000000000,
11678 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11679   { 224179.55830753347, 20.000000000000000, 5.0000000000000000,
11680 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11681   { 13848144.485282511, 20.000000000000000, 5.0000000000000000,
11682 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11683   { 2948587692.8892150, 20.000000000000000, 5.0000000000000000,
11684 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11685   { 5940513286161.6602, 20.000000000000000, 5.0000000000000000,
11686 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11687   { 2.8531757655946394e+18, 20.000000000000000, 5.0000000000000000,
11688 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11689 };
11690 const double toler233 = 2.5000000000000020e-13;
11691 
11692 // Test data for a=20.000000000000000, b=5.0000000000000000, c=8.0000000000000000.
11693 // max(|f - f_GSL|): 7.0000000000000000 at index 18
11694 // max(|f - f_GSL| / |f_GSL|): 1.5351977183413728e-15
11695 // mean(f - f_GSL): 0.36842306154970872
11696 // variance(f - f_GSL): 2.5789458059294108
11697 // stddev(f - f_GSL): 1.6059096506122039
11698 const testcase_hyperg<double>
11699 data234[19] =
11700 {
11701   { 0.0012492049968744917, 20.000000000000000, 5.0000000000000000,
11702 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11703   { 0.0019931241968014200, 20.000000000000000, 5.0000000000000000,
11704 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11705   { 0.0033203386861410844, 20.000000000000000, 5.0000000000000000,
11706 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11707   { 0.0058191894509856774, 20.000000000000000, 5.0000000000000000,
11708 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11709   { 0.010830090368313864, 20.000000000000000, 5.0000000000000000,
11710 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11711   { 0.021653062305193541, 20.000000000000000, 5.0000000000000000,
11712 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11713   { 0.047180821280919195, 20.000000000000000, 5.0000000000000000,
11714 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11715   { 0.11405637279736212, 20.000000000000000, 5.0000000000000000,
11716 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11717   { 0.31275468794721017, 20.000000000000000, 5.0000000000000000,
11718 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11719   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11720 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11721   { 3.8598904658643969, 20.000000000000000, 5.0000000000000000,
11722 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11723   { 18.806301417906734, 20.000000000000000, 5.0000000000000000,
11724 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11725   { 122.77054465017432, 20.000000000000000, 5.0000000000000000,
11726 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11727   { 1168.4762146809012, 20.000000000000000, 5.0000000000000000,
11728 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11729   { 18437.511788521082, 20.000000000000000, 5.0000000000000000,
11730 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11731   { 597441.79669264762, 20.000000000000000, 5.0000000000000000,
11732 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11733   { 59390411.369228527, 20.000000000000000, 5.0000000000000000,
11734 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11735   { 44681668993.361603, 20.000000000000000, 5.0000000000000000,
11736 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11737   { 4559673269683333.0, 20.000000000000000, 5.0000000000000000,
11738 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11739 };
11740 const double toler234 = 2.5000000000000020e-13;
11741 
11742 // Test data for a=20.000000000000000, b=5.0000000000000000, c=10.000000000000000.
11743 // max(|f - f_GSL|): 0.029296875000000000 at index 18
11744 // max(|f - f_GSL| / |f_GSL|): 1.8717083246628342e-15
11745 // mean(f - f_GSL): 0.0015419659355661440
11746 // variance(f - f_GSL): 4.5173964710879197e-05
11747 // stddev(f - f_GSL): 0.0067211579888348996
11748 const testcase_hyperg<double>
11749 data235[19] =
11750 {
11751   { 0.0038867957051370739, 20.000000000000000, 5.0000000000000000,
11752 	  10.000000000000000, -0.90000000000000002, 0.0 },
11753   { 0.0058484892597364235, 20.000000000000000, 5.0000000000000000,
11754 	  10.000000000000000, -0.80000000000000004, 0.0 },
11755   { 0.0090987656053758189, 20.000000000000000, 5.0000000000000000,
11756 	  10.000000000000000, -0.69999999999999996, 0.0 },
11757   { 0.014714392537270657, 20.000000000000000, 5.0000000000000000,
11758 	  10.000000000000000, -0.59999999999999998, 0.0 },
11759   { 0.024900404542056772, 20.000000000000000, 5.0000000000000000,
11760 	  10.000000000000000, -0.50000000000000000, 0.0 },
11761   { 0.044460184663785055, 20.000000000000000, 5.0000000000000000,
11762 	  10.000000000000000, -0.39999999999999991, 0.0 },
11763   { 0.084638849196357113, 20.000000000000000, 5.0000000000000000,
11764 	  10.000000000000000, -0.29999999999999993, 0.0 },
11765   { 0.17409058241291026, 20.000000000000000, 5.0000000000000000,
11766 	  10.000000000000000, -0.19999999999999996, 0.0 },
11767   { 0.39357055823580767, 20.000000000000000, 5.0000000000000000,
11768 	  10.000000000000000, -0.099999999999999978, 0.0 },
11769   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11770 	  10.000000000000000, 0.0000000000000000, 0.0 },
11771   { 2.9410794636226596, 20.000000000000000, 5.0000000000000000,
11772 	  10.000000000000000, 0.10000000000000009, 0.0 },
11773   { 10.417226071414374, 20.000000000000000, 5.0000000000000000,
11774 	  10.000000000000000, 0.20000000000000018, 0.0 },
11775   { 46.930585873140835, 20.000000000000000, 5.0000000000000000,
11776 	  10.000000000000000, 0.30000000000000004, 0.0 },
11777   { 290.76717121814988, 20.000000000000000, 5.0000000000000000,
11778 	  10.000000000000000, 0.40000000000000013, 0.0 },
11779   { 2788.1641083374830, 20.000000000000000, 5.0000000000000000,
11780 	  10.000000000000000, 0.50000000000000000, 0.0 },
11781   { 50228.117718560752, 20.000000000000000, 5.0000000000000000,
11782 	  10.000000000000000, 0.60000000000000009, 0.0 },
11783   { 2433042.3476752895, 20.000000000000000, 5.0000000000000000,
11784 	  10.000000000000000, 0.70000000000000018, 0.0 },
11785   { 705345246.77141762, 20.000000000000000, 5.0000000000000000,
11786 	  10.000000000000000, 0.80000000000000004, 0.0 },
11787   { 15652478868617.246, 20.000000000000000, 5.0000000000000000,
11788 	  10.000000000000000, 0.90000000000000013, 0.0 },
11789 };
11790 const double toler235 = 2.5000000000000020e-13;
11791 
11792 // Test data for a=20.000000000000000, b=10.000000000000000, c=2.0000000000000000.
11793 // max(|f - f_GSL|): 2.5940733853654057e+18 at index 18
11794 // max(|f - f_GSL| / |f_GSL|): 1.8312596334404269e-15
11795 // mean(f - f_GSL): 1.3653017829015250e+17
11796 // variance(f - f_GSL): 4.1617051640949032e+35
11797 // stddev(f - f_GSL): 6.4511279355589466e+17
11798 const testcase_hyperg<double>
11799 data236[19] =
11800 {
11801   { -2.1776535312781759e-07, 20.000000000000000, 10.000000000000000,
11802 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11803   { -2.9128833151630439e-06, 20.000000000000000, 10.000000000000000,
11804 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11805   { -9.4755553429932710e-06, 20.000000000000000, 10.000000000000000,
11806 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11807   { -1.2844297353852837e-05, 20.000000000000000, 10.000000000000000,
11808 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11809   { 3.6576965483549205e-05, 20.000000000000000, 10.000000000000000,
11810 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11811   { 0.00020847453890703339, 20.000000000000000, 10.000000000000000,
11812 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11813   { -0.00022868510398194936, 20.000000000000000, 10.000000000000000,
11814 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11815   { -0.0021855513841943421, 20.000000000000000, 10.000000000000000,
11816 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11817   { 0.014662111759334568, 20.000000000000000, 10.000000000000000,
11818 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11819   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11820 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11821   { 746.44776348798098, 20.000000000000000, 10.000000000000000,
11822 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11823   { 136080.48445225772, 20.000000000000000, 10.000000000000000,
11824 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11825   { 23094279.597826406, 20.000000000000000, 10.000000000000000,
11826 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11827   { 5315913395.5545979, 20.000000000000000, 10.000000000000000,
11828 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11829   { 2261935718399.9990, 20.000000000000000, 10.000000000000000,
11830 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11831   { 2669150854828235.0, 20.000000000000000, 10.000000000000000,
11832 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11833   { 1.7499363099366351e+19, 20.000000000000000, 10.000000000000000,
11834 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11835   { 2.8881518494606140e+24, 20.000000000000000, 10.000000000000000,
11836 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11837   { 1.4165513933662505e+33, 20.000000000000000, 10.000000000000000,
11838 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11839 };
11840 const double toler236 = 2.5000000000000020e-13;
11841 
11842 // Test data for a=20.000000000000000, b=10.000000000000000, c=4.0000000000000000.
11843 // max(|f - f_GSL|): 299067162755072.00 at index 18
11844 // max(|f - f_GSL| / |f_GSL|): 2.1129345912023457e-15
11845 // mean(f - f_GSL): 15740377042297.895
11846 // variance(f - f_GSL): 4.7074334083472640e+27
11847 // stddev(f - f_GSL): 68610738287437.656
11848 const testcase_hyperg<double>
11849 data237[19] =
11850 {
11851   { 1.7149006966334498e-07, 20.000000000000000, 10.000000000000000,
11852 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11853   { 3.2399324906563845e-07, 20.000000000000000, 10.000000000000000,
11854 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11855   { 1.6015317699713284e-07, 20.000000000000000, 10.000000000000000,
11856 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11857   { -2.0500917201273337e-06, 20.000000000000000, 10.000000000000000,
11858 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11859   { -1.0175546788592665e-05, 20.000000000000000, 10.000000000000000,
11860 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11861   { -1.1720101988188077e-05, 20.000000000000000, 10.000000000000000,
11862 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11863   { 0.00014199637113982382, 20.000000000000000, 10.000000000000000,
11864 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11865   { 0.00021263363640641769, 20.000000000000000, 10.000000000000000,
11866 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11867   { -0.0072649256698439626, 20.000000000000000, 10.000000000000000,
11868 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11869   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11870 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11871   { 90.430293772869618, 20.000000000000000, 10.000000000000000,
11872 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11873   { 6248.1455940292872, 20.000000000000000, 10.000000000000000,
11874 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11875   { 501143.39852548984, 20.000000000000000, 10.000000000000000,
11876 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11877   { 58852027.356440276, 20.000000000000000, 10.000000000000000,
11878 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11879   { 12942923093.333330, 20.000000000000000, 10.000000000000000,
11880 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11881   { 7618073993853.6592, 20.000000000000000, 10.000000000000000,
11882 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11883   { 22630251562549772., 20.000000000000000, 10.000000000000000,
11884 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11885   { 1.3708372433980356e+21, 20.000000000000000, 10.000000000000000,
11886 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11887   { 1.4154113620000448e+29, 20.000000000000000, 10.000000000000000,
11888 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11889 };
11890 const double toler237 = 2.5000000000000020e-13;
11891 
11892 // Test data for a=20.000000000000000, b=10.000000000000000, c=6.0000000000000000.
11893 // max(|f - f_GSL|): 103079215104.00000 at index 18
11894 // max(|f - f_GSL| / |f_GSL|): 1.8869870511941024e-15
11895 // mean(f - f_GSL): 5425221928.4235201
11896 // variance(f - f_GSL): 5.5922760890380314e+20
11897 // stddev(f - f_GSL): 23647993760.651306
11898 const testcase_hyperg<double>
11899 data238[19] =
11900 {
11901   { -1.6667473284194196e-08, 20.000000000000000, 10.000000000000000,
11902 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11903   { 8.6214843496406671e-08, 20.000000000000000, 10.000000000000000,
11904 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11905   { 5.7778331275185146e-07, 20.000000000000000, 10.000000000000000,
11906 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11907   { 2.1911400502042259e-06, 20.000000000000000, 10.000000000000000,
11908 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11909   { 4.7440049217199358e-06, 20.000000000000000, 10.000000000000000,
11910 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11911   { -1.0564233314712615e-05, 20.000000000000000, 10.000000000000000,
11912 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11913   { -0.00017990026051847404, 20.000000000000000, 10.000000000000000,
11914 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11915   { -0.00027618146288724629, 20.000000000000000, 10.000000000000000,
11916 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11917   { 0.030606019577723666, 20.000000000000000, 10.000000000000000,
11918 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11919   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11920 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11921   { 27.832854169493341, 20.000000000000000, 10.000000000000000,
11922 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11923   { 874.00624088575910, 20.000000000000000, 10.000000000000000,
11924 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11925   { 36049.199340831554, 20.000000000000000, 10.000000000000000,
11926 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11927   { 2270967.7298625209, 20.000000000000000, 10.000000000000000,
11928 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11929   { 266979100.44444439, 20.000000000000000, 10.000000000000000,
11930 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11931   { 80311224337.493027, 20.000000000000000, 10.000000000000000,
11932 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11933   { 110111693103801.77, 20.000000000000000, 10.000000000000000,
11934 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11935   { 2.4838871426052618e+18, 20.000000000000000, 10.000000000000000,
11936 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11937   { 5.4626350000001618e+25, 20.000000000000000, 10.000000000000000,
11938 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11939 };
11940 const double toler238 = 2.5000000000000020e-13;
11941 
11942 // Test data for a=20.000000000000000, b=10.000000000000000, c=8.0000000000000000.
11943 // max(|f - f_GSL|): 100663296.00000000 at index 18
11944 // max(|f - f_GSL| / |f_GSL|): 1.9414329026036117e-15
11945 // mean(f - f_GSL): 5298068.6316046715
11946 // variance(f - f_GSL): 533321003794731.12
11947 // stddev(f - f_GSL): 23093743.823701065
11948 const testcase_hyperg<double>
11949 data239[19] =
11950 {
11951   { -1.5843795889906876e-07, 20.000000000000000, 10.000000000000000,
11952 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11953   { -5.4877276002864784e-07, 20.000000000000000, 10.000000000000000,
11954 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11955   { -1.7169507967699695e-06, 20.000000000000000, 10.000000000000000,
11956 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11957   { -4.5236439749819329e-06, 20.000000000000000, 10.000000000000000,
11958 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11959   { -5.5690492560381956e-06, 20.000000000000000, 10.000000000000000,
11960 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11961   { 5.6914115606653561e-05, 20.000000000000000, 10.000000000000000,
11962 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11963   { 0.00082507252097489250, 20.000000000000000, 10.000000000000000,
11964 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11965   { 0.0085739249288230429, 20.000000000000000, 10.000000000000000,
11966 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11967   { 0.088244357683754687, 20.000000000000000, 10.000000000000000,
11968 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11969   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11970 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11971   { 13.387208440156897, 20.000000000000000, 10.000000000000000,
11972 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11973   { 226.77895441155252, 20.000000000000000, 10.000000000000000,
11974 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11975   { 5281.5716482686785, 20.000000000000000, 10.000000000000000,
11976 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11977   { 189431.77762850633, 20.000000000000000, 10.000000000000000,
11978 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11979   { 12408149.333333332, 20.000000000000000, 10.000000000000000,
11980 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11981   { 1966782292.5839682, 20.000000000000000, 10.000000000000000,
11982 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11983   { 1274123112205.7700, 20.000000000000000, 10.000000000000000,
11984 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11985   { 10903676350911508., 20.000000000000000, 10.000000000000000,
11986 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11987   { 5.1850000000001411e+22, 20.000000000000000, 10.000000000000000,
11988 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11989 };
11990 const double toler239 = 2.5000000000000020e-13;
11991 
11992 // Test data for a=20.000000000000000, b=10.000000000000000, c=10.000000000000000.
11993 // max(|f - f_GSL|): 475136.00000000000 at index 18
11994 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
11995 // mean(f - f_GSL): 25007.185032091642
11996 // variance(f - f_GSL): 11881799540.814577
11997 // stddev(f - f_GSL): 109003.66755671379
11998 const testcase_hyperg<double>
11999 data240[19] =
12000 {
12001   { 2.6602838683283435e-06, 20.000000000000000, 10.000000000000000,
12002 	  10.000000000000000, -0.90000000000000002, 0.0 },
12003   { 7.8442223930072316e-06, 20.000000000000000, 10.000000000000000,
12004 	  10.000000000000000, -0.80000000000000004, 0.0 },
12005   { 2.4604898194634598e-05, 20.000000000000000, 10.000000000000000,
12006 	  10.000000000000000, -0.69999999999999996, 0.0 },
12007   { 8.2718061255302686e-05, 20.000000000000000, 10.000000000000000,
12008 	  10.000000000000000, -0.59999999999999998, 0.0 },
12009   { 0.00030072865982171723, 20.000000000000000, 10.000000000000000,
12010 	  10.000000000000000, -0.50000000000000000, 0.0 },
12011   { 0.0011951964277455204, 20.000000000000000, 10.000000000000000,
12012 	  10.000000000000000, -0.39999999999999991, 0.0 },
12013   { 0.0052617832469731996, 20.000000000000000, 10.000000000000000,
12014 	  10.000000000000000, -0.29999999999999993, 0.0 },
12015   { 0.026084053304588850, 20.000000000000000, 10.000000000000000,
12016 	  10.000000000000000, -0.19999999999999996, 0.0 },
12017   { 0.14864362802414346, 20.000000000000000, 10.000000000000000,
12018 	  10.000000000000000, -0.099999999999999978, 0.0 },
12019   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
12020 	  10.000000000000000, 0.0000000000000000, 0.0 },
12021   { 8.2252633399699757, 20.000000000000000, 10.000000000000000,
12022 	  10.000000000000000, 0.10000000000000009, 0.0 },
12023   { 86.736173798840738, 20.000000000000000, 10.000000000000000,
12024 	  10.000000000000000, 0.20000000000000018, 0.0 },
12025   { 1253.2542894196868, 20.000000000000000, 10.000000000000000,
12026 	  10.000000000000000, 0.30000000000000004, 0.0 },
12027   { 27351.112277912678, 20.000000000000000, 10.000000000000000,
12028 	  10.000000000000000, 0.40000000000000013, 0.0 },
12029   { 1048576.0000000000, 20.000000000000000, 10.000000000000000,
12030 	  10.000000000000000, 0.50000000000000000, 0.0 },
12031   { 90949470.177293226, 20.000000000000000, 10.000000000000000,
12032 	  10.000000000000000, 0.60000000000000009, 0.0 },
12033   { 28679719907.924767, 20.000000000000000, 10.000000000000000,
12034 	  10.000000000000000, 0.70000000000000018, 0.0 },
12035   { 95367431640624.906, 20.000000000000000, 10.000000000000000,
12036 	  10.000000000000000, 0.80000000000000004, 0.0 },
12037   { 1.0000000000000220e+20, 20.000000000000000, 10.000000000000000,
12038 	  10.000000000000000, 0.90000000000000013, 0.0 },
12039 };
12040 const double toler240 = 5.0000000000000039e-13;
12041 
12042 // Test data for a=20.000000000000000, b=20.000000000000000, c=2.0000000000000000.
12043 // max(|f - f_GSL|): 8.1129638414606682e+31 at index 18
12044 // max(|f - f_GSL| / |f_GSL|): 2.1657042453579367e-15
12045 // mean(f - f_GSL): 4.2699809691927378e+30
12046 // variance(f - f_GSL): 3.3808552803188121e+96
12047 // stddev(f - f_GSL): 1.8387102219541860e+48
12048 const testcase_hyperg<double>
12049 data241[19] =
12050 {
12051   { 7.4612991227725660e-09, 20.000000000000000, 20.000000000000000,
12052 	  2.0000000000000000, -0.90000000000000002, 0.0 },
12053   { 1.1006588952366092e-07, 20.000000000000000, 20.000000000000000,
12054 	  2.0000000000000000, -0.80000000000000004, 0.0 },
12055   { 2.0126933732744113e-07, 20.000000000000000, 20.000000000000000,
12056 	  2.0000000000000000, -0.69999999999999996, 0.0 },
12057   { -1.0013775379571396e-06, 20.000000000000000, 20.000000000000000,
12058 	  2.0000000000000000, -0.59999999999999998, 0.0 },
12059   { -3.0371956856925611e-06, 20.000000000000000, 20.000000000000000,
12060 	  2.0000000000000000, -0.50000000000000000, 0.0 },
12061   { 2.2012669924829930e-05, 20.000000000000000, 20.000000000000000,
12062 	  2.0000000000000000, -0.39999999999999991, 0.0 },
12063   { -6.2415598025411788e-05, 20.000000000000000, 20.000000000000000,
12064 	  2.0000000000000000, -0.29999999999999993, 0.0 },
12065   { 0.00033551320394368590, 20.000000000000000, 20.000000000000000,
12066 	  2.0000000000000000, -0.19999999999999996, 0.0 },
12067   { -0.0062342152641436752, 20.000000000000000, 20.000000000000000,
12068 	  2.0000000000000000, -0.099999999999999978, 0.0 },
12069   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12070 	  2.0000000000000000, 0.0000000000000000, 0.0 },
12071   { 34830.688900741610, 20.000000000000000, 20.000000000000000,
12072 	  2.0000000000000000, 0.10000000000000009, 0.0 },
12073   { 67626221.263031960, 20.000000000000000, 20.000000000000000,
12074 	  2.0000000000000000, 0.20000000000000018, 0.0 },
12075   { 102764604848.69762, 20.000000000000000, 20.000000000000000,
12076 	  2.0000000000000000, 0.30000000000000004, 0.0 },
12077   { 220278355222376.97, 20.000000000000000, 20.000000000000000,
12078 	  2.0000000000000000, 0.40000000000000013, 0.0 },
12079   { 1.0422324699794536e+18, 20.000000000000000, 20.000000000000000,
12080 	  2.0000000000000000, 0.50000000000000000, 0.0 },
12081   { 1.9128731788368004e+22, 20.000000000000000, 20.000000000000000,
12082 	  2.0000000000000000, 0.60000000000000009, 0.0 },
12083   { 3.5234592919486348e+27, 20.000000000000000, 20.000000000000000,
12084 	  2.0000000000000000, 0.70000000000000018, 0.0 },
12085   { 5.0867023209025249e+34, 20.000000000000000, 20.000000000000000,
12086 	  2.0000000000000000, 0.80000000000000004, 0.0 },
12087   { 3.7461088506661713e+46, 20.000000000000000, 20.000000000000000,
12088 	  2.0000000000000000, 0.90000000000000013, 0.0 },
12089 };
12090 const double toler241 = 2.5000000000000020e-13;
12091 
12092 // Test data for a=20.000000000000000, b=20.000000000000000, c=4.0000000000000000.
12093 // max(|f - f_GSL|): 4.3327901374988310e+27 at index 18
12094 // max(|f - f_GSL| / |f_GSL|): 2.2075464057599215e-15
12095 // mean(f - f_GSL): 2.2804158618486009e+26
12096 // variance(f - f_GSL): 1.7798116217456159e+67
12097 // stddev(f - f_GSL): 4.2187813663967183e+33
12098 const testcase_hyperg<double>
12099 data242[19] =
12100 {
12101   { -1.5895901122487120e-09, 20.000000000000000, 20.000000000000000,
12102 	  4.0000000000000000, -0.90000000000000002, 0.0 },
12103   { -2.4403576191590296e-09, 20.000000000000000, 20.000000000000000,
12104 	  4.0000000000000000, -0.80000000000000004, 0.0 },
12105   { 1.1622915284663225e-08, 20.000000000000000, 20.000000000000000,
12106 	  4.0000000000000000, -0.69999999999999996, 0.0 },
12107   { 6.3899796223275262e-08, 20.000000000000000, 20.000000000000000,
12108 	  4.0000000000000000, -0.59999999999999998, 0.0 },
12109   { -1.3503608350984134e-07, 20.000000000000000, 20.000000000000000,
12110 	  4.0000000000000000, -0.50000000000000000, 0.0 },
12111   { -1.2198533624395468e-06, 20.000000000000000, 20.000000000000000,
12112 	  4.0000000000000000, -0.39999999999999991, 0.0 },
12113   { 9.9086618121819025e-06, 20.000000000000000, 20.000000000000000,
12114 	  4.0000000000000000, -0.29999999999999993, 0.0 },
12115   { -7.6797020080190715e-05, 20.000000000000000, 20.000000000000000,
12116 	  4.0000000000000000, -0.19999999999999996, 0.0 },
12117   { 0.0013196405087170897, 20.000000000000000, 20.000000000000000,
12118 	  4.0000000000000000, -0.099999999999999978, 0.0 },
12119   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12120 	  4.0000000000000000, 0.0000000000000000, 0.0 },
12121   { 2274.2044768143564, 20.000000000000000, 20.000000000000000,
12122 	  4.0000000000000000, 0.10000000000000009, 0.0 },
12123   { 1611640.1560475677, 20.000000000000000, 20.000000000000000,
12124 	  4.0000000000000000, 0.20000000000000018, 0.0 },
12125   { 1147063984.7359734, 20.000000000000000, 20.000000000000000,
12126 	  4.0000000000000000, 0.30000000000000004, 0.0 },
12127   { 1253162497163.8503, 20.000000000000000, 20.000000000000000,
12128 	  4.0000000000000000, 0.40000000000000013, 0.0 },
12129   { 3071321673390476.0, 20.000000000000000, 20.000000000000000,
12130 	  4.0000000000000000, 0.50000000000000000, 0.0 },
12131   { 2.8221123559124324e+19, 20.000000000000000, 20.000000000000000,
12132 	  4.0000000000000000, 0.60000000000000009, 0.0 },
12133   { 2.3658463807420230e+24, 20.000000000000000, 20.000000000000000,
12134 	  4.0000000000000000, 0.70000000000000018, 0.0 },
12135   { 1.2596553731345468e+31, 20.000000000000000, 20.000000000000000,
12136 	  4.0000000000000000, 0.80000000000000004, 0.0 },
12137   { 1.9627175792063675e+42, 20.000000000000000, 20.000000000000000,
12138 	  4.0000000000000000, 0.90000000000000013, 0.0 },
12139 };
12140 const double toler242 = 2.5000000000000020e-13;
12141 
12142 // Test data for a=20.000000000000000, b=20.000000000000000, c=6.0000000000000000.
12143 // max(|f - f_GSL|): 7.5557863725914323e+23 at index 18
12144 // max(|f - f_GSL| / |f_GSL|): 1.9837376456389093e-15
12145 // mean(f - f_GSL): 3.9767296698428338e+22
12146 // variance(f - f_GSL): 4.6773832769218855e+49
12147 // stddev(f - f_GSL): 6.8391397682178457e+24
12148 const testcase_hyperg<double>
12149 data243[19] =
12150 {
12151   { 8.0159783892777232e-11, 20.000000000000000, 20.000000000000000,
12152 	  6.0000000000000000, -0.90000000000000002, 0.0 },
12153   { -6.4422705184649393e-10, 20.000000000000000, 20.000000000000000,
12154 	  6.0000000000000000, -0.80000000000000004, 0.0 },
12155   { -3.7526132950808576e-09, 20.000000000000000, 20.000000000000000,
12156 	  6.0000000000000000, -0.69999999999999996, 0.0 },
12157   { -1.7692034036274638e-09, 20.000000000000000, 20.000000000000000,
12158 	  6.0000000000000000, -0.59999999999999998, 0.0 },
12159   { 7.9304558764774354e-08, 20.000000000000000, 20.000000000000000,
12160 	  6.0000000000000000, -0.50000000000000000, 0.0 },
12161   { 5.9348070417710214e-08, 20.000000000000000, 20.000000000000000,
12162 	  6.0000000000000000, -0.39999999999999991, 0.0 },
12163   { -3.5827694518623355e-06, 20.000000000000000, 20.000000000000000,
12164 	  6.0000000000000000, -0.29999999999999993, 0.0 },
12165   { 4.4951490418031519e-05, 20.000000000000000, 20.000000000000000,
12166 	  6.0000000000000000, -0.19999999999999996, 0.0 },
12167   { -0.0013716249406309328, 20.000000000000000, 20.000000000000000,
12168 	  6.0000000000000000, -0.099999999999999978, 0.0 },
12169   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12170 	  6.0000000000000000, 0.0000000000000000, 0.0 },
12171   { 415.32493304415505, 20.000000000000000, 20.000000000000000,
12172 	  6.0000000000000000, 0.10000000000000009, 0.0 },
12173   { 121300.42991518755, 20.000000000000000, 20.000000000000000,
12174 	  6.0000000000000000, 0.20000000000000018, 0.0 },
12175   { 42725673.833462097, 20.000000000000000, 20.000000000000000,
12176 	  6.0000000000000000, 0.30000000000000004, 0.0 },
12177   { 24588915328.262096, 20.000000000000000, 20.000000000000000,
12178 	  6.0000000000000000, 0.40000000000000013, 0.0 },
12179   { 31929082412503.652, 20.000000000000000, 20.000000000000000,
12180 	  6.0000000000000000, 0.50000000000000000, 0.0 },
12181   { 1.4934954443280477e+17, 20.000000000000000, 20.000000000000000,
12182 	  6.0000000000000000, 0.60000000000000009, 0.0 },
12183   { 5.7726220597697614e+21, 20.000000000000000, 20.000000000000000,
12184 	  6.0000000000000000, 0.70000000000000018, 0.0 },
12185   { 1.1454387824049374e+28, 20.000000000000000, 20.000000000000000,
12186 	  6.0000000000000000, 0.80000000000000004, 0.0 },
12187   { 3.8088637321584496e+38, 20.000000000000000, 20.000000000000000,
12188 	  6.0000000000000000, 0.90000000000000013, 0.0 },
12189 };
12190 const double toler243 = 2.5000000000000020e-13;
12191 
12192 // Test data for a=20.000000000000000, b=20.000000000000000, c=8.0000000000000000.
12193 // max(|f - f_GSL|): 3.3204139332677193e+20 at index 18
12194 // max(|f - f_GSL| / |f_GSL|): 1.9148846081414276e-15
12195 // mean(f - f_GSL): 1.7475862807802462e+19
12196 // variance(f - f_GSL): 6.4226791492038630e+39
12197 // stddev(f - f_GSL): 8.0141619332303634e+19
12198 const testcase_hyperg<double>
12199 data244[19] =
12200 {
12201   { 1.0699067880816065e-10, 20.000000000000000, 20.000000000000000,
12202 	  8.0000000000000000, -0.90000000000000002, 0.0 },
12203   { 5.4297771645951943e-10, 20.000000000000000, 20.000000000000000,
12204 	  8.0000000000000000, -0.80000000000000004, 0.0 },
12205   { 9.7625476382187751e-10, 20.000000000000000, 20.000000000000000,
12206 	  8.0000000000000000, -0.69999999999999996, 0.0 },
12207   { -6.7257763949908548e-09, 20.000000000000000, 20.000000000000000,
12208 	  8.0000000000000000, -0.59999999999999998, 0.0 },
12209   { -5.4634571496409877e-08, 20.000000000000000, 20.000000000000000,
12210 	  8.0000000000000000, -0.50000000000000000, 0.0 },
12211   { 1.4595644217972025e-07, 20.000000000000000, 20.000000000000000,
12212 	  8.0000000000000000, -0.39999999999999991, 0.0 },
12213   { 3.3515966496921257e-06, 20.000000000000000, 20.000000000000000,
12214 	  8.0000000000000000, -0.29999999999999993, 0.0 },
12215   { -6.5848086985738461e-05, 20.000000000000000, 20.000000000000000,
12216 	  8.0000000000000000, -0.19999999999999996, 0.0 },
12217   { 0.0034800171306214847, 20.000000000000000, 20.000000000000000,
12218 	  8.0000000000000000, -0.099999999999999978, 0.0 },
12219   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12220 	  8.0000000000000000, 0.0000000000000000, 0.0 },
12221   { 130.93865856750304, 20.000000000000000, 20.000000000000000,
12222 	  8.0000000000000000, 0.10000000000000009, 0.0 },
12223   { 17850.203502975721, 20.000000000000000, 20.000000000000000,
12224 	  8.0000000000000000, 0.20000000000000018, 0.0 },
12225   { 3307058.5655149994, 20.000000000000000, 20.000000000000000,
12226 	  8.0000000000000000, 0.30000000000000004, 0.0 },
12227   { 1041065396.2302928, 20.000000000000000, 20.000000000000000,
12228 	  8.0000000000000000, 0.40000000000000013, 0.0 },
12229   { 735221357488.41736, 20.000000000000000, 20.000000000000000,
12230 	  8.0000000000000000, 0.50000000000000000, 0.0 },
12231   { 1785176805049585.2, 20.000000000000000, 20.000000000000000,
12232 	  8.0000000000000000, 0.60000000000000009, 0.0 },
12233   { 3.2302829930269979e+19, 20.000000000000000, 20.000000000000000,
12234 	  8.0000000000000000, 0.70000000000000018, 0.0 },
12235   { 2.4184909805178299e+25, 20.000000000000000, 20.000000000000000,
12236 	  8.0000000000000000, 0.80000000000000004, 0.0 },
12237   { 1.7340021007795807e+35, 20.000000000000000, 20.000000000000000,
12238 	  8.0000000000000000, 0.90000000000000013, 0.0 },
12239 };
12240 const double toler244 = 2.5000000000000020e-13;
12241 
12242 // Test data for a=20.000000000000000, b=20.000000000000000, c=10.000000000000000.
12243 // max(|f - f_GSL|): 3.4227357168015770e+17 at index 18
12244 // max(|f - f_GSL| / |f_GSL|): 2.2509396750113666e-15
12245 // mean(f - f_GSL): 18014398513897048.
12246 // variance(f - f_GSL): 6.1659968607222131e+33
12247 // stddev(f - f_GSL): 78523861728281120.
12248 const testcase_hyperg<double>
12249 data245[19] =
12250 {
12251   { -1.7945360901577764e-10, 20.000000000000000, 20.000000000000000,
12252 	  10.000000000000000, -0.90000000000000002, 0.0 },
12253   { -4.4440665776938741e-10, 20.000000000000000, 20.000000000000000,
12254 	  10.000000000000000, -0.80000000000000004, 0.0 },
12255   { 6.6171615263373664e-10, 20.000000000000000, 20.000000000000000,
12256 	  10.000000000000000, -0.69999999999999996, 0.0 },
12257   { 1.5453889374050929e-08, 20.000000000000000, 20.000000000000000,
12258 	  10.000000000000000, -0.59999999999999998, 0.0 },
12259   { 7.5754083909301490e-08, 20.000000000000000, 20.000000000000000,
12260 	  10.000000000000000, -0.50000000000000000, 0.0 },
12261   { -4.1113628650335901e-07, 20.000000000000000, 20.000000000000000,
12262 	  10.000000000000000, -0.39999999999999991, 0.0 },
12263   { -9.5300704263777713e-06, 20.000000000000000, 20.000000000000000,
12264 	  10.000000000000000, -0.29999999999999993, 0.0 },
12265   { 0.00016081533175773833, 20.000000000000000, 20.000000000000000,
12266 	  10.000000000000000, -0.19999999999999996, 0.0 },
12267   { 0.017684650940379586, 20.000000000000000, 20.000000000000000,
12268 	  10.000000000000000, -0.099999999999999978, 0.0 },
12269   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12270 	  10.000000000000000, 0.0000000000000000, 0.0 },
12271   { 57.562247312454403, 20.000000000000000, 20.000000000000000,
12272 	  10.000000000000000, 0.10000000000000009, 0.0 },
12273   { 4124.4159820362947, 20.000000000000000, 20.000000000000000,
12274 	  10.000000000000000, 0.20000000000000018, 0.0 },
12275   { 428774.21436196787, 20.000000000000000, 20.000000000000000,
12276 	  10.000000000000000, 0.30000000000000004, 0.0 },
12277   { 76996819.900893494, 20.000000000000000, 20.000000000000000,
12278 	  10.000000000000000, 0.40000000000000013, 0.0 },
12279   { 30473174828.943691, 20.000000000000000, 20.000000000000000,
12280 	  10.000000000000000, 0.50000000000000000, 0.0 },
12281   { 39291970835753.094, 20.000000000000000, 20.000000000000000,
12282 	  10.000000000000000, 0.60000000000000009, 0.0 },
12283   { 3.3890331048069786e+17, 20.000000000000000, 20.000000000000000,
12284 	  10.000000000000000, 0.70000000000000018, 0.0 },
12285   { 9.7157373454594049e+22, 20.000000000000000, 20.000000000000000,
12286 	  10.000000000000000, 0.80000000000000004, 0.0 },
12287   { 1.5205808288861820e+32, 20.000000000000000, 20.000000000000000,
12288 	  10.000000000000000, 0.90000000000000013, 0.0 },
12289 };
12290 const double toler245 = 2.5000000000000020e-13;
12291 
12292 template<typename Ret, unsigned int Num>
12293   void
test(const testcase_hyperg<Ret> (& data)[Num],Ret toler)12294   test(const testcase_hyperg<Ret> (&data)[Num], Ret toler)
12295   {
12296     bool test __attribute__((unused)) = true;
12297     const Ret eps = std::numeric_limits<Ret>::epsilon();
12298     Ret max_abs_diff = -Ret(1);
12299     Ret max_abs_frac = -Ret(1);
12300     unsigned int num_datum = Num;
12301     for (unsigned int i = 0; i < num_datum; ++i)
12302       {
12303 	const Ret f = __gnu_cxx::hyperg(data[i].a, data[i].b,
12304 		     data[i].c, data[i].x);
12305 	const Ret f0 = data[i].f0;
12306 	const Ret diff = f - f0;
12307 	if (std::abs(diff) > max_abs_diff)
12308 	  max_abs_diff = std::abs(diff);
12309 	if (std::abs(f0) > Ret(10) * eps
12310 	 && std::abs(f) > Ret(10) * eps)
12311 	  {
12312 	    const Ret frac = diff / f0;
12313 	    if (std::abs(frac) > max_abs_frac)
12314 	      max_abs_frac = std::abs(frac);
12315 	  }
12316       }
12317     VERIFY(max_abs_frac < toler);
12318   }
12319 
12320 int
main()12321 main()
12322 {
12323   test(data001, toler001);
12324   test(data002, toler002);
12325   test(data003, toler003);
12326   test(data004, toler004);
12327   test(data005, toler005);
12328   test(data006, toler006);
12329   test(data007, toler007);
12330   test(data008, toler008);
12331   test(data009, toler009);
12332   test(data010, toler010);
12333   test(data011, toler011);
12334   test(data012, toler012);
12335   test(data013, toler013);
12336   test(data014, toler014);
12337   test(data015, toler015);
12338   test(data016, toler016);
12339   test(data017, toler017);
12340   test(data018, toler018);
12341   test(data019, toler019);
12342   test(data020, toler020);
12343   test(data021, toler021);
12344   test(data022, toler022);
12345   test(data023, toler023);
12346   test(data024, toler024);
12347   test(data025, toler025);
12348   test(data026, toler026);
12349   test(data027, toler027);
12350   test(data028, toler028);
12351   test(data029, toler029);
12352   test(data030, toler030);
12353   test(data031, toler031);
12354   test(data032, toler032);
12355   test(data033, toler033);
12356   test(data034, toler034);
12357   test(data035, toler035);
12358   test(data036, toler036);
12359   test(data037, toler037);
12360   test(data038, toler038);
12361   test(data039, toler039);
12362   test(data040, toler040);
12363   test(data041, toler041);
12364   test(data042, toler042);
12365   test(data043, toler043);
12366   test(data044, toler044);
12367   test(data045, toler045);
12368   test(data046, toler046);
12369   test(data047, toler047);
12370   test(data048, toler048);
12371   test(data049, toler049);
12372   test(data050, toler050);
12373   test(data051, toler051);
12374   test(data052, toler052);
12375   test(data053, toler053);
12376   test(data054, toler054);
12377   test(data055, toler055);
12378   test(data056, toler056);
12379   test(data057, toler057);
12380   test(data058, toler058);
12381   test(data059, toler059);
12382   test(data060, toler060);
12383   test(data061, toler061);
12384   test(data062, toler062);
12385   test(data063, toler063);
12386   test(data064, toler064);
12387   test(data065, toler065);
12388   test(data066, toler066);
12389   test(data067, toler067);
12390   test(data068, toler068);
12391   test(data069, toler069);
12392   test(data070, toler070);
12393   test(data071, toler071);
12394   test(data072, toler072);
12395   test(data073, toler073);
12396   test(data074, toler074);
12397   test(data075, toler075);
12398   test(data076, toler076);
12399   test(data077, toler077);
12400   test(data078, toler078);
12401   test(data079, toler079);
12402   test(data080, toler080);
12403   test(data081, toler081);
12404   test(data082, toler082);
12405   test(data083, toler083);
12406   test(data084, toler084);
12407   test(data085, toler085);
12408   test(data086, toler086);
12409   test(data087, toler087);
12410   test(data088, toler088);
12411   test(data089, toler089);
12412   test(data090, toler090);
12413   test(data091, toler091);
12414   test(data092, toler092);
12415   test(data093, toler093);
12416   test(data094, toler094);
12417   test(data095, toler095);
12418   test(data096, toler096);
12419   test(data097, toler097);
12420   test(data098, toler098);
12421   test(data099, toler099);
12422   test(data100, toler100);
12423   test(data101, toler101);
12424   test(data102, toler102);
12425   test(data103, toler103);
12426   test(data104, toler104);
12427   test(data105, toler105);
12428   test(data106, toler106);
12429   test(data107, toler107);
12430   test(data108, toler108);
12431   test(data109, toler109);
12432   test(data110, toler110);
12433   test(data111, toler111);
12434   test(data112, toler112);
12435   test(data113, toler113);
12436   test(data114, toler114);
12437   test(data115, toler115);
12438   test(data116, toler116);
12439   test(data117, toler117);
12440   test(data118, toler118);
12441   test(data119, toler119);
12442   test(data120, toler120);
12443   test(data121, toler121);
12444   test(data122, toler122);
12445   test(data123, toler123);
12446   test(data124, toler124);
12447   test(data125, toler125);
12448   test(data126, toler126);
12449   test(data127, toler127);
12450   test(data128, toler128);
12451   test(data129, toler129);
12452   test(data130, toler130);
12453   test(data131, toler131);
12454   test(data132, toler132);
12455   test(data133, toler133);
12456   test(data134, toler134);
12457   test(data135, toler135);
12458   test(data136, toler136);
12459   test(data137, toler137);
12460   test(data138, toler138);
12461   test(data139, toler139);
12462   test(data140, toler140);
12463   test(data141, toler141);
12464   test(data142, toler142);
12465   test(data143, toler143);
12466   test(data144, toler144);
12467   test(data145, toler145);
12468   test(data146, toler146);
12469   test(data147, toler147);
12470   test(data148, toler148);
12471   test(data149, toler149);
12472   test(data150, toler150);
12473   test(data151, toler151);
12474   test(data152, toler152);
12475   test(data153, toler153);
12476   test(data154, toler154);
12477   test(data155, toler155);
12478   test(data156, toler156);
12479   test(data157, toler157);
12480   test(data158, toler158);
12481   test(data159, toler159);
12482   test(data160, toler160);
12483   test(data161, toler161);
12484   test(data162, toler162);
12485   test(data163, toler163);
12486   test(data164, toler164);
12487   test(data165, toler165);
12488   test(data166, toler166);
12489   test(data167, toler167);
12490   test(data168, toler168);
12491   test(data169, toler169);
12492   test(data170, toler170);
12493   test(data171, toler171);
12494   test(data172, toler172);
12495   test(data173, toler173);
12496   test(data174, toler174);
12497   test(data175, toler175);
12498   test(data176, toler176);
12499   test(data177, toler177);
12500   test(data178, toler178);
12501   test(data179, toler179);
12502   test(data180, toler180);
12503   test(data181, toler181);
12504   test(data182, toler182);
12505   test(data183, toler183);
12506   test(data184, toler184);
12507   test(data185, toler185);
12508   test(data186, toler186);
12509   test(data187, toler187);
12510   test(data188, toler188);
12511   test(data189, toler189);
12512   test(data190, toler190);
12513   test(data191, toler191);
12514   test(data192, toler192);
12515   test(data193, toler193);
12516   test(data194, toler194);
12517   test(data195, toler195);
12518   test(data196, toler196);
12519   test(data197, toler197);
12520   test(data198, toler198);
12521   test(data199, toler199);
12522   test(data200, toler200);
12523   test(data201, toler201);
12524   test(data202, toler202);
12525   test(data203, toler203);
12526   test(data204, toler204);
12527   test(data205, toler205);
12528   test(data206, toler206);
12529   test(data207, toler207);
12530   test(data208, toler208);
12531   test(data209, toler209);
12532   test(data210, toler210);
12533   test(data211, toler211);
12534   test(data212, toler212);
12535   test(data213, toler213);
12536   test(data214, toler214);
12537   test(data215, toler215);
12538   test(data216, toler216);
12539   test(data217, toler217);
12540   test(data218, toler218);
12541   test(data219, toler219);
12542   test(data220, toler220);
12543   test(data221, toler221);
12544   test(data222, toler222);
12545   test(data223, toler223);
12546   test(data224, toler224);
12547   test(data225, toler225);
12548   test(data226, toler226);
12549   test(data227, toler227);
12550   test(data228, toler228);
12551   test(data229, toler229);
12552   test(data230, toler230);
12553   test(data231, toler231);
12554   test(data232, toler232);
12555   test(data233, toler233);
12556   test(data234, toler234);
12557   test(data235, toler235);
12558   test(data236, toler236);
12559   test(data237, toler237);
12560   test(data238, toler238);
12561   test(data239, toler239);
12562   test(data240, toler240);
12563   test(data241, toler241);
12564   test(data242, toler242);
12565   test(data243, toler243);
12566   test(data244, toler244);
12567   test(data245, toler245);
12568   return 0;
12569 }
12570