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 //
5 // Copyright (C) 2016-2018 Free Software Foundation, Inc.
6 //
7 // This file is part of the GNU ISO C++ Library.  This library is free
8 // software; you can redistribute it and/or modify it under the
9 // terms of the GNU General Public License as published by the
10 // Free Software Foundation; either version 3, or (at your option)
11 // any later version.
12 //
13 // This library is distributed in the hope that it will be useful,
14 // but WITHOUT ANY WARRANTY; without even the implied warranty of
15 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16 // GNU General Public License for more details.
17 //
18 // You should have received a copy of the GNU General Public License along
19 // with this library; see the file COPYING3.  If not see
20 // <http://www.gnu.org/licenses/>.
21 
22 //  hyperg
23 //  Compare against values generated by the GNU Scientific Library.
24 //  The GSL can be found on the web: http://www.gnu.org/software/gsl/
25 #include <limits>
26 #include <cmath>
27 #if defined(__TEST_DEBUG)
28 #  include <iostream>
29 #  define VERIFY(A) \
30   if (!(A)) \
31     { \
32       std::cout << "line " << __LINE__ \
33 	<< "  max_abs_frac = " << max_abs_frac \
34 	<< std::endl; \
35     }
36 #else
37 #  include <testsuite_hooks.h>
38 #endif
39 #include <specfun_testcase.h>
40 
41 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
42 // max(|f - f_GSL|): 0.0000000000000000 at index 0
43 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
44 // mean(f - f_GSL): 0.0000000000000000
45 // variance(f - f_GSL): 0.0000000000000000
46 // stddev(f - f_GSL): 0.0000000000000000
47 const testcase_hyperg<double>
48 data001[19] =
49 {
50   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
51 	  2.0000000000000000, -0.90000000000000002, 0.0 },
52   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
53 	  2.0000000000000000, -0.80000000000000004, 0.0 },
54   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
55 	  2.0000000000000000, -0.69999999999999996, 0.0 },
56   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
57 	  2.0000000000000000, -0.59999999999999998, 0.0 },
58   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
59 	  2.0000000000000000, -0.50000000000000000, 0.0 },
60   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
61 	  2.0000000000000000, -0.39999999999999991, 0.0 },
62   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
63 	  2.0000000000000000, -0.29999999999999993, 0.0 },
64   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
65 	  2.0000000000000000, -0.19999999999999996, 0.0 },
66   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
67 	  2.0000000000000000, -0.099999999999999978, 0.0 },
68   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
69 	  2.0000000000000000, 0.0000000000000000, 0.0 },
70   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
71 	  2.0000000000000000, 0.10000000000000009, 0.0 },
72   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
73 	  2.0000000000000000, 0.20000000000000018, 0.0 },
74   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
75 	  2.0000000000000000, 0.30000000000000004, 0.0 },
76   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
77 	  2.0000000000000000, 0.40000000000000013, 0.0 },
78   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
79 	  2.0000000000000000, 0.50000000000000000, 0.0 },
80   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
81 	  2.0000000000000000, 0.60000000000000009, 0.0 },
82   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
83 	  2.0000000000000000, 0.70000000000000018, 0.0 },
84   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
85 	  2.0000000000000000, 0.80000000000000004, 0.0 },
86   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
87 	  2.0000000000000000, 0.90000000000000013, 0.0 },
88 };
89 const double toler001 = 2.5000000000000020e-13;
90 
91 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
92 // max(|f - f_GSL|): 0.0000000000000000 at index 0
93 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
94 // mean(f - f_GSL): 0.0000000000000000
95 // variance(f - f_GSL): 0.0000000000000000
96 // stddev(f - f_GSL): 0.0000000000000000
97 const testcase_hyperg<double>
98 data002[19] =
99 {
100   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
102   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
104   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
106   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
108   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
110   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
112   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
114   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
116   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
118   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
120   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
122   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
124   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
126   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
128   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
130   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
132   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
134   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
136   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
138 };
139 const double toler002 = 2.5000000000000020e-13;
140 
141 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
142 // max(|f - f_GSL|): 0.0000000000000000 at index 0
143 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
144 // mean(f - f_GSL): 0.0000000000000000
145 // variance(f - f_GSL): 0.0000000000000000
146 // stddev(f - f_GSL): 0.0000000000000000
147 const testcase_hyperg<double>
148 data003[19] =
149 {
150   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
152   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
154   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
156   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
158   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
160   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
162   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
164   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
166   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
168   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
170   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
172   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
174   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
176   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
178   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
180   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
182   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
184   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
186   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
188 };
189 const double toler003 = 2.5000000000000020e-13;
190 
191 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
192 // max(|f - f_GSL|): 0.0000000000000000 at index 0
193 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
194 // mean(f - f_GSL): 0.0000000000000000
195 // variance(f - f_GSL): 0.0000000000000000
196 // stddev(f - f_GSL): 0.0000000000000000
197 const testcase_hyperg<double>
198 data004[19] =
199 {
200   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
202   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
204   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
206   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
208   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
210   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
212   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
214   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
216   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
218   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
220   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
222   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
224   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
226   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
228   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
230   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
232   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
234   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
236   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
238 };
239 const double toler004 = 2.5000000000000020e-13;
240 
241 // Test data for a=0.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
242 // max(|f - f_GSL|): 0.0000000000000000 at index 0
243 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
244 // mean(f - f_GSL): 0.0000000000000000
245 // variance(f - f_GSL): 0.0000000000000000
246 // stddev(f - f_GSL): 0.0000000000000000
247 const testcase_hyperg<double>
248 data005[19] =
249 {
250   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
251 	  10.000000000000000, -0.90000000000000002, 0.0 },
252   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
253 	  10.000000000000000, -0.80000000000000004, 0.0 },
254   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
255 	  10.000000000000000, -0.69999999999999996, 0.0 },
256   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
257 	  10.000000000000000, -0.59999999999999998, 0.0 },
258   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
259 	  10.000000000000000, -0.50000000000000000, 0.0 },
260   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
261 	  10.000000000000000, -0.39999999999999991, 0.0 },
262   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
263 	  10.000000000000000, -0.29999999999999993, 0.0 },
264   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
265 	  10.000000000000000, -0.19999999999999996, 0.0 },
266   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
267 	  10.000000000000000, -0.099999999999999978, 0.0 },
268   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
269 	  10.000000000000000, 0.0000000000000000, 0.0 },
270   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
271 	  10.000000000000000, 0.10000000000000009, 0.0 },
272   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
273 	  10.000000000000000, 0.20000000000000018, 0.0 },
274   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
275 	  10.000000000000000, 0.30000000000000004, 0.0 },
276   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
277 	  10.000000000000000, 0.40000000000000013, 0.0 },
278   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
279 	  10.000000000000000, 0.50000000000000000, 0.0 },
280   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
281 	  10.000000000000000, 0.60000000000000009, 0.0 },
282   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
283 	  10.000000000000000, 0.70000000000000018, 0.0 },
284   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
285 	  10.000000000000000, 0.80000000000000004, 0.0 },
286   { 1.0000000000000000, 0.0000000000000000, 0.0000000000000000,
287 	  10.000000000000000, 0.90000000000000013, 0.0 },
288 };
289 const double toler005 = 2.5000000000000020e-13;
290 
291 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
292 // max(|f - f_GSL|): 0.0000000000000000 at index 0
293 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
294 // mean(f - f_GSL): 0.0000000000000000
295 // variance(f - f_GSL): 0.0000000000000000
296 // stddev(f - f_GSL): 0.0000000000000000
297 const testcase_hyperg<double>
298 data006[19] =
299 {
300   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
302   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
304   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
306   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
308   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
310   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
312   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
314   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
316   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
318   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
320   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
322   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
324   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
326   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
328   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
330   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
332   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
334   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
336   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
338 };
339 const double toler006 = 2.5000000000000020e-13;
340 
341 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
342 // max(|f - f_GSL|): 0.0000000000000000 at index 0
343 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
344 // mean(f - f_GSL): 0.0000000000000000
345 // variance(f - f_GSL): 0.0000000000000000
346 // stddev(f - f_GSL): 0.0000000000000000
347 const testcase_hyperg<double>
348 data007[19] =
349 {
350   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
352   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
354   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
356   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
358   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
360   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
362   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
364   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
366   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
368   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
370   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
372   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
374   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
376   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
378   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
380   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
382   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
384   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
386   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
388 };
389 const double toler007 = 2.5000000000000020e-13;
390 
391 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
392 // max(|f - f_GSL|): 0.0000000000000000 at index 0
393 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
394 // mean(f - f_GSL): 0.0000000000000000
395 // variance(f - f_GSL): 0.0000000000000000
396 // stddev(f - f_GSL): 0.0000000000000000
397 const testcase_hyperg<double>
398 data008[19] =
399 {
400   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
402   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
404   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
406   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
408   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
410   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
412   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
414   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
416   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
418   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
420   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
422   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
424   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
426   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
428   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
430   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
432   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
434   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
436   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
438 };
439 const double toler008 = 2.5000000000000020e-13;
440 
441 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
442 // max(|f - f_GSL|): 0.0000000000000000 at index 0
443 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
444 // mean(f - f_GSL): 0.0000000000000000
445 // variance(f - f_GSL): 0.0000000000000000
446 // stddev(f - f_GSL): 0.0000000000000000
447 const testcase_hyperg<double>
448 data009[19] =
449 {
450   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
452   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
454   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
456   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
458   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
460   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
462   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
464   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
466   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
468   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
470   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
472   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
474   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
476   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
478   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
480   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
482   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
484   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
486   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
488 };
489 const double toler009 = 2.5000000000000020e-13;
490 
491 // Test data for a=0.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
492 // max(|f - f_GSL|): 0.0000000000000000 at index 0
493 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
494 // mean(f - f_GSL): 0.0000000000000000
495 // variance(f - f_GSL): 0.0000000000000000
496 // stddev(f - f_GSL): 0.0000000000000000
497 const testcase_hyperg<double>
498 data010[19] =
499 {
500   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
501 	  10.000000000000000, -0.90000000000000002, 0.0 },
502   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
503 	  10.000000000000000, -0.80000000000000004, 0.0 },
504   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
505 	  10.000000000000000, -0.69999999999999996, 0.0 },
506   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
507 	  10.000000000000000, -0.59999999999999998, 0.0 },
508   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
509 	  10.000000000000000, -0.50000000000000000, 0.0 },
510   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
511 	  10.000000000000000, -0.39999999999999991, 0.0 },
512   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
513 	  10.000000000000000, -0.29999999999999993, 0.0 },
514   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
515 	  10.000000000000000, -0.19999999999999996, 0.0 },
516   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
517 	  10.000000000000000, -0.099999999999999978, 0.0 },
518   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
519 	  10.000000000000000, 0.0000000000000000, 0.0 },
520   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
521 	  10.000000000000000, 0.10000000000000009, 0.0 },
522   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
523 	  10.000000000000000, 0.20000000000000018, 0.0 },
524   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
525 	  10.000000000000000, 0.30000000000000004, 0.0 },
526   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
527 	  10.000000000000000, 0.40000000000000013, 0.0 },
528   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
529 	  10.000000000000000, 0.50000000000000000, 0.0 },
530   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
531 	  10.000000000000000, 0.60000000000000009, 0.0 },
532   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
533 	  10.000000000000000, 0.70000000000000018, 0.0 },
534   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
535 	  10.000000000000000, 0.80000000000000004, 0.0 },
536   { 1.0000000000000000, 0.0000000000000000, 0.50000000000000000,
537 	  10.000000000000000, 0.90000000000000013, 0.0 },
538 };
539 const double toler010 = 2.5000000000000020e-13;
540 
541 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
542 // max(|f - f_GSL|): 0.0000000000000000 at index 0
543 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
544 // mean(f - f_GSL): 0.0000000000000000
545 // variance(f - f_GSL): 0.0000000000000000
546 // stddev(f - f_GSL): 0.0000000000000000
547 const testcase_hyperg<double>
548 data011[19] =
549 {
550   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
552   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
554   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
556   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
558   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
560   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
562   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
564   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
566   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
568   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
570   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
572   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
574   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
576   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
578   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
580   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
582   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
584   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
586   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
588 };
589 const double toler011 = 2.5000000000000020e-13;
590 
591 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
592 // max(|f - f_GSL|): 0.0000000000000000 at index 0
593 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
594 // mean(f - f_GSL): 0.0000000000000000
595 // variance(f - f_GSL): 0.0000000000000000
596 // stddev(f - f_GSL): 0.0000000000000000
597 const testcase_hyperg<double>
598 data012[19] =
599 {
600   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
602   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
604   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
606   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
608   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
610   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
612   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
614   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
616   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
618   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
620   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
622   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
624   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
626   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
628   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
630   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
632   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
634   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
636   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
638 };
639 const double toler012 = 2.5000000000000020e-13;
640 
641 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
642 // max(|f - f_GSL|): 0.0000000000000000 at index 0
643 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
644 // mean(f - f_GSL): 0.0000000000000000
645 // variance(f - f_GSL): 0.0000000000000000
646 // stddev(f - f_GSL): 0.0000000000000000
647 const testcase_hyperg<double>
648 data013[19] =
649 {
650   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
652   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
654   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
656   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
658   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
660   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
662   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
664   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
666   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
668   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
670   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
672   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
674   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
676   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
678   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
680   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
682   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
684   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
686   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
688 };
689 const double toler013 = 2.5000000000000020e-13;
690 
691 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
692 // max(|f - f_GSL|): 0.0000000000000000 at index 0
693 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
694 // mean(f - f_GSL): 0.0000000000000000
695 // variance(f - f_GSL): 0.0000000000000000
696 // stddev(f - f_GSL): 0.0000000000000000
697 const testcase_hyperg<double>
698 data014[19] =
699 {
700   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
702   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
704   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
706   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
708   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
710   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
712   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
714   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
716   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
718   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
720   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
722   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
724   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
726   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
728   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
730   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
732   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
734   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
736   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
738 };
739 const double toler014 = 2.5000000000000020e-13;
740 
741 // Test data for a=0.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
742 // max(|f - f_GSL|): 0.0000000000000000 at index 0
743 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
744 // mean(f - f_GSL): 0.0000000000000000
745 // variance(f - f_GSL): 0.0000000000000000
746 // stddev(f - f_GSL): 0.0000000000000000
747 const testcase_hyperg<double>
748 data015[19] =
749 {
750   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
751 	  10.000000000000000, -0.90000000000000002, 0.0 },
752   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
753 	  10.000000000000000, -0.80000000000000004, 0.0 },
754   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
755 	  10.000000000000000, -0.69999999999999996, 0.0 },
756   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
757 	  10.000000000000000, -0.59999999999999998, 0.0 },
758   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
759 	  10.000000000000000, -0.50000000000000000, 0.0 },
760   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
761 	  10.000000000000000, -0.39999999999999991, 0.0 },
762   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
763 	  10.000000000000000, -0.29999999999999993, 0.0 },
764   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
765 	  10.000000000000000, -0.19999999999999996, 0.0 },
766   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
767 	  10.000000000000000, -0.099999999999999978, 0.0 },
768   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
769 	  10.000000000000000, 0.0000000000000000, 0.0 },
770   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
771 	  10.000000000000000, 0.10000000000000009, 0.0 },
772   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
773 	  10.000000000000000, 0.20000000000000018, 0.0 },
774   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
775 	  10.000000000000000, 0.30000000000000004, 0.0 },
776   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
777 	  10.000000000000000, 0.40000000000000013, 0.0 },
778   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
779 	  10.000000000000000, 0.50000000000000000, 0.0 },
780   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
781 	  10.000000000000000, 0.60000000000000009, 0.0 },
782   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
783 	  10.000000000000000, 0.70000000000000018, 0.0 },
784   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
785 	  10.000000000000000, 0.80000000000000004, 0.0 },
786   { 1.0000000000000000, 0.0000000000000000, 1.0000000000000000,
787 	  10.000000000000000, 0.90000000000000013, 0.0 },
788 };
789 const double toler015 = 2.5000000000000020e-13;
790 
791 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
792 // max(|f - f_GSL|): 0.0000000000000000 at index 0
793 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
794 // mean(f - f_GSL): 0.0000000000000000
795 // variance(f - f_GSL): 0.0000000000000000
796 // stddev(f - f_GSL): 0.0000000000000000
797 const testcase_hyperg<double>
798 data016[19] =
799 {
800   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
802   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
804   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
806   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
808   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
810   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
812   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
814   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
816   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
818   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
820   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
822   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
824   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
826   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
828   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
830   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
832   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
834   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
836   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
838 };
839 const double toler016 = 2.5000000000000020e-13;
840 
841 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
842 // max(|f - f_GSL|): 0.0000000000000000 at index 0
843 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
844 // mean(f - f_GSL): 0.0000000000000000
845 // variance(f - f_GSL): 0.0000000000000000
846 // stddev(f - f_GSL): 0.0000000000000000
847 const testcase_hyperg<double>
848 data017[19] =
849 {
850   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
852   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
854   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
856   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
858   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
860   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
862   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
864   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
866   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
868   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
870   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
872   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
874   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
876   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
878   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
880   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
882   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
884   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
886   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
888 };
889 const double toler017 = 2.5000000000000020e-13;
890 
891 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
892 // max(|f - f_GSL|): 0.0000000000000000 at index 0
893 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
894 // mean(f - f_GSL): 0.0000000000000000
895 // variance(f - f_GSL): 0.0000000000000000
896 // stddev(f - f_GSL): 0.0000000000000000
897 const testcase_hyperg<double>
898 data018[19] =
899 {
900   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
902   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
904   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
906   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
908   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
910   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
912   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
914   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
916   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
918   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
920   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
922   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
924   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
926   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
928   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
930   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
932   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
934   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
936   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
938 };
939 const double toler018 = 2.5000000000000020e-13;
940 
941 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
942 // max(|f - f_GSL|): 0.0000000000000000 at index 0
943 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
944 // mean(f - f_GSL): 0.0000000000000000
945 // variance(f - f_GSL): 0.0000000000000000
946 // stddev(f - f_GSL): 0.0000000000000000
947 const testcase_hyperg<double>
948 data019[19] =
949 {
950   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
952   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
954   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
956   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
958   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
960   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
962   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
964   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
966   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
968   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
970   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
972   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
974   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
976   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
978   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
980   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
982   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
984   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
986   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
988 };
989 const double toler019 = 2.5000000000000020e-13;
990 
991 // Test data for a=0.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
992 // max(|f - f_GSL|): 0.0000000000000000 at index 0
993 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
994 // mean(f - f_GSL): 0.0000000000000000
995 // variance(f - f_GSL): 0.0000000000000000
996 // stddev(f - f_GSL): 0.0000000000000000
997 const testcase_hyperg<double>
998 data020[19] =
999 {
1000   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1001 	  10.000000000000000, -0.90000000000000002, 0.0 },
1002   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1003 	  10.000000000000000, -0.80000000000000004, 0.0 },
1004   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1005 	  10.000000000000000, -0.69999999999999996, 0.0 },
1006   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1007 	  10.000000000000000, -0.59999999999999998, 0.0 },
1008   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1009 	  10.000000000000000, -0.50000000000000000, 0.0 },
1010   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1011 	  10.000000000000000, -0.39999999999999991, 0.0 },
1012   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1013 	  10.000000000000000, -0.29999999999999993, 0.0 },
1014   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1015 	  10.000000000000000, -0.19999999999999996, 0.0 },
1016   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1017 	  10.000000000000000, -0.099999999999999978, 0.0 },
1018   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1019 	  10.000000000000000, 0.0000000000000000, 0.0 },
1020   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1021 	  10.000000000000000, 0.10000000000000009, 0.0 },
1022   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1023 	  10.000000000000000, 0.20000000000000018, 0.0 },
1024   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1025 	  10.000000000000000, 0.30000000000000004, 0.0 },
1026   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1027 	  10.000000000000000, 0.40000000000000013, 0.0 },
1028   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1029 	  10.000000000000000, 0.50000000000000000, 0.0 },
1030   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1031 	  10.000000000000000, 0.60000000000000009, 0.0 },
1032   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1033 	  10.000000000000000, 0.70000000000000018, 0.0 },
1034   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1035 	  10.000000000000000, 0.80000000000000004, 0.0 },
1036   { 1.0000000000000000, 0.0000000000000000, 2.0000000000000000,
1037 	  10.000000000000000, 0.90000000000000013, 0.0 },
1038 };
1039 const double toler020 = 2.5000000000000020e-13;
1040 
1041 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
1042 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1043 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1044 // mean(f - f_GSL): 0.0000000000000000
1045 // variance(f - f_GSL): 0.0000000000000000
1046 // stddev(f - f_GSL): 0.0000000000000000
1047 const testcase_hyperg<double>
1048 data021[19] =
1049 {
1050   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1052   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1054   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1056   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1058   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1060   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1062   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1064   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1066   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1068   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1070   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1072   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1074   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1076   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1078   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1080   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1082   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1084   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1086   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1088 };
1089 const double toler021 = 2.5000000000000020e-13;
1090 
1091 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
1092 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1093 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1094 // mean(f - f_GSL): 0.0000000000000000
1095 // variance(f - f_GSL): 0.0000000000000000
1096 // stddev(f - f_GSL): 0.0000000000000000
1097 const testcase_hyperg<double>
1098 data022[19] =
1099 {
1100   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1102   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1104   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1106   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1108   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1110   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1112   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1114   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1116   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1118   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1120   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1122   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1124   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1126   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1128   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1130   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1132   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1134   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1136   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1138 };
1139 const double toler022 = 2.5000000000000020e-13;
1140 
1141 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
1142 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1143 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1144 // mean(f - f_GSL): 0.0000000000000000
1145 // variance(f - f_GSL): 0.0000000000000000
1146 // stddev(f - f_GSL): 0.0000000000000000
1147 const testcase_hyperg<double>
1148 data023[19] =
1149 {
1150   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1152   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1154   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1156   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1158   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1160   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1162   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1164   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1166   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1168   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1170   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1172   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1174   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1176   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1178   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1180   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1182   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1184   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1186   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1188 };
1189 const double toler023 = 2.5000000000000020e-13;
1190 
1191 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
1192 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1193 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1194 // mean(f - f_GSL): 0.0000000000000000
1195 // variance(f - f_GSL): 0.0000000000000000
1196 // stddev(f - f_GSL): 0.0000000000000000
1197 const testcase_hyperg<double>
1198 data024[19] =
1199 {
1200   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1202   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1204   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1206   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1208   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1210   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1212   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1214   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1216   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1218   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1220   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1222   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1224   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1226   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1228   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1230   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1232   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1234   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1236   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1238 };
1239 const double toler024 = 2.5000000000000020e-13;
1240 
1241 // Test data for a=0.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
1242 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1243 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1244 // mean(f - f_GSL): 0.0000000000000000
1245 // variance(f - f_GSL): 0.0000000000000000
1246 // stddev(f - f_GSL): 0.0000000000000000
1247 const testcase_hyperg<double>
1248 data025[19] =
1249 {
1250   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1251 	  10.000000000000000, -0.90000000000000002, 0.0 },
1252   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1253 	  10.000000000000000, -0.80000000000000004, 0.0 },
1254   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1255 	  10.000000000000000, -0.69999999999999996, 0.0 },
1256   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1257 	  10.000000000000000, -0.59999999999999998, 0.0 },
1258   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1259 	  10.000000000000000, -0.50000000000000000, 0.0 },
1260   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1261 	  10.000000000000000, -0.39999999999999991, 0.0 },
1262   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1263 	  10.000000000000000, -0.29999999999999993, 0.0 },
1264   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1265 	  10.000000000000000, -0.19999999999999996, 0.0 },
1266   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1267 	  10.000000000000000, -0.099999999999999978, 0.0 },
1268   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1269 	  10.000000000000000, 0.0000000000000000, 0.0 },
1270   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1271 	  10.000000000000000, 0.10000000000000009, 0.0 },
1272   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1273 	  10.000000000000000, 0.20000000000000018, 0.0 },
1274   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1275 	  10.000000000000000, 0.30000000000000004, 0.0 },
1276   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1277 	  10.000000000000000, 0.40000000000000013, 0.0 },
1278   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1279 	  10.000000000000000, 0.50000000000000000, 0.0 },
1280   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1281 	  10.000000000000000, 0.60000000000000009, 0.0 },
1282   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1283 	  10.000000000000000, 0.70000000000000018, 0.0 },
1284   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1285 	  10.000000000000000, 0.80000000000000004, 0.0 },
1286   { 1.0000000000000000, 0.0000000000000000, 5.0000000000000000,
1287 	  10.000000000000000, 0.90000000000000013, 0.0 },
1288 };
1289 const double toler025 = 2.5000000000000020e-13;
1290 
1291 // Test data for a=0.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
1292 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1293 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1294 // mean(f - f_GSL): 0.0000000000000000
1295 // variance(f - f_GSL): 0.0000000000000000
1296 // stddev(f - f_GSL): 0.0000000000000000
1297 const testcase_hyperg<double>
1298 data026[19] =
1299 {
1300   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1302   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1304   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1306   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1308   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1310   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1312   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1314   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1316   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1318   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1320   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1322   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1324   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1326   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1328   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1330   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1332   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1334   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1336   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1338 };
1339 const double toler026 = 2.5000000000000020e-13;
1340 
1341 // Test data for a=0.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
1342 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1343 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1344 // mean(f - f_GSL): 0.0000000000000000
1345 // variance(f - f_GSL): 0.0000000000000000
1346 // stddev(f - f_GSL): 0.0000000000000000
1347 const testcase_hyperg<double>
1348 data027[19] =
1349 {
1350   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1352   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1354   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1356   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1358   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1360   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1362   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1364   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1366   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1368   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1370   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1372   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1374   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1376   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1378   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1380   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1382   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1384   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1386   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1388 };
1389 const double toler027 = 2.5000000000000020e-13;
1390 
1391 // Test data for a=0.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
1392 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1393 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1394 // mean(f - f_GSL): 0.0000000000000000
1395 // variance(f - f_GSL): 0.0000000000000000
1396 // stddev(f - f_GSL): 0.0000000000000000
1397 const testcase_hyperg<double>
1398 data028[19] =
1399 {
1400   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1402   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1404   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1406   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1408   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1410   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1412   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1414   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1416   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1418   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1420   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1422   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1424   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1426   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1428   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1430   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1432   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1434   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1436   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1438 };
1439 const double toler028 = 2.5000000000000020e-13;
1440 
1441 // Test data for a=0.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
1442 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1443 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1444 // mean(f - f_GSL): 0.0000000000000000
1445 // variance(f - f_GSL): 0.0000000000000000
1446 // stddev(f - f_GSL): 0.0000000000000000
1447 const testcase_hyperg<double>
1448 data029[19] =
1449 {
1450   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1452   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1454   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1456   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1458   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1460   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1462   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1464   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1466   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1468   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1470   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1472   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1474   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1476   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1478   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1480   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1482   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1484   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1486   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1488 };
1489 const double toler029 = 2.5000000000000020e-13;
1490 
1491 // Test data for a=0.0000000000000000, b=10.000000000000000, c=10.000000000000000.
1492 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1493 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1494 // mean(f - f_GSL): 0.0000000000000000
1495 // variance(f - f_GSL): 0.0000000000000000
1496 // stddev(f - f_GSL): 0.0000000000000000
1497 const testcase_hyperg<double>
1498 data030[19] =
1499 {
1500   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1501 	  10.000000000000000, -0.90000000000000002, 0.0 },
1502   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1503 	  10.000000000000000, -0.80000000000000004, 0.0 },
1504   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1505 	  10.000000000000000, -0.69999999999999996, 0.0 },
1506   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1507 	  10.000000000000000, -0.59999999999999998, 0.0 },
1508   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1509 	  10.000000000000000, -0.50000000000000000, 0.0 },
1510   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1511 	  10.000000000000000, -0.39999999999999991, 0.0 },
1512   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1513 	  10.000000000000000, -0.29999999999999993, 0.0 },
1514   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1515 	  10.000000000000000, -0.19999999999999996, 0.0 },
1516   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1517 	  10.000000000000000, -0.099999999999999978, 0.0 },
1518   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1519 	  10.000000000000000, 0.0000000000000000, 0.0 },
1520   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1521 	  10.000000000000000, 0.10000000000000009, 0.0 },
1522   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1523 	  10.000000000000000, 0.20000000000000018, 0.0 },
1524   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1525 	  10.000000000000000, 0.30000000000000004, 0.0 },
1526   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1527 	  10.000000000000000, 0.40000000000000013, 0.0 },
1528   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1529 	  10.000000000000000, 0.50000000000000000, 0.0 },
1530   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1531 	  10.000000000000000, 0.60000000000000009, 0.0 },
1532   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1533 	  10.000000000000000, 0.70000000000000018, 0.0 },
1534   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1535 	  10.000000000000000, 0.80000000000000004, 0.0 },
1536   { 1.0000000000000000, 0.0000000000000000, 10.000000000000000,
1537 	  10.000000000000000, 0.90000000000000013, 0.0 },
1538 };
1539 const double toler030 = 2.5000000000000020e-13;
1540 
1541 // Test data for a=0.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
1542 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1543 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1544 // mean(f - f_GSL): 0.0000000000000000
1545 // variance(f - f_GSL): 0.0000000000000000
1546 // stddev(f - f_GSL): 0.0000000000000000
1547 const testcase_hyperg<double>
1548 data031[19] =
1549 {
1550   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1552   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1554   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1556   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1558   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1560   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1562   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1564   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1566   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1568   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1570   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1572   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1574   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1576   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1578   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1580   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1582   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1584   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1586   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1588 };
1589 const double toler031 = 2.5000000000000020e-13;
1590 
1591 // Test data for a=0.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
1592 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1593 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1594 // mean(f - f_GSL): 0.0000000000000000
1595 // variance(f - f_GSL): 0.0000000000000000
1596 // stddev(f - f_GSL): 0.0000000000000000
1597 const testcase_hyperg<double>
1598 data032[19] =
1599 {
1600   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1602   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1604   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1606   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1608   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1610   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1612   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1614   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1616   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1618   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1620   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1622   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1624   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1626   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1628   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1630   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1632   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1634   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1636   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1638 };
1639 const double toler032 = 2.5000000000000020e-13;
1640 
1641 // Test data for a=0.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
1642 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1643 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1644 // mean(f - f_GSL): 0.0000000000000000
1645 // variance(f - f_GSL): 0.0000000000000000
1646 // stddev(f - f_GSL): 0.0000000000000000
1647 const testcase_hyperg<double>
1648 data033[19] =
1649 {
1650   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1652   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1654   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1656   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1658   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1660   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1662   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1664   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1666   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1668   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1670   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1672   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1674   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1676   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1678   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1680   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1682   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1684   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1686   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1688 };
1689 const double toler033 = 2.5000000000000020e-13;
1690 
1691 // Test data for a=0.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
1692 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1693 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1694 // mean(f - f_GSL): 0.0000000000000000
1695 // variance(f - f_GSL): 0.0000000000000000
1696 // stddev(f - f_GSL): 0.0000000000000000
1697 const testcase_hyperg<double>
1698 data034[19] =
1699 {
1700   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1702   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1704   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1706   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1708   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1710   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1712   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1714   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1716   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1718   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1720   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1722   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1724   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1726   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1728   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1730   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1732   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1734   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1736   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1738 };
1739 const double toler034 = 2.5000000000000020e-13;
1740 
1741 // Test data for a=0.0000000000000000, b=20.000000000000000, c=10.000000000000000.
1742 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1743 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1744 // mean(f - f_GSL): 0.0000000000000000
1745 // variance(f - f_GSL): 0.0000000000000000
1746 // stddev(f - f_GSL): 0.0000000000000000
1747 const testcase_hyperg<double>
1748 data035[19] =
1749 {
1750   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1751 	  10.000000000000000, -0.90000000000000002, 0.0 },
1752   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1753 	  10.000000000000000, -0.80000000000000004, 0.0 },
1754   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1755 	  10.000000000000000, -0.69999999999999996, 0.0 },
1756   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1757 	  10.000000000000000, -0.59999999999999998, 0.0 },
1758   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1759 	  10.000000000000000, -0.50000000000000000, 0.0 },
1760   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1761 	  10.000000000000000, -0.39999999999999991, 0.0 },
1762   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1763 	  10.000000000000000, -0.29999999999999993, 0.0 },
1764   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1765 	  10.000000000000000, -0.19999999999999996, 0.0 },
1766   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1767 	  10.000000000000000, -0.099999999999999978, 0.0 },
1768   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1769 	  10.000000000000000, 0.0000000000000000, 0.0 },
1770   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1771 	  10.000000000000000, 0.10000000000000009, 0.0 },
1772   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1773 	  10.000000000000000, 0.20000000000000018, 0.0 },
1774   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1775 	  10.000000000000000, 0.30000000000000004, 0.0 },
1776   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1777 	  10.000000000000000, 0.40000000000000013, 0.0 },
1778   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1779 	  10.000000000000000, 0.50000000000000000, 0.0 },
1780   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1781 	  10.000000000000000, 0.60000000000000009, 0.0 },
1782   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1783 	  10.000000000000000, 0.70000000000000018, 0.0 },
1784   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1785 	  10.000000000000000, 0.80000000000000004, 0.0 },
1786   { 1.0000000000000000, 0.0000000000000000, 20.000000000000000,
1787 	  10.000000000000000, 0.90000000000000013, 0.0 },
1788 };
1789 const double toler035 = 2.5000000000000020e-13;
1790 
1791 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=2.0000000000000000.
1792 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1793 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1794 // mean(f - f_GSL): 0.0000000000000000
1795 // variance(f - f_GSL): 0.0000000000000000
1796 // stddev(f - f_GSL): 0.0000000000000000
1797 const testcase_hyperg<double>
1798 data036[19] =
1799 {
1800   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
1802   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
1804   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
1806   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
1808   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
1810   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
1812   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
1814   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
1816   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
1818   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
1820   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
1822   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
1824   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
1826   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
1828   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
1830   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
1832   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
1834   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
1836   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
1838 };
1839 const double toler036 = 2.5000000000000020e-13;
1840 
1841 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=4.0000000000000000.
1842 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1843 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1844 // mean(f - f_GSL): 0.0000000000000000
1845 // variance(f - f_GSL): 0.0000000000000000
1846 // stddev(f - f_GSL): 0.0000000000000000
1847 const testcase_hyperg<double>
1848 data037[19] =
1849 {
1850   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
1852   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
1854   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
1856   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
1858   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
1860   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
1862   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
1864   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
1866   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
1868   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
1870   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
1872   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
1874   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
1876   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
1878   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
1880   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
1882   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
1884   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
1886   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
1888 };
1889 const double toler037 = 2.5000000000000020e-13;
1890 
1891 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=6.0000000000000000.
1892 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1893 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1894 // mean(f - f_GSL): 0.0000000000000000
1895 // variance(f - f_GSL): 0.0000000000000000
1896 // stddev(f - f_GSL): 0.0000000000000000
1897 const testcase_hyperg<double>
1898 data038[19] =
1899 {
1900   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
1902   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
1904   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
1906   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
1908   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
1910   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
1912   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
1914   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
1916   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
1918   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
1920   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
1922   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
1924   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
1926   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
1928   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
1930   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
1932   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
1934   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
1936   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
1938 };
1939 const double toler038 = 2.5000000000000020e-13;
1940 
1941 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=8.0000000000000000.
1942 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1943 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1944 // mean(f - f_GSL): 0.0000000000000000
1945 // variance(f - f_GSL): 0.0000000000000000
1946 // stddev(f - f_GSL): 0.0000000000000000
1947 const testcase_hyperg<double>
1948 data039[19] =
1949 {
1950   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
1952   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
1954   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
1956   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
1958   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
1960   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
1962   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
1964   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
1966   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
1968   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
1970   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
1972   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
1974   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
1976   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
1978   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
1980   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
1982   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
1984   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
1986   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
1987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
1988 };
1989 const double toler039 = 2.5000000000000020e-13;
1990 
1991 // Test data for a=0.50000000000000000, b=0.0000000000000000, c=10.000000000000000.
1992 // max(|f - f_GSL|): 0.0000000000000000 at index 0
1993 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
1994 // mean(f - f_GSL): 0.0000000000000000
1995 // variance(f - f_GSL): 0.0000000000000000
1996 // stddev(f - f_GSL): 0.0000000000000000
1997 const testcase_hyperg<double>
1998 data040[19] =
1999 {
2000   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2001 	  10.000000000000000, -0.90000000000000002, 0.0 },
2002   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2003 	  10.000000000000000, -0.80000000000000004, 0.0 },
2004   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2005 	  10.000000000000000, -0.69999999999999996, 0.0 },
2006   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2007 	  10.000000000000000, -0.59999999999999998, 0.0 },
2008   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2009 	  10.000000000000000, -0.50000000000000000, 0.0 },
2010   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2011 	  10.000000000000000, -0.39999999999999991, 0.0 },
2012   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2013 	  10.000000000000000, -0.29999999999999993, 0.0 },
2014   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2015 	  10.000000000000000, -0.19999999999999996, 0.0 },
2016   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2017 	  10.000000000000000, -0.099999999999999978, 0.0 },
2018   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2019 	  10.000000000000000, 0.0000000000000000, 0.0 },
2020   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2021 	  10.000000000000000, 0.10000000000000009, 0.0 },
2022   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2023 	  10.000000000000000, 0.20000000000000018, 0.0 },
2024   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2025 	  10.000000000000000, 0.30000000000000004, 0.0 },
2026   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2027 	  10.000000000000000, 0.40000000000000013, 0.0 },
2028   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2029 	  10.000000000000000, 0.50000000000000000, 0.0 },
2030   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2031 	  10.000000000000000, 0.60000000000000009, 0.0 },
2032   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2033 	  10.000000000000000, 0.70000000000000018, 0.0 },
2034   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2035 	  10.000000000000000, 0.80000000000000004, 0.0 },
2036   { 1.0000000000000000, 0.50000000000000000, 0.0000000000000000,
2037 	  10.000000000000000, 0.90000000000000013, 0.0 },
2038 };
2039 const double toler040 = 2.5000000000000020e-13;
2040 
2041 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=2.0000000000000000.
2042 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
2043 // max(|f - f_GSL| / |f_GSL|): 3.7062685186203797e-16
2044 // mean(f - f_GSL): 1.1686558153949016e-17
2045 // variance(f - f_GSL): 1.0964410526798704e-32
2046 // stddev(f - f_GSL): 1.0471108120346530e-16
2047 const testcase_hyperg<double>
2048 data041[19] =
2049 {
2050   { 0.91383715388743736, 0.50000000000000000, 0.50000000000000000,
2051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2052   { 0.92151232618202372, 0.50000000000000000, 0.50000000000000000,
2053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2054   { 0.92955086110354845, 0.50000000000000000, 0.50000000000000000,
2055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2056   { 0.93798900119104855, 0.50000000000000000, 0.50000000000000000,
2057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2058   { 0.94686887307107392, 0.50000000000000000, 0.50000000000000000,
2059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2060   { 0.95623987262143295, 0.50000000000000000, 0.50000000000000000,
2061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2062   { 0.96616049387450120, 0.50000000000000000, 0.50000000000000000,
2063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2064   { 0.97670078782187519, 0.50000000000000000, 0.50000000000000000,
2065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2066   { 0.98794573712298384, 0.50000000000000000, 0.50000000000000000,
2067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2068   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2070   { 1.0129947682256604, 0.50000000000000000, 0.50000000000000000,
2071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2072   { 1.0270980168168973, 0.50000000000000000, 0.50000000000000000,
2073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2074   { 1.0425304520063581, 0.50000000000000000, 0.50000000000000000,
2075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2076   { 1.0595915916161471, 0.50000000000000000, 0.50000000000000000,
2077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2078   { 1.0787052023767585, 0.50000000000000000, 0.50000000000000000,
2079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2080   { 1.1005053642285867, 0.50000000000000000, 0.50000000000000000,
2081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2082   { 1.1260196351148746, 0.50000000000000000, 0.50000000000000000,
2083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2084   { 1.1571341977338991, 0.50000000000000000, 0.50000000000000000,
2085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2086   { 1.1982111053717452, 0.50000000000000000, 0.50000000000000000,
2087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2088 };
2089 const double toler041 = 2.5000000000000020e-13;
2090 
2091 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=4.0000000000000000.
2092 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
2093 // max(|f - f_GSL| / |f_GSL|): 3.3511582377535958e-16
2094 // mean(f - f_GSL): 4.0902953538821554e-17
2095 // variance(f - f_GSL): 1.9241779613319129e-33
2096 // stddev(f - f_GSL): 4.3865452936586813e-17
2097 const testcase_hyperg<double>
2098 data042[19] =
2099 {
2100   { 0.95255425675562699, 0.50000000000000000, 0.50000000000000000,
2101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2102   { 0.95712841850078267, 0.50000000000000000, 0.50000000000000000,
2103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2104   { 0.96184734120034554, 0.50000000000000000, 0.50000000000000000,
2105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2106   { 0.96672141255196176, 0.50000000000000000, 0.50000000000000000,
2107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2108   { 0.97176228710138646, 0.50000000000000000, 0.50000000000000000,
2109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2110   { 0.97698311668286308, 0.50000000000000000, 0.50000000000000000,
2111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2112   { 0.98239883902556036, 0.50000000000000000, 0.50000000000000000,
2113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2114   { 0.98802654401961032, 0.50000000000000000, 0.50000000000000000,
2115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2116   { 0.99388594556732701, 0.50000000000000000, 0.50000000000000000,
2117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2118   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2120   { 1.0063957328951061, 0.50000000000000000, 0.50000000000000000,
2121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2122   { 1.0131053706824598, 0.50000000000000000, 0.50000000000000000,
2123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2124   { 1.0201679332118803, 0.50000000000000000, 0.50000000000000000,
2125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2126   { 1.0276315524377497, 0.50000000000000000, 0.50000000000000000,
2127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2128   { 1.0355569942816882, 0.50000000000000000, 0.50000000000000000,
2129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2130   { 1.0440233080381554, 0.50000000000000000, 0.50000000000000000,
2131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2132   { 1.0531375808028993, 0.50000000000000000, 0.50000000000000000,
2133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2134   { 1.0630536689840200, 0.50000000000000000, 0.50000000000000000,
2135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2136   { 1.0740149570414563, 0.50000000000000000, 0.50000000000000000,
2137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2138 };
2139 const double toler042 = 2.5000000000000020e-13;
2140 
2141 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=6.0000000000000000.
2142 // max(|f - f_GSL|): 5.5511151231257827e-16 at index 7
2143 // max(|f - f_GSL| / |f_GSL|): 5.5963253065363064e-16
2144 // mean(f - f_GSL): 5.8432790769745078e-18
2145 // variance(f - f_GSL): 2.0022663489405960e-36
2146 // stddev(f - f_GSL): 1.4150146108576393e-18
2147 const testcase_hyperg<double>
2148 data043[19] =
2149 {
2150   { 0.96694084713323880, 0.50000000000000000, 0.50000000000000000,
2151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2152   { 0.97024454918852632, 0.50000000000000000, 0.50000000000000000,
2153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2154   { 0.97362815600391439, 0.50000000000000000, 0.50000000000000000,
2155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2156   { 0.97709622064205104, 0.50000000000000000, 0.50000000000000000,
2157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2158   { 0.98065374770570635, 0.50000000000000000, 0.50000000000000000,
2159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2160   { 0.98430626119885523, 0.50000000000000000, 0.50000000000000000,
2161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2162   { 0.98805988669621037, 0.50000000000000000, 0.50000000000000000,
2163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2164   { 0.99192145185739655, 0.50000000000000000, 0.50000000000000000,
2165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2166   { 0.99589861079880937, 0.50000000000000000, 0.50000000000000000,
2167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2168   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2170   { 1.0042354366729904, 0.50000000000000000, 0.50000000000000000,
2171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2172   { 1.0086161755545404, 0.50000000000000000, 0.50000000000000000,
2173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2174   { 1.0131552481403503, 0.50000000000000000, 0.50000000000000000,
2175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2176   { 1.0178679218284707, 0.50000000000000000, 0.50000000000000000,
2177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2178   { 1.0227723400312978, 0.50000000000000000, 0.50000000000000000,
2179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2180   { 1.0278904483717863, 0.50000000000000000, 0.50000000000000000,
2181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2182   { 1.0332494012993474, 0.50000000000000000, 0.50000000000000000,
2183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2184   { 1.0388838453357794, 0.50000000000000000, 0.50000000000000000,
2185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2186   { 1.0448400142331342, 0.50000000000000000, 0.50000000000000000,
2187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2188 };
2189 const double toler043 = 2.5000000000000020e-13;
2190 
2191 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=8.0000000000000000.
2192 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 7
2193 // max(|f - f_GSL| / |f_GSL|): 3.3511105824376917e-16
2194 // mean(f - f_GSL): -1.7529837230923523e-17
2195 // variance(f - f_GSL): 3.3658097325691423e-33
2196 // stddev(f - f_GSL): 5.8015599045163211e-17
2197 const testcase_hyperg<double>
2198 data044[19] =
2199 {
2200   { 0.97456073259047449, 0.50000000000000000, 0.50000000000000000,
2201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2202   { 0.97715689327833399, 0.50000000000000000, 0.50000000000000000,
2203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2204   { 0.97980416868943110, 0.50000000000000000, 0.50000000000000000,
2205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2206   { 0.98250498942832487, 0.50000000000000000, 0.50000000000000000,
2207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2208   { 0.98526199049760810, 0.50000000000000000, 0.50000000000000000,
2209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2210   { 0.98807803762902791, 0.50000000000000000, 0.50000000000000000,
2211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2212   { 0.99095625840920332, 0.50000000000000000, 0.50000000000000000,
2213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2214   { 0.99390007937387959, 0.50000000000000000, 0.50000000000000000,
2215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2216   { 0.99691327061866730, 0.50000000000000000, 0.50000000000000000,
2217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2218   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2220   { 1.0031648997547440, 0.50000000000000000, 0.50000000000000000,
2221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2222   { 1.0064131494767281, 0.50000000000000000, 0.50000000000000000,
2223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2224   { 1.0097505810668461, 0.50000000000000000, 0.50000000000000000,
2225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2226   { 1.0131838138968663, 0.50000000000000000, 0.50000000000000000,
2227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2228   { 1.0167204326938339, 0.50000000000000000, 0.50000000000000000,
2229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2230   { 1.0203692279382193, 0.50000000000000000, 0.50000000000000000,
2231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2232   { 1.0241405318057402, 0.50000000000000000, 0.50000000000000000,
2233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2234   { 1.0280467087844301, 0.50000000000000000, 0.50000000000000000,
2235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2236   { 1.0321029179180026, 0.50000000000000000, 0.50000000000000000,
2237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2238 };
2239 const double toler044 = 2.5000000000000020e-13;
2240 
2241 // Test data for a=0.50000000000000000, b=0.50000000000000000, c=10.000000000000000.
2242 // max(|f - f_GSL|): 1.1102230246251565e-16 at index 7
2243 // max(|f - f_GSL| / |f_GSL|): 1.1156911610791411e-16
2244 // mean(f - f_GSL): 0.0000000000000000
2245 // variance(f - f_GSL): 0.0000000000000000
2246 // stddev(f - f_GSL): 0.0000000000000000
2247 const testcase_hyperg<double>
2248 data045[19] =
2249 {
2250   { 0.97930223035212138, 0.50000000000000000, 0.50000000000000000,
2251 	  10.000000000000000, -0.90000000000000002, 0.0 },
2252   { 0.98144406855076427, 0.50000000000000000, 0.50000000000000000,
2253 	  10.000000000000000, -0.80000000000000004, 0.0 },
2254   { 0.98362155940297280, 0.50000000000000000, 0.50000000000000000,
2255 	  10.000000000000000, -0.69999999999999996, 0.0 },
2256   { 0.98583616201745783, 0.50000000000000000, 0.50000000000000000,
2257 	  10.000000000000000, -0.59999999999999998, 0.0 },
2258   { 0.98808944235385032, 0.50000000000000000, 0.50000000000000000,
2259 	  10.000000000000000, -0.50000000000000000, 0.0 },
2260   { 0.99038308530635433, 0.50000000000000000, 0.50000000000000000,
2261 	  10.000000000000000, -0.39999999999999991, 0.0 },
2262   { 0.99271890872975732, 0.50000000000000000, 0.50000000000000000,
2263 	  10.000000000000000, -0.29999999999999993, 0.0 },
2264   { 0.99509887982916734, 0.50000000000000000, 0.50000000000000000,
2265 	  10.000000000000000, -0.19999999999999996, 0.0 },
2266   { 0.99752513445413604, 0.50000000000000000, 0.50000000000000000,
2267 	  10.000000000000000, -0.099999999999999978, 0.0 },
2268   { 1.0000000000000000, 0.50000000000000000, 0.50000000000000000,
2269 	  10.000000000000000, 0.0000000000000000, 0.0 },
2270   { 1.0025260228440118, 0.50000000000000000, 0.50000000000000000,
2271 	  10.000000000000000, 0.10000000000000009, 0.0 },
2272   { 1.0051060015613384, 0.50000000000000000, 0.50000000000000000,
2273 	  10.000000000000000, 0.20000000000000018, 0.0 },
2274   { 1.0077430276253163, 0.50000000000000000, 0.50000000000000000,
2275 	  10.000000000000000, 0.30000000000000004, 0.0 },
2276   { 1.0104405359789990, 0.50000000000000000, 0.50000000000000000,
2277 	  10.000000000000000, 0.40000000000000013, 0.0 },
2278   { 1.0132023689128868, 0.50000000000000000, 0.50000000000000000,
2279 	  10.000000000000000, 0.50000000000000000, 0.0 },
2280   { 1.0160328583559475, 0.50000000000000000, 0.50000000000000000,
2281 	  10.000000000000000, 0.60000000000000009, 0.0 },
2282   { 1.0189369344885053, 0.50000000000000000, 0.50000000000000000,
2283 	  10.000000000000000, 0.70000000000000018, 0.0 },
2284   { 1.0219202735809589, 0.50000000000000000, 0.50000000000000000,
2285 	  10.000000000000000, 0.80000000000000004, 0.0 },
2286   { 1.0249895076611382, 0.50000000000000000, 0.50000000000000000,
2287 	  10.000000000000000, 0.90000000000000013, 0.0 },
2288 };
2289 const double toler045 = 2.5000000000000020e-13;
2290 
2291 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=2.0000000000000000.
2292 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
2293 // max(|f - f_GSL| / |f_GSL|): 5.8452254859313207e-16
2294 // mean(f - f_GSL): 8.1805907077643109e-17
2295 // variance(f - f_GSL): 3.8131160349224712e-32
2296 // stddev(f - f_GSL): 1.9527201629835421e-16
2297 const testcase_hyperg<double>
2298 data046[19] =
2299 {
2300   { 0.84089972268671531, 0.50000000000000000, 1.0000000000000000,
2301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2302   { 0.85410196624968460, 0.50000000000000000, 1.0000000000000000,
2303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2304   { 0.86811566011579955, 0.50000000000000000, 1.0000000000000000,
2305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2306   { 0.88303688022450522, 0.50000000000000000, 1.0000000000000000,
2307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2308   { 0.89897948556635621, 0.50000000000000000, 1.0000000000000000,
2309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2310   { 0.91607978309961580, 0.50000000000000000, 1.0000000000000000,
2311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2312   { 0.93450283399425327, 0.50000000000000000, 1.0000000000000000,
2313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2314   { 0.95445115010332193, 0.50000000000000000, 1.0000000000000000,
2315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2316   { 0.97617696340303095, 0.50000000000000000, 1.0000000000000000,
2317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2318   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2320   { 1.0263340389897240, 0.50000000000000000, 1.0000000000000000,
2321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2322   { 1.0557280900008412, 0.50000000000000000, 1.0000000000000000,
2323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2324   { 1.0889331564394962, 0.50000000000000000, 1.0000000000000000,
2325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2326   { 1.1270166537925830, 0.50000000000000000, 1.0000000000000000,
2327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2328   { 1.1715728752538095, 0.50000000000000000, 1.0000000000000000,
2329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2330   { 1.2251482265544145, 0.50000000000000000, 1.0000000000000000,
2331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2332   { 1.2922212642709543, 0.50000000000000000, 1.0000000000000000,
2333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2334   { 1.3819660112501042, 0.50000000000000000, 1.0000000000000000,
2335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2336   { 1.5194938532959121, 0.50000000000000000, 1.0000000000000000,
2337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2338 };
2339 const double toler046 = 2.5000000000000020e-13;
2340 
2341 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=4.0000000000000000.
2342 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
2343 // max(|f - f_GSL| / |f_GSL|): 1.9508457915403988e-16
2344 // mean(f - f_GSL): 2.3373116307898031e-17
2345 // variance(f - f_GSL): 2.3146198993753289e-33
2346 // stddev(f - f_GSL): 4.8110496769159731e-17
2347 const testcase_hyperg<double>
2348 data047[19] =
2349 {
2350   { 0.90992197313391454, 0.50000000000000000, 1.0000000000000000,
2351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2352   { 0.91822592662244484, 0.50000000000000000, 1.0000000000000000,
2353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2354   { 0.92687104566419554, 0.50000000000000000, 1.0000000000000000,
2355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2356   { 0.93588628166548848, 0.50000000000000000, 1.0000000000000000,
2357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2358   { 0.94530459215552909, 0.50000000000000000, 1.0000000000000000,
2359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2360   { 0.95516374875247434, 0.50000000000000000, 1.0000000000000000,
2361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2362   { 0.96550736800511816, 0.50000000000000000, 1.0000000000000000,
2363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2364   { 0.97638624595136270, 0.50000000000000000, 1.0000000000000000,
2365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2366   { 0.98786011482678993, 0.50000000000000000, 1.0000000000000000,
2367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2368   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2370   { 1.0128914530682316, 0.50000000000000000, 1.0000000000000000,
2371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2372   { 1.0266391040215350, 0.50000000000000000, 1.0000000000000000,
2373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2374   { 1.0413732738729464, 0.50000000000000000, 1.0000000000000000,
2375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2376   { 1.0572599536532992, 0.50000000000000000, 1.0000000000000000,
2377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2378   { 1.0745166004060953, 0.50000000000000000, 1.0000000000000000,
2379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2380   { 1.0934387388831386, 0.50000000000000000, 1.0000000000000000,
2381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2382   { 1.1144486980714641, 0.50000000000000000, 1.0000000000000000,
2383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2384   { 1.1381966011250106, 0.50000000000000000, 1.0000000000000000,
2385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2386   { 1.1658171625342397, 0.50000000000000000, 1.0000000000000000,
2387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2388 };
2389 const double toler047 = 2.5000000000000020e-13;
2390 
2391 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=6.0000000000000000.
2392 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
2393 // max(|f - f_GSL| / |f_GSL|): 4.5130734546221216e-16
2394 // mean(f - f_GSL): 4.6746232615796062e-17
2395 // variance(f - f_GSL): 1.2814504633219814e-34
2396 // stddev(f - f_GSL): 1.1320116886861114e-17
2397 const testcase_hyperg<double>
2398 data048[19] =
2399 {
2400   { 0.93641908369732896, 0.50000000000000000, 1.0000000000000000,
2401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2402   { 0.94256349654111271, 0.50000000000000000, 1.0000000000000000,
2403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2404   { 0.94890138508461319, 0.50000000000000000, 1.0000000000000000,
2405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2406   { 0.95544578858430029, 0.50000000000000000, 1.0000000000000000,
2407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2408   { 0.96221121193620762, 0.50000000000000000, 1.0000000000000000,
2409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2410   { 0.96921386948293542, 0.50000000000000000, 1.0000000000000000,
2411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2412   { 0.97647198488394704, 0.50000000000000000, 1.0000000000000000,
2413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2414   { 0.98400616412578656, 0.50000000000000000, 1.0000000000000000,
2415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2416   { 0.99183986544963032, 0.50000000000000000, 1.0000000000000000,
2417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2418   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2420   { 1.0085177124149158, 0.50000000000000000, 1.0000000000000000,
2421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2422   { 1.0174294150407122, 0.50000000000000000, 1.0000000000000000,
2423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2424   { 1.0267781897388850, 0.50000000000000000, 1.0000000000000000,
2425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2426   { 1.0366157405967287, 0.50000000000000000, 1.0000000000000000,
2427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2428   { 1.0470052068648839, 0.50000000000000000, 1.0000000000000000,
2429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2430   { 1.0580253905513313, 0.50000000000000000, 1.0000000000000000,
2431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2432   { 1.0697774741209765, 0.50000000000000000, 1.0000000000000000,
2433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2434   { 1.0823965556448414, 0.50000000000000000, 1.0000000000000000,
2435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2436   { 1.0960739512057103, 0.50000000000000000, 1.0000000000000000,
2437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2438 };
2439 const double toler048 = 2.5000000000000020e-13;
2440 
2441 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=8.0000000000000000.
2442 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 7
2443 // max(|f - f_GSL| / |f_GSL|): 2.2476491960642283e-16
2444 // mean(f - f_GSL): -5.8432790769745078e-18
2445 // variance(f - f_GSL): 2.0022663489405960e-36
2446 // stddev(f - f_GSL): 1.4150146108576393e-18
2447 const testcase_hyperg<double>
2448 data049[19] =
2449 {
2450   { 0.95069883346936235, 0.50000000000000000, 1.0000000000000000,
2451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2452   { 0.95559618047704131, 0.50000000000000000, 1.0000000000000000,
2453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2454   { 0.96061938755931664, 0.50000000000000000, 1.0000000000000000,
2455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2456   { 0.96577553912851333, 0.50000000000000000, 1.0000000000000000,
2457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2458   { 0.97107239473807716, 0.50000000000000000, 1.0000000000000000,
2459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2460   { 0.97651848528588481, 0.50000000000000000, 1.0000000000000000,
2461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2462   { 0.98212322830227128, 0.50000000000000000, 1.0000000000000000,
2463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2464   { 0.98789706736195781, 0.50000000000000000, 1.0000000000000000,
2465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2466   { 0.99385164237825074, 0.50000000000000000, 1.0000000000000000,
2467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2468   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2470   { 1.0063568569383123, 0.50000000000000000, 1.0000000000000000,
2471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2472   { 1.0129389344715818, 0.50000000000000000, 1.0000000000000000,
2473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2474   { 1.0197653907773940, 0.50000000000000000, 1.0000000000000000,
2475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2476   { 1.0268583912277143, 0.50000000000000000, 1.0000000000000000,
2477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2478   { 1.0342438793937092, 0.50000000000000000, 1.0000000000000000,
2479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2480   { 1.0419526514766855, 0.50000000000000000, 1.0000000000000000,
2481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2482   { 1.0500219124976327, 0.50000000000000000, 1.0000000000000000,
2483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2484   { 1.0584976491907043, 0.50000000000000000, 1.0000000000000000,
2485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2486   { 1.0674385240268101, 0.50000000000000000, 1.0000000000000000,
2487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2488 };
2489 const double toler049 = 2.5000000000000020e-13;
2490 
2491 // Test data for a=0.50000000000000000, b=1.0000000000000000, c=10.000000000000000.
2492 // max(|f - f_GSL|): 0.0000000000000000 at index 0
2493 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
2494 // mean(f - f_GSL): 0.0000000000000000
2495 // variance(f - f_GSL): 0.0000000000000000
2496 // stddev(f - f_GSL): 0.0000000000000000
2497 const testcase_hyperg<double>
2498 data050[19] =
2499 {
2500   { 0.95968319138913905, 0.50000000000000000, 1.0000000000000000,
2501 	  10.000000000000000, -0.90000000000000002, 0.0 },
2502   { 0.96376169072755802, 0.50000000000000000, 1.0000000000000000,
2503 	  10.000000000000000, -0.80000000000000004, 0.0 },
2504   { 0.96792900082729372, 0.50000000000000000, 1.0000000000000000,
2505 	  10.000000000000000, -0.69999999999999996, 0.0 },
2506   { 0.97218942798115737, 0.50000000000000000, 1.0000000000000000,
2507 	  10.000000000000000, -0.59999999999999998, 0.0 },
2508   { 0.97654763592586835, 0.50000000000000000, 1.0000000000000000,
2509 	  10.000000000000000, -0.50000000000000000, 0.0 },
2510   { 0.98100869054353890, 0.50000000000000000, 1.0000000000000000,
2511 	  10.000000000000000, -0.39999999999999991, 0.0 },
2512   { 0.98557811238699278, 0.50000000000000000, 1.0000000000000000,
2513 	  10.000000000000000, -0.29999999999999993, 0.0 },
2514   { 0.99026193885795544, 0.50000000000000000, 1.0000000000000000,
2515 	  10.000000000000000, -0.19999999999999996, 0.0 },
2516   { 0.99506679842072221, 0.50000000000000000, 1.0000000000000000,
2517 	  10.000000000000000, -0.099999999999999978, 0.0 },
2518   { 1.0000000000000000, 0.50000000000000000, 1.0000000000000000,
2519 	  10.000000000000000, 0.0000000000000000, 0.0 },
2520   { 1.0050696417919618, 0.50000000000000000, 1.0000000000000000,
2521 	  10.000000000000000, 0.10000000000000009, 0.0 },
2522   { 1.0102847452747090, 0.50000000000000000, 1.0000000000000000,
2523 	  10.000000000000000, 0.20000000000000018, 0.0 },
2524   { 1.0156554225057022, 0.50000000000000000, 1.0000000000000000,
2525 	  10.000000000000000, 0.30000000000000004, 0.0 },
2526   { 1.0211930882963096, 0.50000000000000000, 1.0000000000000000,
2527 	  10.000000000000000, 0.40000000000000013, 0.0 },
2528   { 1.0269107343740711, 0.50000000000000000, 1.0000000000000000,
2529 	  10.000000000000000, 0.50000000000000000, 0.0 },
2530   { 1.0328232917216298, 0.50000000000000000, 1.0000000000000000,
2531 	  10.000000000000000, 0.60000000000000009, 0.0 },
2532   { 1.0389481230247195, 0.50000000000000000, 1.0000000000000000,
2533 	  10.000000000000000, 0.70000000000000018, 0.0 },
2534   { 1.0453057164134614, 0.50000000000000000, 1.0000000000000000,
2535 	  10.000000000000000, 0.80000000000000004, 0.0 },
2536   { 1.0519207114461246, 0.50000000000000000, 1.0000000000000000,
2537 	  10.000000000000000, 0.90000000000000013, 0.0 },
2538 };
2539 const double toler050 = 2.5000000000000020e-13;
2540 
2541 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=2.0000000000000000.
2542 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
2543 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
2544 // mean(f - f_GSL): 5.8432790769745078e-18
2545 // variance(f - f_GSL): 1.1262748212790853e-32
2546 // stddev(f - f_GSL): 1.0612609581432294e-16
2547 const testcase_hyperg<double>
2548 data051[19] =
2549 {
2550   { 0.72547625011001160, 0.50000000000000000, 2.0000000000000000,
2551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2552   { 0.74535599249992990, 0.50000000000000000, 2.0000000000000000,
2553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2554   { 0.76696498884737041, 0.50000000000000000, 2.0000000000000000,
2555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2556   { 0.79056941504209477, 0.50000000000000000, 2.0000000000000000,
2557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2558   { 0.81649658092772603, 0.50000000000000000, 2.0000000000000000,
2559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2560   { 0.84515425472851669, 0.50000000000000000, 2.0000000000000000,
2561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2562   { 0.87705801930702931, 0.50000000000000000, 2.0000000000000000,
2563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2564   { 0.91287092917527690, 0.50000000000000000, 2.0000000000000000,
2565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2566   { 0.95346258924559224, 0.50000000000000000, 2.0000000000000000,
2567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2568   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2570   { 1.0540925533894598, 0.50000000000000000, 2.0000000000000000,
2571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2572   { 1.1180339887498949, 0.50000000000000000, 2.0000000000000000,
2573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2574   { 1.1952286093343938, 0.50000000000000000, 2.0000000000000000,
2575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2576   { 1.2909944487358058, 0.50000000000000000, 2.0000000000000000,
2577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2578   { 1.4142135623730951, 0.50000000000000000, 2.0000000000000000,
2579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2580   { 1.5811388300841900, 0.50000000000000000, 2.0000000000000000,
2581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2582   { 1.8257418583505542, 0.50000000000000000, 2.0000000000000000,
2583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2584   { 2.2360679774997898, 0.50000000000000000, 2.0000000000000000,
2585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2586   { 3.1622776601683809, 0.50000000000000000, 2.0000000000000000,
2587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2588 };
2589 const double toler051 = 2.5000000000000020e-13;
2590 
2591 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=4.0000000000000000.
2592 // max(|f - f_GSL|): 6.6613381477509392e-16 at index 18
2593 // max(|f - f_GSL| / |f_GSL|): 4.6340403913587147e-16
2594 // mean(f - f_GSL): 7.5962628000668607e-17
2595 // variance(f - f_GSL): 2.0425119025543020e-32
2596 // stddev(f - f_GSL): 1.4291647569662155e-16
2597 const testcase_hyperg<double>
2598 data052[19] =
2599 {
2600   { 0.83664260086443765, 0.50000000000000000, 2.0000000000000000,
2601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2602   { 0.85046584300227079, 0.50000000000000000, 2.0000000000000000,
2603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2604   { 0.86509574979651649, 0.50000000000000000, 2.0000000000000000,
2605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2606   { 0.88062082573041911, 0.50000000000000000, 2.0000000000000000,
2607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2608   { 0.89714464248521597, 0.50000000000000000, 2.0000000000000000,
2609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2610   { 0.91478946588967569, 0.50000000000000000, 2.0000000000000000,
2611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2612   { 0.93370105322348607, 0.50000000000000000, 2.0000000000000000,
2613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2614   { 0.95405511057700887, 0.50000000000000000, 2.0000000000000000,
2615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2616   { 0.97606616007978142, 0.50000000000000000, 2.0000000000000000,
2617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2618   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2620   { 1.0261916902334731, 0.50000000000000000, 2.0000000000000000,
2621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2622   { 1.0550723519434702, 0.50000000000000000, 2.0000000000000000,
2623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2624   { 1.0872106588188091, 0.50000000000000000, 2.0000000000000000,
2625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2626   { 1.1233801699379022, 0.50000000000000000, 2.0000000000000000,
2627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2628   { 1.1646752981725688, 0.50000000000000000, 2.0000000000000000,
2629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2630   { 1.2127272514219511, 0.50000000000000000, 2.0000000000000000,
2631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2632   { 1.2701518651068637, 0.50000000000000000, 2.0000000000000000,
2633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2634   { 1.3416407864998725, 0.50000000000000000, 2.0000000000000000,
2635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2636   { 1.4374795179111106, 0.50000000000000000, 2.0000000000000000,
2637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2638 };
2639 const double toler052 = 2.5000000000000020e-13;
2640 
2641 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=6.0000000000000000.
2642 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
2643 // max(|f - f_GSL| / |f_GSL|): 3.3853500746952663e-16
2644 // mean(f - f_GSL): 1.1686558153949016e-17
2645 // variance(f - f_GSL): 2.5949371882270124e-33
2646 // stddev(f - f_GSL): 5.0940525990875012e-17
2647 const testcase_hyperg<double>
2648 data053[19] =
2649 {
2650   { 0.88195381730235822, 0.50000000000000000, 2.0000000000000000,
2651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2652   { 0.89265078469555081, 0.50000000000000000, 2.0000000000000000,
2653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2654   { 0.90382937908303673, 0.50000000000000000, 2.0000000000000000,
2655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2656   { 0.91553161389880600, 0.50000000000000000, 2.0000000000000000,
2657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2658   { 0.92780530349281509, 0.50000000000000000, 2.0000000000000000,
2659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2660   { 0.94070521140346020, 0.50000000000000000, 2.0000000000000000,
2661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2662   { 0.95429450630523349, 0.50000000000000000, 2.0000000000000000,
2663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2664   { 0.96864663325785849, 0.50000000000000000, 2.0000000000000000,
2665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2666   { 0.98384775588541795, 0.50000000000000000, 2.0000000000000000,
2667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2668   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2670   { 1.0172258496884334, 0.50000000000000000, 2.0000000000000000,
2671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2672   { 1.0356742479163461, 0.50000000000000000, 2.0000000000000000,
2673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2674   { 1.0555293036908924, 0.50000000000000000, 2.0000000000000000,
2675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2676   { 1.0770231491562379, 0.50000000000000000, 2.0000000000000000,
2677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2678   { 1.1004557416484888, 0.50000000000000000, 2.0000000000000000,
2679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2680   { 1.1262270515731978, 0.50000000000000000, 2.0000000000000000,
2681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2682   { 1.1548932919125088, 0.50000000000000000, 2.0000000000000000,
2683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2684   { 1.1872757758134724, 0.50000000000000000, 2.0000000000000000,
2685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2686   { 1.2247091713458949, 0.50000000000000000, 2.0000000000000000,
2687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2688 };
2689 const double toler053 = 2.5000000000000020e-13;
2690 
2691 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=8.0000000000000000.
2692 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
2693 // max(|f - f_GSL| / |f_GSL|): 1.9683492716399738e-16
2694 // mean(f - f_GSL): 1.7529837230923523e-17
2695 // variance(f - f_GSL): 2.4527762774522302e-33
2696 // stddev(f - f_GSL): 4.9525511380017369e-17
2697 const testcase_hyperg<double>
2698 data054[19] =
2699 {
2700   { 0.90716919697107279, 0.50000000000000000, 2.0000000000000000,
2701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2702   { 0.91592299407142508, 0.50000000000000000, 2.0000000000000000,
2703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2704   { 0.92500027075874192, 0.50000000000000000, 2.0000000000000000,
2705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2706   { 0.93442464185467122, 0.50000000000000000, 2.0000000000000000,
2707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2708   { 0.94422248683737076, 0.50000000000000000, 2.0000000000000000,
2709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2710   { 0.95442341810133347, 0.50000000000000000, 2.0000000000000000,
2711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2712   { 0.96506085725516355, 0.50000000000000000, 2.0000000000000000,
2713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2714   { 0.97617275213704069, 0.50000000000000000, 2.0000000000000000,
2715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2716   { 0.98780247986309799, 0.50000000000000000, 2.0000000000000000,
2717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2718   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2720   { 1.0128233505813447, 0.50000000000000000, 2.0000000000000000,
2721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2722   { 1.0263406246541855, 0.50000000000000000, 2.0000000000000000,
2723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2724   { 1.0406326381700366, 0.50000000000000000, 2.0000000000000000,
2725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2726   { 1.0557966239802845, 0.50000000000000000, 2.0000000000000000,
2727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2728   { 1.0719515075786321, 0.50000000000000000, 2.0000000000000000,
2729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2730   { 1.0892457392422055, 0.50000000000000000, 2.0000000000000000,
2731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2732   { 1.1078695188000958, 0.50000000000000000, 2.0000000000000000,
2733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2734   { 1.1280752258974340, 0.50000000000000000, 2.0000000000000000,
2735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2736   { 1.1502152002706476, 0.50000000000000000, 2.0000000000000000,
2737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2738 };
2739 const double toler054 = 2.5000000000000020e-13;
2740 
2741 // Test data for a=0.50000000000000000, b=2.0000000000000000, c=10.000000000000000.
2742 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
2743 // max(|f - f_GSL| / |f_GSL|): 3.3636359087105992e-16
2744 // mean(f - f_GSL): 2.9216395384872539e-17
2745 // variance(f - f_GSL): 2.1804680539963092e-33
2746 // stddev(f - f_GSL): 4.6695482158302094e-17
2747 const testcase_hyperg<double>
2748 data055[19] =
2749 {
2750   { 0.92336416053263082, 0.50000000000000000, 2.0000000000000000,
2751 	  10.000000000000000, -0.90000000000000002, 0.0 },
2752   { 0.93078397248364542, 0.50000000000000000, 2.0000000000000000,
2753 	  10.000000000000000, -0.80000000000000004, 0.0 },
2754   { 0.93843714333600259, 0.50000000000000000, 2.0000000000000000,
2755 	  10.000000000000000, -0.69999999999999996, 0.0 },
2756   { 0.94633837784068098, 0.50000000000000000, 2.0000000000000000,
2757 	  10.000000000000000, -0.59999999999999998, 0.0 },
2758   { 0.95450388104967876, 0.50000000000000000, 2.0000000000000000,
2759 	  10.000000000000000, -0.50000000000000000, 0.0 },
2760   { 0.96295158125742752, 0.50000000000000000, 2.0000000000000000,
2761 	  10.000000000000000, -0.39999999999999991, 0.0 },
2762   { 0.97170139827854329, 0.50000000000000000, 2.0000000000000000,
2763 	  10.000000000000000, -0.29999999999999993, 0.0 },
2764   { 0.98077556918512687, 0.50000000000000000, 2.0000000000000000,
2765 	  10.000000000000000, -0.19999999999999996, 0.0 },
2766   { 0.99019904777750845, 0.50000000000000000, 2.0000000000000000,
2767 	  10.000000000000000, -0.099999999999999978, 0.0 },
2768   { 1.0000000000000000, 0.50000000000000000, 2.0000000000000000,
2769 	  10.000000000000000, 0.0000000000000000, 0.0 },
2770   { 1.0102104261941198, 0.50000000000000000, 2.0000000000000000,
2771 	  10.000000000000000, 0.10000000000000009, 0.0 },
2772   { 1.0208669540935695, 0.50000000000000000, 2.0000000000000000,
2773 	  10.000000000000000, 0.20000000000000018, 0.0 },
2774   { 1.0320118665407505, 0.50000000000000000, 2.0000000000000000,
2775 	  10.000000000000000, 0.30000000000000004, 0.0 },
2776   { 1.0436944599504387, 0.50000000000000000, 2.0000000000000000,
2777 	  10.000000000000000, 0.40000000000000013, 0.0 },
2778   { 1.0559728828278145, 0.50000000000000000, 2.0000000000000000,
2779 	  10.000000000000000, 0.50000000000000000, 0.0 },
2780   { 1.0689166967761712, 0.50000000000000000, 2.0000000000000000,
2781 	  10.000000000000000, 0.60000000000000009, 0.0 },
2782   { 1.0826105758119842, 0.50000000000000000, 2.0000000000000000,
2783 	  10.000000000000000, 0.70000000000000018, 0.0 },
2784   { 1.0971599106346146, 0.50000000000000000, 2.0000000000000000,
2785 	  10.000000000000000, 0.80000000000000004, 0.0 },
2786   { 1.1126998828023964, 0.50000000000000000, 2.0000000000000000,
2787 	  10.000000000000000, 0.90000000000000013, 0.0 },
2788 };
2789 const double toler055 = 2.5000000000000020e-13;
2790 
2791 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=2.0000000000000000.
2792 // max(|f - f_GSL|): 4.5474735088646412e-13 at index 18
2793 // max(|f - f_GSL| / |f_GSL|): 1.5124797514980592e-15
2794 // mean(f - f_GSL): 2.5336458077761468e-14
2795 // variance(f - f_GSL): 1.0813211674051158e-26
2796 // stddev(f - f_GSL): 1.0398659372270619e-13
2797 const testcase_hyperg<double>
2798 data056[19] =
2799 {
2800   { 0.52275983209457544, 0.50000000000000000, 5.0000000000000000,
2801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
2802   { 0.54700336898143009, 0.50000000000000000, 5.0000000000000000,
2803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
2804   { 0.57468955512602038, 0.50000000000000000, 5.0000000000000000,
2805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
2806   { 0.60665490543315048, 0.50000000000000000, 5.0000000000000000,
2807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
2808   { 0.64403057859056190, 0.50000000000000000, 5.0000000000000000,
2809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
2810   { 0.68838183648623719, 0.50000000000000000, 5.0000000000000000,
2811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
2812   { 0.74193265039311118, 0.50000000000000000, 5.0000000000000000,
2813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
2814   { 0.80794095908995300, 0.50000000000000000, 5.0000000000000000,
2815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
2816   { 0.89135275749639320, 0.50000000000000000, 5.0000000000000000,
2817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
2818   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
2820   { 1.1469266219310688, 0.50000000000000000, 5.0000000000000000,
2821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
2822   { 1.3552340708357493, 0.50000000000000000, 5.0000000000000000,
2823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
2824   { 1.6690840478838305, 0.50000000000000000, 5.0000000000000000,
2825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
2826   { 2.1815415453174500, 0.50000000000000000, 5.0000000000000000,
2827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
2828   { 3.1156892546032235, 0.50000000000000000, 5.0000000000000000,
2829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
2830   { 5.1109077417760416, 0.50000000000000000, 5.0000000000000000,
2831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
2832   { 10.560352936466318, 0.50000000000000000, 5.0000000000000000,
2833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
2834   { 33.541019662496815, 0.50000000000000000, 5.0000000000000000,
2835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
2836   { 300.66343065819723, 0.50000000000000000, 5.0000000000000000,
2837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
2838 };
2839 const double toler056 = 2.5000000000000020e-13;
2840 
2841 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=4.0000000000000000.
2842 // max(|f - f_GSL|): 8.8817841970012523e-15 at index 18
2843 // max(|f - f_GSL| / |f_GSL|): 1.3217255411112292e-15
2844 // mean(f - f_GSL): 6.8950693108299193e-16
2845 // variance(f - f_GSL): 3.9356627445430313e-30
2846 // stddev(f - f_GSL): 1.9838504844224102e-15
2847 const testcase_hyperg<double>
2848 data057[19] =
2849 {
2850   { 0.68252041951139286, 0.50000000000000000, 5.0000000000000000,
2851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
2852   { 0.70394732624993395, 0.50000000000000000, 5.0000000000000000,
2853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
2854   { 0.72748884971552052, 0.50000000000000000, 5.0000000000000000,
2855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
2856   { 0.75351147371199667, 0.50000000000000000, 5.0000000000000000,
2857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
2858   { 0.78247589005573737, 0.50000000000000000, 5.0000000000000000,
2859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
2860   { 0.81497017420249795, 0.50000000000000000, 5.0000000000000000,
2861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
2862   { 0.85175826875009608, 0.50000000000000000, 5.0000000000000000,
2863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
2864   { 0.89385278481745867, 0.50000000000000000, 5.0000000000000000,
2865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
2866   { 0.94262778709507411, 0.50000000000000000, 5.0000000000000000,
2867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
2868   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
2870   { 1.0687327277420910, 0.50000000000000000, 5.0000000000000000,
2871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
2872   { 1.1529725508983291, 0.50000000000000000, 5.0000000000000000,
2873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
2874   { 1.2592587134058799, 0.50000000000000000, 5.0000000000000000,
2875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
2876   { 1.3985773194637896, 0.50000000000000000, 5.0000000000000000,
2877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
2878   { 1.5909902576697317, 0.50000000000000000, 5.0000000000000000,
2879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
2880   { 1.8776023607249752, 0.50000000000000000, 5.0000000000000000,
2881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
2882   { 2.3582499003694664, 0.50000000000000000, 5.0000000000000000,
2883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
2884   { 3.3541019662496838, 0.50000000000000000, 5.0000000000000000,
2885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
2886   { 6.7198400278578028, 0.50000000000000000, 5.0000000000000000,
2887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
2888 };
2889 const double toler057 = 2.5000000000000020e-13;
2890 
2891 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=6.0000000000000000.
2892 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
2893 // max(|f - f_GSL| / |f_GSL|): 1.2228264607471081e-15
2894 // mean(f - f_GSL): 2.2788788400200583e-16
2895 // variance(f - f_GSL): 3.4817209315093131e-31
2896 // stddev(f - f_GSL): 5.9006109272763554e-16
2897 const testcase_hyperg<double>
2898 data058[19] =
2899 {
2900   { 0.75755211927082600, 0.50000000000000000, 5.0000000000000000,
2901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
2902   { 0.77603550233010965, 0.50000000000000000, 5.0000000000000000,
2903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
2904   { 0.79596241913438504, 0.50000000000000000, 5.0000000000000000,
2905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
2906   { 0.81753360792105212, 0.50000000000000000, 5.0000000000000000,
2907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
2908   { 0.84099165409805532, 0.50000000000000000, 5.0000000000000000,
2909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
2910   { 0.86663303852180906, 0.50000000000000000, 5.0000000000000000,
2911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
2912   { 0.89482475828629915, 0.50000000000000000, 5.0000000000000000,
2913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
2914   { 0.92602774279590350, 0.50000000000000000, 5.0000000000000000,
2915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
2916   { 0.96083064727087386, 0.50000000000000000, 5.0000000000000000,
2917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
2918   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
2920   { 1.0445570841313008, 0.50000000000000000, 5.0000000000000000,
2921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
2922   { 1.0959004638926033, 0.50000000000000000, 5.0000000000000000,
2923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
2924   { 1.1560106261370562, 0.50000000000000000, 5.0000000000000000,
2925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
2926   { 1.2278121770678148, 0.50000000000000000, 5.0000000000000000,
2927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
2928   { 1.3158640214709998, 0.50000000000000000, 5.0000000000000000,
2929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
2930   { 1.4278095344155000, 0.50000000000000000, 5.0000000000000000,
2931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
2932   { 1.5778700502946617, 0.50000000000000000, 5.0000000000000000,
2933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
2934   { 1.7972173289196469, 0.50000000000000000, 5.0000000000000000,
2935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
2936   { 2.1789970569269732, 0.50000000000000000, 5.0000000000000000,
2937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
2938 };
2939 const double toler058 = 2.5000000000000020e-13;
2940 
2941 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=8.0000000000000000.
2942 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
2943 // max(|f - f_GSL| / |f_GSL|): 5.6109827053892650e-16
2944 // mean(f - f_GSL): 7.5962628000668607e-17
2945 // variance(f - f_GSL): 3.8685788127881258e-32
2946 // stddev(f - f_GSL): 1.9668703090921186e-16
2947 const testcase_hyperg<double>
2948 data059[19] =
2949 {
2950   { 0.80270093579329460, 0.50000000000000000, 5.0000000000000000,
2951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
2952   { 0.81884974572462765, 0.50000000000000000, 5.0000000000000000,
2953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
2954   { 0.83605266330015260, 0.50000000000000000, 5.0000000000000000,
2955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
2956   { 0.85443340762796027, 0.50000000000000000, 5.0000000000000000,
2957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
2958   { 0.87413762182790711, 0.50000000000000000, 5.0000000000000000,
2959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
2960   { 0.89533826626907298, 0.50000000000000000, 5.0000000000000000,
2961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
2962   { 0.91824276674115313, 0.50000000000000000, 5.0000000000000000,
2963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
2964   { 0.94310265050720576, 0.50000000000000000, 5.0000000000000000,
2965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
2966   { 0.97022678857609712, 0.50000000000000000, 5.0000000000000000,
2967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
2968   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
2969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
2970   { 1.0329098673199812, 0.50000000000000000, 5.0000000000000000,
2971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
2972   { 1.0695865684573389, 0.50000000000000000, 5.0000000000000000,
2973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
2974   { 1.1108642103944570, 0.50000000000000000, 5.0000000000000000,
2975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
2976   { 1.1578795055970506, 0.50000000000000000, 5.0000000000000000,
2977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
2978   { 1.2122394794169442, 0.50000000000000000, 5.0000000000000000,
2979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
2980   { 1.2763274721556934, 0.50000000000000000, 5.0000000000000000,
2981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
2982   { 1.3539179650251021, 0.50000000000000000, 5.0000000000000000,
2983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
2984   { 1.4515986118197148, 0.50000000000000000, 5.0000000000000000,
2985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
2986   { 1.5829284571614224, 0.50000000000000000, 5.0000000000000000,
2987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
2988 };
2989 const double toler059 = 2.5000000000000020e-13;
2990 
2991 // Test data for a=0.50000000000000000, b=5.0000000000000000, c=10.000000000000000.
2992 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
2993 // max(|f - f_GSL| / |f_GSL|): 3.2099086385883890e-16
2994 // mean(f - f_GSL): 5.8432790769745078e-17
2995 // variance(f - f_GSL): 8.7218722159852367e-33
2996 // stddev(f - f_GSL): 9.3390964316604188e-17
2997 const testcase_hyperg<double>
2998 data060[19] =
2999 {
3000   { 0.83322694172301981, 0.50000000000000000, 5.0000000000000000,
3001 	  10.000000000000000, -0.90000000000000002, 0.0 },
3002   { 0.84753931604765675, 0.50000000000000000, 5.0000000000000000,
3003 	  10.000000000000000, -0.80000000000000004, 0.0 },
3004   { 0.86265784532195022, 0.50000000000000000, 5.0000000000000000,
3005 	  10.000000000000000, -0.69999999999999996, 0.0 },
3006   { 0.87866479300707090, 0.50000000000000000, 5.0000000000000000,
3007 	  10.000000000000000, -0.59999999999999998, 0.0 },
3008   { 0.89565516540263501, 0.50000000000000000, 5.0000000000000000,
3009 	  10.000000000000000, -0.50000000000000000, 0.0 },
3010   { 0.91373946207610557, 0.50000000000000000, 5.0000000000000000,
3011 	  10.000000000000000, -0.39999999999999991, 0.0 },
3012   { 0.93304721345881914, 0.50000000000000000, 5.0000000000000000,
3013 	  10.000000000000000, -0.29999999999999993, 0.0 },
3014   { 0.95373159512905148, 0.50000000000000000, 5.0000000000000000,
3015 	  10.000000000000000, -0.19999999999999996, 0.0 },
3016   { 0.97597554238828121, 0.50000000000000000, 5.0000000000000000,
3017 	  10.000000000000000, -0.099999999999999978, 0.0 },
3018   { 1.0000000000000000, 0.50000000000000000, 5.0000000000000000,
3019 	  10.000000000000000, 0.0000000000000000, 0.0 },
3020   { 1.0260752851887982, 0.50000000000000000, 5.0000000000000000,
3021 	  10.000000000000000, 0.10000000000000009, 0.0 },
3022   { 1.0545371197996178, 0.50000000000000000, 5.0000000000000000,
3023 	  10.000000000000000, 0.20000000000000018, 0.0 },
3024   { 1.0858099017045830, 0.50000000000000000, 5.0000000000000000,
3025 	  10.000000000000000, 0.30000000000000004, 0.0 },
3026   { 1.1204416568688709, 0.50000000000000000, 5.0000000000000000,
3027 	  10.000000000000000, 0.40000000000000013, 0.0 },
3028   { 1.1591587835964847, 0.50000000000000000, 5.0000000000000000,
3029 	  10.000000000000000, 0.50000000000000000, 0.0 },
3030   { 1.2029564720303347, 0.50000000000000000, 5.0000000000000000,
3031 	  10.000000000000000, 0.60000000000000009, 0.0 },
3032   { 1.2532588722007874, 0.50000000000000000, 5.0000000000000000,
3033 	  10.000000000000000, 0.70000000000000018, 0.0 },
3034   { 1.3122319926925459, 0.50000000000000000, 5.0000000000000000,
3035 	  10.000000000000000, 0.80000000000000004, 0.0 },
3036   { 1.3834948587364102, 0.50000000000000000, 5.0000000000000000,
3037 	  10.000000000000000, 0.90000000000000013, 0.0 },
3038 };
3039 const double toler060 = 2.5000000000000020e-13;
3040 
3041 // Test data for a=0.50000000000000000, b=10.000000000000000, c=2.0000000000000000.
3042 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
3043 // max(|f - f_GSL| / |f_GSL|): 1.8229127098647768e-15
3044 // mean(f - f_GSL): 7.8543415046726153e-10
3045 // variance(f - f_GSL): 1.1684633485497506e-17
3046 // stddev(f - f_GSL): 3.4182793164832956e-09
3047 const testcase_hyperg<double>
3048 data061[19] =
3049 {
3050   { 0.37727530159464628, 0.50000000000000000, 10.000000000000000,
3051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3052   { 0.39816010922169059, 0.50000000000000000, 10.000000000000000,
3053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3054   { 0.42283703041362447, 0.50000000000000000, 10.000000000000000,
3055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3056   { 0.45255640448730527, 0.50000000000000000, 10.000000000000000,
3057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3058   { 0.48919507154431119, 0.50000000000000000, 10.000000000000000,
3059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3060   { 0.53569358917731902, 0.50000000000000000, 10.000000000000000,
3061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3062   { 0.59689778897029577, 0.50000000000000000, 10.000000000000000,
3063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3064   { 0.68128587569875765, 0.50000000000000000, 10.000000000000000,
3065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3066   { 0.80478739308790359, 0.50000000000000000, 10.000000000000000,
3067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3068   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3070   { 1.3408664196153621, 0.50000000000000000, 10.000000000000000,
3071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3072   { 2.0175364359923882, 0.50000000000000000, 10.000000000000000,
3073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3074   { 3.6011214553736646, 0.50000000000000000, 10.000000000000000,
3075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3076   { 8.1799429939495489, 0.50000000000000000, 10.000000000000000,
3077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3078   { 25.644834637536000, 0.50000000000000000, 10.000000000000000,
3079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3080   { 123.13738891597615, 0.50000000000000000, 10.000000000000000,
3081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3082   { 1088.7122410321385, 0.50000000000000000, 10.000000000000000,
3083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3084   { 27358.291704709951, 0.50000000000000000, 10.000000000000000,
3085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3086   { 8174369.0266732639, 0.50000000000000000, 10.000000000000000,
3087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3088 };
3089 const double toler061 = 2.5000000000000020e-13;
3090 
3091 // Test data for a=0.50000000000000000, b=10.000000000000000, c=4.0000000000000000.
3092 // max(|f - f_GSL|): 2.0008883439004421e-11 at index 18
3093 // max(|f - f_GSL| / |f_GSL|): 1.5684473872214445e-15
3094 // mean(f - f_GSL): 1.0626587329385841e-12
3095 // variance(f - f_GSL): 2.1050090066796454e-23
3096 // stddev(f - f_GSL): 4.5880377141863658e-12
3097 const testcase_hyperg<double>
3098 data062[19] =
3099 {
3100   { 0.53905528308450823, 0.50000000000000000, 10.000000000000000,
3101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3102   { 0.56235533974376162, 0.50000000000000000, 10.000000000000000,
3103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3104   { 0.58887657983263575, 0.50000000000000000, 10.000000000000000,
3105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3106   { 0.61941227047262937, 0.50000000000000000, 10.000000000000000,
3107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3108   { 0.65504896640793864, 0.50000000000000000, 10.000000000000000,
3109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3110   { 0.69731666644529977, 0.50000000000000000, 10.000000000000000,
3111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3112   { 0.74844073299399116, 0.50000000000000000, 10.000000000000000,
3113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3114   { 0.81178446800105830, 0.50000000000000000, 10.000000000000000,
3115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3116   { 0.89266981277598045, 0.50000000000000000, 10.000000000000000,
3117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3118   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3120   { 1.1497248473106778, 0.50000000000000000, 10.000000000000000,
3121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3122   { 1.3729717112654578, 0.50000000000000000, 10.000000000000000,
3123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3124   { 1.7374982340374392, 0.50000000000000000, 10.000000000000000,
3125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3126   { 2.4134479340960602, 0.50000000000000000, 10.000000000000000,
3127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3128   { 3.9191255240471192, 0.50000000000000000, 10.000000000000000,
3129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3130   { 8.3316373077761270, 0.50000000000000000, 10.000000000000000,
3131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3132   { 28.323020339843417, 0.50000000000000000, 10.000000000000000,
3133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3134   { 225.84286572747891, 0.50000000000000000, 10.000000000000000,
3135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3136   { 12757.127591286826, 0.50000000000000000, 10.000000000000000,
3137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3138 };
3139 const double toler062 = 2.5000000000000020e-13;
3140 
3141 // Test data for a=0.50000000000000000, b=10.000000000000000, c=6.0000000000000000.
3142 // max(|f - f_GSL|): 1.9895196601282805e-13 at index 18
3143 // max(|f - f_GSL| / |f_GSL|): 1.4567107859209851e-15
3144 // mean(f - f_GSL): 1.1043797455481820e-14
3145 // variance(f - f_GSL): 2.0706176432127926e-27
3146 // stddev(f - f_GSL): 4.5504039855959963e-14
3147 const testcase_hyperg<double>
3148 data063[19] =
3149 {
3150   { 0.62672622092226027, 0.50000000000000000, 10.000000000000000,
3151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3152   { 0.64931010269769840, 0.50000000000000000, 10.000000000000000,
3153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3154   { 0.67448067519076293, 0.50000000000000000, 10.000000000000000,
3155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3156   { 0.70276306239803643, 0.50000000000000000, 10.000000000000000,
3157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3158   { 0.73484179773087521, 0.50000000000000000, 10.000000000000000,
3159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3160   { 0.77162761412743874, 0.50000000000000000, 10.000000000000000,
3161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3162   { 0.81436116844816553, 0.50000000000000000, 10.000000000000000,
3163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3164   { 0.86477994787944579, 0.50000000000000000, 10.000000000000000,
3165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3166   { 0.92539820516603888, 0.50000000000000000, 10.000000000000000,
3167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3168   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3170   { 1.0945599448210315, 0.50000000000000000, 10.000000000000000,
3171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3172   { 1.2190897395597269, 0.50000000000000000, 10.000000000000000,
3173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3174   { 1.3916844336856475, 0.50000000000000000, 10.000000000000000,
3175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3176   { 1.6484497630432020, 0.50000000000000000, 10.000000000000000,
3177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3178   { 2.0717772717131155, 0.50000000000000000, 10.000000000000000,
3179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3180   { 2.8893613630810924, 0.50000000000000000, 10.000000000000000,
3181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3182   { 4.9459404075413573, 0.50000000000000000, 10.000000000000000,
3183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3184   { 13.487394149998716, 0.50000000000000000, 10.000000000000000,
3185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3186   { 136.57616044014080, 0.50000000000000000, 10.000000000000000,
3187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3188 };
3189 const double toler063 = 2.5000000000000020e-13;
3190 
3191 // Test data for a=0.50000000000000000, b=10.000000000000000, c=8.0000000000000000.
3192 // max(|f - f_GSL|): 1.2434497875801753e-14 at index 18
3193 // max(|f - f_GSL| / |f_GSL|): 1.3245081211977792e-15
3194 // mean(f - f_GSL): 8.5311874523827817e-16
3195 // variance(f - f_GSL): 7.8655509529357183e-30
3196 // stddev(f - f_GSL): 2.8045589587198410e-15
3197 const testcase_hyperg<double>
3198 data064[19] =
3199 {
3200   { 0.68421604440344319, 0.50000000000000000, 10.000000000000000,
3201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3202   { 0.70548098055548925, 0.50000000000000000, 10.000000000000000,
3203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3204   { 0.72884342311710337, 0.50000000000000000, 10.000000000000000,
3205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3206   { 0.75466953437856232, 0.50000000000000000, 10.000000000000000,
3207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3208   { 0.78342090924662589, 0.50000000000000000, 10.000000000000000,
3209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3210   { 0.81568884278645115, 0.50000000000000000, 10.000000000000000,
3211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3212   { 0.85224480241465261, 0.50000000000000000, 10.000000000000000,
3213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3214   { 0.89411692571131685, 0.50000000000000000, 10.000000000000000,
3215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3216   { 0.94270986892954811, 0.50000000000000000, 10.000000000000000,
3217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3218   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3220   { 1.0688682849120232, 0.50000000000000000, 10.000000000000000,
3221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3222   { 1.1537004376097553, 0.50000000000000000, 10.000000000000000,
3223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3224   { 1.2615455028370031, 0.50000000000000000, 10.000000000000000,
3225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3226   { 1.4045541456153443, 0.50000000000000000, 10.000000000000000,
3227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3228   { 1.6057216489444517, 0.50000000000000000, 10.000000000000000,
3229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3230   { 1.9146603020550739, 0.50000000000000000, 10.000000000000000,
3231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3232   { 2.4617931307620307, 0.50000000000000000, 10.000000000000000,
3233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3234   { 3.7267799624996498, 0.50000000000000000, 10.000000000000000,
3235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3236   { 9.3880118036248721, 0.50000000000000000, 10.000000000000000,
3237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3238 };
3239 const double toler064 = 2.5000000000000020e-13;
3240 
3241 // Test data for a=0.50000000000000000, b=10.000000000000000, c=10.000000000000000.
3242 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
3243 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
3244 // mean(f - f_GSL): 5.8432790769745078e-18
3245 // variance(f - f_GSL): 1.1262748212790853e-32
3246 // stddev(f - f_GSL): 1.0612609581432294e-16
3247 const testcase_hyperg<double>
3248 data065[19] =
3249 {
3250   { 0.72547625011001160, 0.50000000000000000, 10.000000000000000,
3251 	  10.000000000000000, -0.90000000000000002, 0.0 },
3252   { 0.74535599249992990, 0.50000000000000000, 10.000000000000000,
3253 	  10.000000000000000, -0.80000000000000004, 0.0 },
3254   { 0.76696498884737041, 0.50000000000000000, 10.000000000000000,
3255 	  10.000000000000000, -0.69999999999999996, 0.0 },
3256   { 0.79056941504209477, 0.50000000000000000, 10.000000000000000,
3257 	  10.000000000000000, -0.59999999999999998, 0.0 },
3258   { 0.81649658092772603, 0.50000000000000000, 10.000000000000000,
3259 	  10.000000000000000, -0.50000000000000000, 0.0 },
3260   { 0.84515425472851669, 0.50000000000000000, 10.000000000000000,
3261 	  10.000000000000000, -0.39999999999999991, 0.0 },
3262   { 0.87705801930702931, 0.50000000000000000, 10.000000000000000,
3263 	  10.000000000000000, -0.29999999999999993, 0.0 },
3264   { 0.91287092917527690, 0.50000000000000000, 10.000000000000000,
3265 	  10.000000000000000, -0.19999999999999996, 0.0 },
3266   { 0.95346258924559224, 0.50000000000000000, 10.000000000000000,
3267 	  10.000000000000000, -0.099999999999999978, 0.0 },
3268   { 1.0000000000000000, 0.50000000000000000, 10.000000000000000,
3269 	  10.000000000000000, 0.0000000000000000, 0.0 },
3270   { 1.0540925533894598, 0.50000000000000000, 10.000000000000000,
3271 	  10.000000000000000, 0.10000000000000009, 0.0 },
3272   { 1.1180339887498949, 0.50000000000000000, 10.000000000000000,
3273 	  10.000000000000000, 0.20000000000000018, 0.0 },
3274   { 1.1952286093343938, 0.50000000000000000, 10.000000000000000,
3275 	  10.000000000000000, 0.30000000000000004, 0.0 },
3276   { 1.2909944487358058, 0.50000000000000000, 10.000000000000000,
3277 	  10.000000000000000, 0.40000000000000013, 0.0 },
3278   { 1.4142135623730951, 0.50000000000000000, 10.000000000000000,
3279 	  10.000000000000000, 0.50000000000000000, 0.0 },
3280   { 1.5811388300841900, 0.50000000000000000, 10.000000000000000,
3281 	  10.000000000000000, 0.60000000000000009, 0.0 },
3282   { 1.8257418583505542, 0.50000000000000000, 10.000000000000000,
3283 	  10.000000000000000, 0.70000000000000018, 0.0 },
3284   { 2.2360679774997898, 0.50000000000000000, 10.000000000000000,
3285 	  10.000000000000000, 0.80000000000000004, 0.0 },
3286   { 3.1622776601683809, 0.50000000000000000, 10.000000000000000,
3287 	  10.000000000000000, 0.90000000000000013, 0.0 },
3288 };
3289 const double toler065 = 2.5000000000000020e-13;
3290 
3291 // Test data for a=0.50000000000000000, b=20.000000000000000, c=2.0000000000000000.
3292 // max(|f - f_GSL|): 48.000000000000000 at index 18
3293 // max(|f - f_GSL| / |f_GSL|): 1.8556481344874416e-15
3294 // mean(f - f_GSL): 2.5263190030329112
3295 // variance(f - f_GSL): 121.26314075575490
3296 // stddev(f - f_GSL): 11.011954447588080
3297 const testcase_hyperg<double>
3298 data066[19] =
3299 {
3300   { 0.26690449940521549, 0.50000000000000000, 20.000000000000000,
3301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3302   { 0.28252302866181833, 0.50000000000000000, 20.000000000000000,
3303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3304   { 0.30123616141153836, 0.50000000000000000, 20.000000000000000,
3305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3306   { 0.32421384687602633, 0.50000000000000000, 20.000000000000000,
3307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3308   { 0.35334630811776774, 0.50000000000000000, 20.000000000000000,
3309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3310   { 0.39191793127466995, 0.50000000000000000, 20.000000000000000,
3311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3312   { 0.44620488618129212, 0.50000000000000000, 20.000000000000000,
3313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3314   { 0.52980896919265719, 0.50000000000000000, 20.000000000000000,
3315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3316   { 0.67754711477562324, 0.50000000000000000, 20.000000000000000,
3317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3318   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3320   { 1.9567557771780317, 0.50000000000000000, 20.000000000000000,
3321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3322   { 6.1816042148333272, 0.50000000000000000, 20.000000000000000,
3323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3324   { 35.653088618561227, 0.50000000000000000, 20.000000000000000,
3325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3326   { 377.51482843180133, 0.50000000000000000, 20.000000000000000,
3327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3328   { 7645.8816551195359, 0.50000000000000000, 20.000000000000000,
3329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3330   { 354791.74537980522, 0.50000000000000000, 20.000000000000000,
3331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3332   { 57009889.966639392, 0.50000000000000000, 20.000000000000000,
3333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3334   { 83771357024.863937, 0.50000000000000000, 20.000000000000000,
3335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3336   { 25866972896377436., 0.50000000000000000, 20.000000000000000,
3337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3338 };
3339 const double toler066 = 2.5000000000000020e-13;
3340 
3341 // Test data for a=0.50000000000000000, b=20.000000000000000, c=4.0000000000000000.
3342 // max(|f - f_GSL|): 0.011718750000000000 at index 18
3343 // max(|f - f_GSL| / |f_GSL|): 1.7519521419033478e-15
3344 // mean(f - f_GSL): 0.00061678102606403001
3345 // variance(f - f_GSL): 7.2278413174892008e-06
3346 // stddev(f - f_GSL): 0.0026884644906506020
3347 const testcase_hyperg<double>
3348 data067[19] =
3349 {
3350   { 0.40342659436153389, 0.50000000000000000, 20.000000000000000,
3351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3352   { 0.42420571192034318, 0.50000000000000000, 20.000000000000000,
3353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3354   { 0.44852768286073041, 0.50000000000000000, 20.000000000000000,
3355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3356   { 0.47751245808592863, 0.50000000000000000, 20.000000000000000,
3357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3358   { 0.51283632632707765, 0.50000000000000000, 20.000000000000000,
3359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3360   { 0.55713468814894329, 0.50000000000000000, 20.000000000000000,
3361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3362   { 0.61481320817757346, 0.50000000000000000, 20.000000000000000,
3363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3364   { 0.69383483410097213, 0.50000000000000000, 20.000000000000000,
3365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3366   { 0.81012002526006044, 0.50000000000000000, 20.000000000000000,
3367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3368   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3370   { 1.3622225506603911, 0.50000000000000000, 20.000000000000000,
3371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3372   { 2.2349513086109027, 0.50000000000000000, 20.000000000000000,
3373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3374   { 5.1864917536761723, 0.50000000000000000, 20.000000000000000,
3375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3376   { 21.020560423779497, 0.50000000000000000, 20.000000000000000,
3377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3378   { 175.19649997100612, 0.50000000000000000, 20.000000000000000,
3379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3380   { 3467.1587803688708, 0.50000000000000000, 20.000000000000000,
3381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3382   { 225003.88683446089, 0.50000000000000000, 20.000000000000000,
3383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3384   { 110837674.65652709, 0.50000000000000000, 20.000000000000000,
3385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3386   { 6688966964170.9326, 0.50000000000000000, 20.000000000000000,
3387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3388 };
3389 const double toler067 = 2.5000000000000020e-13;
3390 
3391 // Test data for a=0.50000000000000000, b=20.000000000000000, c=6.0000000000000000.
3392 // max(|f - f_GSL|): 1.4305114746093750e-05 at index 18
3393 // max(|f - f_GSL| / |f_GSL|): 1.9261147266353426e-15
3394 // mean(f - f_GSL): 7.5292535813082699e-07
3395 // variance(f - f_GSL): 1.0770292922645316e-11
3396 // stddev(f - f_GSL): 3.2818124447697064e-06
3397 const testcase_hyperg<double>
3398 data068[19] =
3399 {
3400   { 0.48716309885816822, 0.50000000000000000, 20.000000000000000,
3401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3402   { 0.50965859152542337, 0.50000000000000000, 20.000000000000000,
3403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3404   { 0.53554809210658938, 0.50000000000000000, 20.000000000000000,
3405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3406   { 0.56576689207507136, 0.50000000000000000, 20.000000000000000,
3407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3408   { 0.60164849637133655, 0.50000000000000000, 20.000000000000000,
3409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3410   { 0.64516711595404408, 0.50000000000000000, 20.000000000000000,
3411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3412   { 0.69938278735493553, 0.50000000000000000, 20.000000000000000,
3413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3414   { 0.76931621518401860, 0.50000000000000000, 20.000000000000000,
3415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3416   { 0.86381808725530662, 0.50000000000000000, 20.000000000000000,
3417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3418   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3420   { 1.2152051956815531, 0.50000000000000000, 20.000000000000000,
3421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3422   { 1.6052546785425557, 0.50000000000000000, 20.000000000000000,
3423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3424   { 2.4765586046012635, 0.50000000000000000, 20.000000000000000,
3425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3426   { 5.1564492216997611, 0.50000000000000000, 20.000000000000000,
3427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3428   { 18.446158392136365, 0.50000000000000000, 20.000000000000000,
3429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3430   { 150.44577670123971, 0.50000000000000000, 20.000000000000000,
3431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3432   { 3862.6317400116104, 0.50000000000000000, 20.000000000000000,
3433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3434   { 632428.34833625401, 0.50000000000000000, 20.000000000000000,
3435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3436   { 7426927663.3810987, 0.50000000000000000, 20.000000000000000,
3437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3438 };
3439 const double toler068 = 2.5000000000000020e-13;
3440 
3441 // Test data for a=0.50000000000000000, b=20.000000000000000, c=8.0000000000000000.
3442 // max(|f - f_GSL|): 4.0978193283081055e-08 at index 18
3443 // max(|f - f_GSL| / |f_GSL|): 1.7692881266931270e-15
3444 // mean(f - f_GSL): 2.1571346930926438e-09
3445 // variance(f - f_GSL): 8.8377830897836260e-17
3446 // stddev(f - f_GSL): 9.4009484041683924e-09
3447 const testcase_hyperg<double>
3448 data069[19] =
3449 {
3450   { 0.54703266209548373, 0.50000000000000000, 20.000000000000000,
3451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3452   { 0.56997321774144960, 0.50000000000000000, 20.000000000000000,
3453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3454   { 0.59603026159654982, 0.50000000000000000, 20.000000000000000,
3455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3456   { 0.62596978851120511, 0.50000000000000000, 20.000000000000000,
3457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3458   { 0.66084565876898915, 0.50000000000000000, 20.000000000000000,
3459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3460   { 0.70215256667232862, 0.50000000000000000, 20.000000000000000,
3461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3462   { 0.75208916592008568, 0.50000000000000000, 20.000000000000000,
3463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3464   { 0.81403631111658625, 0.50000000000000000, 20.000000000000000,
3465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3466   { 0.89348608489854597, 0.50000000000000000, 20.000000000000000,
3467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3468   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3470   { 1.1517793185139173, 0.50000000000000000, 20.000000000000000,
3471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3472   { 1.3878110313656606, 0.50000000000000000, 20.000000000000000,
3473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3474   { 1.8061071794572381, 0.50000000000000000, 20.000000000000000,
3475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3476   { 2.7148594517859612, 0.50000000000000000, 20.000000000000000,
3477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3478   { 5.4529435709049361, 0.50000000000000000, 20.000000000000000,
3479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3480   { 19.487310275377109, 0.50000000000000000, 20.000000000000000,
3481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3482   { 191.69079165937592, 0.50000000000000000, 20.000000000000000,
3483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3484   { 10218.543981792311, 0.50000000000000000, 20.000000000000000,
3485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3486   { 23160836.646584522, 0.50000000000000000, 20.000000000000000,
3487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3488 };
3489 const double toler069 = 2.5000000000000020e-13;
3490 
3491 // Test data for a=0.50000000000000000, b=20.000000000000000, c=10.000000000000000.
3492 // max(|f - f_GSL|): 2.9103830456733704e-10 at index 18
3493 // max(|f - f_GSL| / |f_GSL|): 1.6694673196526424e-15
3494 // mean(f - f_GSL): 1.5333453804912193e-11
3495 // variance(f - f_GSL): 4.4575621294589140e-21
3496 // stddev(f - f_GSL): 6.6764976817631821e-11
3497 const testcase_hyperg<double>
3498 data070[19] =
3499 {
3500   { 0.59292067298616025, 0.50000000000000000, 20.000000000000000,
3501 	  10.000000000000000, -0.90000000000000002, 0.0 },
3502   { 0.61572496720679892, 0.50000000000000000, 20.000000000000000,
3503 	  10.000000000000000, -0.80000000000000004, 0.0 },
3504   { 0.64135339122875590, 0.50000000000000000, 20.000000000000000,
3505 	  10.000000000000000, -0.69999999999999996, 0.0 },
3506   { 0.67043457419280461, 0.50000000000000000, 20.000000000000000,
3507 	  10.000000000000000, -0.59999999999999998, 0.0 },
3508   { 0.70380956268170969, 0.50000000000000000, 20.000000000000000,
3509 	  10.000000000000000, -0.50000000000000000, 0.0 },
3510   { 0.74263251901495264, 0.50000000000000000, 20.000000000000000,
3511 	  10.000000000000000, -0.39999999999999991, 0.0 },
3512   { 0.78853555445528289, 0.50000000000000000, 20.000000000000000,
3513 	  10.000000000000000, -0.29999999999999993, 0.0 },
3514   { 0.84391122775673755, 0.50000000000000000, 20.000000000000000,
3515 	  10.000000000000000, -0.19999999999999996, 0.0 },
3516   { 0.91242401018807373, 0.50000000000000000, 20.000000000000000,
3517 	  10.000000000000000, -0.099999999999999978, 0.0 },
3518   { 1.0000000000000000, 0.50000000000000000, 20.000000000000000,
3519 	  10.000000000000000, 0.0000000000000000, 0.0 },
3520   { 1.1169059681274873, 0.50000000000000000, 20.000000000000000,
3521 	  10.000000000000000, 0.10000000000000009, 0.0 },
3522   { 1.2825928301302669, 0.50000000000000000, 20.000000000000000,
3523 	  10.000000000000000, 0.20000000000000018, 0.0 },
3524   { 1.5385937789924939, 0.50000000000000000, 20.000000000000000,
3525 	  10.000000000000000, 0.30000000000000004, 0.0 },
3526   { 1.9895771187893914, 0.50000000000000000, 20.000000000000000,
3527 	  10.000000000000000, 0.40000000000000013, 0.0 },
3528   { 2.9707335806970168, 0.50000000000000000, 20.000000000000000,
3529 	  10.000000000000000, 0.50000000000000000, 0.0 },
3530   { 6.0299506157180467, 0.50000000000000000, 20.000000000000000,
3531 	  10.000000000000000, 0.60000000000000009, 0.0 },
3532   { 24.259090336955669, 0.50000000000000000, 20.000000000000000,
3533 	  10.000000000000000, 0.70000000000000018, 0.0 },
3534   { 406.27267173257223, 0.50000000000000000, 20.000000000000000,
3535 	  10.000000000000000, 0.80000000000000004, 0.0 },
3536   { 174330.03997220617, 0.50000000000000000, 20.000000000000000,
3537 	  10.000000000000000, 0.90000000000000013, 0.0 },
3538 };
3539 const double toler070 = 2.5000000000000020e-13;
3540 
3541 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
3542 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3543 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3544 // mean(f - f_GSL): 0.0000000000000000
3545 // variance(f - f_GSL): 0.0000000000000000
3546 // stddev(f - f_GSL): 0.0000000000000000
3547 const testcase_hyperg<double>
3548 data071[19] =
3549 {
3550   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3552   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3554   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3556   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3558   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3560   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3562   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3564   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3566   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3568   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3570   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3572   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3574   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3576   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3578   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3580   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3582   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3584   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3586   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3588 };
3589 const double toler071 = 2.5000000000000020e-13;
3590 
3591 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
3592 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3593 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3594 // mean(f - f_GSL): 0.0000000000000000
3595 // variance(f - f_GSL): 0.0000000000000000
3596 // stddev(f - f_GSL): 0.0000000000000000
3597 const testcase_hyperg<double>
3598 data072[19] =
3599 {
3600   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3602   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3604   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3606   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3608   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3610   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3612   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3614   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3616   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3618   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3620   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3622   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3624   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3626   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3628   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3630   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3632   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3634   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3636   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3638 };
3639 const double toler072 = 2.5000000000000020e-13;
3640 
3641 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
3642 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3643 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3644 // mean(f - f_GSL): 0.0000000000000000
3645 // variance(f - f_GSL): 0.0000000000000000
3646 // stddev(f - f_GSL): 0.0000000000000000
3647 const testcase_hyperg<double>
3648 data073[19] =
3649 {
3650   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3652   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3654   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3656   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3658   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3660   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3662   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3664   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3666   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3668   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3670   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3672   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3674   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3676   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3678   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3680   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3682   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3684   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3686   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3688 };
3689 const double toler073 = 2.5000000000000020e-13;
3690 
3691 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
3692 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3693 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3694 // mean(f - f_GSL): 0.0000000000000000
3695 // variance(f - f_GSL): 0.0000000000000000
3696 // stddev(f - f_GSL): 0.0000000000000000
3697 const testcase_hyperg<double>
3698 data074[19] =
3699 {
3700   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3702   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3704   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3706   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3708   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3710   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3712   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3714   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3716   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3718   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3720   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3722   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3724   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3726   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3728   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3730   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3732   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3734   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3736   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3738 };
3739 const double toler074 = 2.5000000000000020e-13;
3740 
3741 // Test data for a=1.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
3742 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3743 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3744 // mean(f - f_GSL): 0.0000000000000000
3745 // variance(f - f_GSL): 0.0000000000000000
3746 // stddev(f - f_GSL): 0.0000000000000000
3747 const testcase_hyperg<double>
3748 data075[19] =
3749 {
3750   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3751 	  10.000000000000000, -0.90000000000000002, 0.0 },
3752   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3753 	  10.000000000000000, -0.80000000000000004, 0.0 },
3754   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3755 	  10.000000000000000, -0.69999999999999996, 0.0 },
3756   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3757 	  10.000000000000000, -0.59999999999999998, 0.0 },
3758   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3759 	  10.000000000000000, -0.50000000000000000, 0.0 },
3760   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3761 	  10.000000000000000, -0.39999999999999991, 0.0 },
3762   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3763 	  10.000000000000000, -0.29999999999999993, 0.0 },
3764   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3765 	  10.000000000000000, -0.19999999999999996, 0.0 },
3766   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3767 	  10.000000000000000, -0.099999999999999978, 0.0 },
3768   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3769 	  10.000000000000000, 0.0000000000000000, 0.0 },
3770   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3771 	  10.000000000000000, 0.10000000000000009, 0.0 },
3772   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3773 	  10.000000000000000, 0.20000000000000018, 0.0 },
3774   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3775 	  10.000000000000000, 0.30000000000000004, 0.0 },
3776   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3777 	  10.000000000000000, 0.40000000000000013, 0.0 },
3778   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3779 	  10.000000000000000, 0.50000000000000000, 0.0 },
3780   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3781 	  10.000000000000000, 0.60000000000000009, 0.0 },
3782   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3783 	  10.000000000000000, 0.70000000000000018, 0.0 },
3784   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3785 	  10.000000000000000, 0.80000000000000004, 0.0 },
3786   { 1.0000000000000000, 1.0000000000000000, 0.0000000000000000,
3787 	  10.000000000000000, 0.90000000000000013, 0.0 },
3788 };
3789 const double toler075 = 2.5000000000000020e-13;
3790 
3791 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
3792 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
3793 // max(|f - f_GSL| / |f_GSL|): 5.8452254859313207e-16
3794 // mean(f - f_GSL): 8.1805907077643109e-17
3795 // variance(f - f_GSL): 3.8131160349224712e-32
3796 // stddev(f - f_GSL): 1.9527201629835421e-16
3797 const testcase_hyperg<double>
3798 data076[19] =
3799 {
3800   { 0.84089972268671531, 1.0000000000000000, 0.50000000000000000,
3801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
3802   { 0.85410196624968460, 1.0000000000000000, 0.50000000000000000,
3803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
3804   { 0.86811566011579955, 1.0000000000000000, 0.50000000000000000,
3805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
3806   { 0.88303688022450522, 1.0000000000000000, 0.50000000000000000,
3807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
3808   { 0.89897948556635621, 1.0000000000000000, 0.50000000000000000,
3809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
3810   { 0.91607978309961580, 1.0000000000000000, 0.50000000000000000,
3811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
3812   { 0.93450283399425327, 1.0000000000000000, 0.50000000000000000,
3813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
3814   { 0.95445115010332193, 1.0000000000000000, 0.50000000000000000,
3815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
3816   { 0.97617696340303095, 1.0000000000000000, 0.50000000000000000,
3817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
3818   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
3820   { 1.0263340389897240, 1.0000000000000000, 0.50000000000000000,
3821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
3822   { 1.0557280900008412, 1.0000000000000000, 0.50000000000000000,
3823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
3824   { 1.0889331564394962, 1.0000000000000000, 0.50000000000000000,
3825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
3826   { 1.1270166537925830, 1.0000000000000000, 0.50000000000000000,
3827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
3828   { 1.1715728752538095, 1.0000000000000000, 0.50000000000000000,
3829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
3830   { 1.2251482265544145, 1.0000000000000000, 0.50000000000000000,
3831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
3832   { 1.2922212642709543, 1.0000000000000000, 0.50000000000000000,
3833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
3834   { 1.3819660112501042, 1.0000000000000000, 0.50000000000000000,
3835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
3836   { 1.5194938532959121, 1.0000000000000000, 0.50000000000000000,
3837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
3838 };
3839 const double toler076 = 2.5000000000000020e-13;
3840 
3841 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
3842 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
3843 // max(|f - f_GSL| / |f_GSL|): 1.9508457915403988e-16
3844 // mean(f - f_GSL): 2.3373116307898031e-17
3845 // variance(f - f_GSL): 2.3146198993753289e-33
3846 // stddev(f - f_GSL): 4.8110496769159731e-17
3847 const testcase_hyperg<double>
3848 data077[19] =
3849 {
3850   { 0.90992197313391454, 1.0000000000000000, 0.50000000000000000,
3851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
3852   { 0.91822592662244484, 1.0000000000000000, 0.50000000000000000,
3853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
3854   { 0.92687104566419554, 1.0000000000000000, 0.50000000000000000,
3855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
3856   { 0.93588628166548848, 1.0000000000000000, 0.50000000000000000,
3857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
3858   { 0.94530459215552909, 1.0000000000000000, 0.50000000000000000,
3859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
3860   { 0.95516374875247434, 1.0000000000000000, 0.50000000000000000,
3861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
3862   { 0.96550736800511816, 1.0000000000000000, 0.50000000000000000,
3863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
3864   { 0.97638624595136270, 1.0000000000000000, 0.50000000000000000,
3865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
3866   { 0.98786011482678993, 1.0000000000000000, 0.50000000000000000,
3867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
3868   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
3870   { 1.0128914530682316, 1.0000000000000000, 0.50000000000000000,
3871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
3872   { 1.0266391040215350, 1.0000000000000000, 0.50000000000000000,
3873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
3874   { 1.0413732738729464, 1.0000000000000000, 0.50000000000000000,
3875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
3876   { 1.0572599536532992, 1.0000000000000000, 0.50000000000000000,
3877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
3878   { 1.0745166004060953, 1.0000000000000000, 0.50000000000000000,
3879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
3880   { 1.0934387388831386, 1.0000000000000000, 0.50000000000000000,
3881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
3882   { 1.1144486980714641, 1.0000000000000000, 0.50000000000000000,
3883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
3884   { 1.1381966011250106, 1.0000000000000000, 0.50000000000000000,
3885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
3886   { 1.1658171625342397, 1.0000000000000000, 0.50000000000000000,
3887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
3888 };
3889 const double toler077 = 2.5000000000000020e-13;
3890 
3891 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
3892 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
3893 // max(|f - f_GSL| / |f_GSL|): 4.5130734546221216e-16
3894 // mean(f - f_GSL): 4.6746232615796062e-17
3895 // variance(f - f_GSL): 1.2814504633219814e-34
3896 // stddev(f - f_GSL): 1.1320116886861114e-17
3897 const testcase_hyperg<double>
3898 data078[19] =
3899 {
3900   { 0.93641908369732896, 1.0000000000000000, 0.50000000000000000,
3901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
3902   { 0.94256349654111271, 1.0000000000000000, 0.50000000000000000,
3903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
3904   { 0.94890138508461319, 1.0000000000000000, 0.50000000000000000,
3905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
3906   { 0.95544578858430029, 1.0000000000000000, 0.50000000000000000,
3907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
3908   { 0.96221121193620762, 1.0000000000000000, 0.50000000000000000,
3909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
3910   { 0.96921386948293542, 1.0000000000000000, 0.50000000000000000,
3911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
3912   { 0.97647198488394704, 1.0000000000000000, 0.50000000000000000,
3913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
3914   { 0.98400616412578656, 1.0000000000000000, 0.50000000000000000,
3915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
3916   { 0.99183986544963032, 1.0000000000000000, 0.50000000000000000,
3917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
3918   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
3920   { 1.0085177124149158, 1.0000000000000000, 0.50000000000000000,
3921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
3922   { 1.0174294150407122, 1.0000000000000000, 0.50000000000000000,
3923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
3924   { 1.0267781897388850, 1.0000000000000000, 0.50000000000000000,
3925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
3926   { 1.0366157405967287, 1.0000000000000000, 0.50000000000000000,
3927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
3928   { 1.0470052068648839, 1.0000000000000000, 0.50000000000000000,
3929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
3930   { 1.0580253905513313, 1.0000000000000000, 0.50000000000000000,
3931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
3932   { 1.0697774741209765, 1.0000000000000000, 0.50000000000000000,
3933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
3934   { 1.0823965556448414, 1.0000000000000000, 0.50000000000000000,
3935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
3936   { 1.0960739512057103, 1.0000000000000000, 0.50000000000000000,
3937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
3938 };
3939 const double toler078 = 2.5000000000000020e-13;
3940 
3941 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
3942 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 7
3943 // max(|f - f_GSL| / |f_GSL|): 2.2476491960642283e-16
3944 // mean(f - f_GSL): -5.8432790769745078e-18
3945 // variance(f - f_GSL): 2.0022663489405960e-36
3946 // stddev(f - f_GSL): 1.4150146108576393e-18
3947 const testcase_hyperg<double>
3948 data079[19] =
3949 {
3950   { 0.95069883346936235, 1.0000000000000000, 0.50000000000000000,
3951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
3952   { 0.95559618047704131, 1.0000000000000000, 0.50000000000000000,
3953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
3954   { 0.96061938755931664, 1.0000000000000000, 0.50000000000000000,
3955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
3956   { 0.96577553912851333, 1.0000000000000000, 0.50000000000000000,
3957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
3958   { 0.97107239473807716, 1.0000000000000000, 0.50000000000000000,
3959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
3960   { 0.97651848528588481, 1.0000000000000000, 0.50000000000000000,
3961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
3962   { 0.98212322830227128, 1.0000000000000000, 0.50000000000000000,
3963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
3964   { 0.98789706736195781, 1.0000000000000000, 0.50000000000000000,
3965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
3966   { 0.99385164237825074, 1.0000000000000000, 0.50000000000000000,
3967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
3968   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
3969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
3970   { 1.0063568569383123, 1.0000000000000000, 0.50000000000000000,
3971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
3972   { 1.0129389344715818, 1.0000000000000000, 0.50000000000000000,
3973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
3974   { 1.0197653907773940, 1.0000000000000000, 0.50000000000000000,
3975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
3976   { 1.0268583912277143, 1.0000000000000000, 0.50000000000000000,
3977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
3978   { 1.0342438793937092, 1.0000000000000000, 0.50000000000000000,
3979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
3980   { 1.0419526514766855, 1.0000000000000000, 0.50000000000000000,
3981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
3982   { 1.0500219124976327, 1.0000000000000000, 0.50000000000000000,
3983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
3984   { 1.0584976491907043, 1.0000000000000000, 0.50000000000000000,
3985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
3986   { 1.0674385240268101, 1.0000000000000000, 0.50000000000000000,
3987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
3988 };
3989 const double toler079 = 2.5000000000000020e-13;
3990 
3991 // Test data for a=1.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
3992 // max(|f - f_GSL|): 0.0000000000000000 at index 0
3993 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
3994 // mean(f - f_GSL): 0.0000000000000000
3995 // variance(f - f_GSL): 0.0000000000000000
3996 // stddev(f - f_GSL): 0.0000000000000000
3997 const testcase_hyperg<double>
3998 data080[19] =
3999 {
4000   { 0.95968319138913905, 1.0000000000000000, 0.50000000000000000,
4001 	  10.000000000000000, -0.90000000000000002, 0.0 },
4002   { 0.96376169072755802, 1.0000000000000000, 0.50000000000000000,
4003 	  10.000000000000000, -0.80000000000000004, 0.0 },
4004   { 0.96792900082729372, 1.0000000000000000, 0.50000000000000000,
4005 	  10.000000000000000, -0.69999999999999996, 0.0 },
4006   { 0.97218942798115737, 1.0000000000000000, 0.50000000000000000,
4007 	  10.000000000000000, -0.59999999999999998, 0.0 },
4008   { 0.97654763592586835, 1.0000000000000000, 0.50000000000000000,
4009 	  10.000000000000000, -0.50000000000000000, 0.0 },
4010   { 0.98100869054353890, 1.0000000000000000, 0.50000000000000000,
4011 	  10.000000000000000, -0.39999999999999991, 0.0 },
4012   { 0.98557811238699278, 1.0000000000000000, 0.50000000000000000,
4013 	  10.000000000000000, -0.29999999999999993, 0.0 },
4014   { 0.99026193885795544, 1.0000000000000000, 0.50000000000000000,
4015 	  10.000000000000000, -0.19999999999999996, 0.0 },
4016   { 0.99506679842072221, 1.0000000000000000, 0.50000000000000000,
4017 	  10.000000000000000, -0.099999999999999978, 0.0 },
4018   { 1.0000000000000000, 1.0000000000000000, 0.50000000000000000,
4019 	  10.000000000000000, 0.0000000000000000, 0.0 },
4020   { 1.0050696417919618, 1.0000000000000000, 0.50000000000000000,
4021 	  10.000000000000000, 0.10000000000000009, 0.0 },
4022   { 1.0102847452747090, 1.0000000000000000, 0.50000000000000000,
4023 	  10.000000000000000, 0.20000000000000018, 0.0 },
4024   { 1.0156554225057022, 1.0000000000000000, 0.50000000000000000,
4025 	  10.000000000000000, 0.30000000000000004, 0.0 },
4026   { 1.0211930882963096, 1.0000000000000000, 0.50000000000000000,
4027 	  10.000000000000000, 0.40000000000000013, 0.0 },
4028   { 1.0269107343740711, 1.0000000000000000, 0.50000000000000000,
4029 	  10.000000000000000, 0.50000000000000000, 0.0 },
4030   { 1.0328232917216298, 1.0000000000000000, 0.50000000000000000,
4031 	  10.000000000000000, 0.60000000000000009, 0.0 },
4032   { 1.0389481230247195, 1.0000000000000000, 0.50000000000000000,
4033 	  10.000000000000000, 0.70000000000000018, 0.0 },
4034   { 1.0453057164134614, 1.0000000000000000, 0.50000000000000000,
4035 	  10.000000000000000, 0.80000000000000004, 0.0 },
4036   { 1.0519207114461246, 1.0000000000000000, 0.50000000000000000,
4037 	  10.000000000000000, 0.90000000000000013, 0.0 },
4038 };
4039 const double toler080 = 2.5000000000000020e-13;
4040 
4041 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
4042 // max(|f - f_GSL|): 3.5527136788005009e-15 at index 18
4043 // max(|f - f_GSL| / |f_GSL|): 1.3886315518367350e-15
4044 // mean(f - f_GSL): 2.6879083754082737e-16
4045 // variance(f - f_GSL): 6.3240381271479359e-31
4046 // stddev(f - f_GSL): 7.9523821130199324e-16
4047 const testcase_hyperg<double>
4048 data081[19] =
4049 {
4050   { 0.71317098463599415, 1.0000000000000000, 1.0000000000000000,
4051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4052   { 0.73473333112764883, 1.0000000000000000, 1.0000000000000000,
4053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4054   { 0.75804035866024344, 1.0000000000000000, 1.0000000000000000,
4055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4056   { 0.78333938207622589, 1.0000000000000000, 1.0000000000000000,
4057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4058   { 0.81093021621632866, 1.0000000000000000, 1.0000000000000000,
4059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4060   { 0.84118059155303215, 1.0000000000000000, 1.0000000000000000,
4061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4062   { 0.87454754822497005, 1.0000000000000000, 1.0000000000000000,
4063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4064   { 0.91160778396977304, 1.0000000000000000, 1.0000000000000000,
4065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4066   { 0.95310179804324857, 1.0000000000000000, 1.0000000000000000,
4067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4068   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4070   { 1.0536051565782629, 1.0000000000000000, 1.0000000000000000,
4071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4072   { 1.1157177565710485, 1.0000000000000000, 1.0000000000000000,
4073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4074   { 1.1889164797957747, 1.0000000000000000, 1.0000000000000000,
4075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4076   { 1.2770640594149769, 1.0000000000000000, 1.0000000000000000,
4077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4078   { 1.3862943611198899, 1.0000000000000000, 1.0000000000000000,
4079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4080   { 1.5271512197902593, 1.0000000000000000, 1.0000000000000000,
4081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4082   { 1.7199611490370503, 1.0000000000000000, 1.0000000000000000,
4083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4084   { 2.0117973905426232, 1.0000000000000000, 1.0000000000000000,
4085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4086   { 2.5584278811044925, 1.0000000000000000, 1.0000000000000000,
4087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4088 };
4089 const double toler081 = 2.5000000000000020e-13;
4090 
4091 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
4092 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
4093 // max(|f - f_GSL| / |f_GSL|): 3.1924682001889760e-16
4094 // mean(f - f_GSL): 6.4276069846719592e-17
4095 // variance(f - f_GSL): 8.4595753242740185e-33
4096 // stddev(f - f_GSL): 9.1975949705746545e-17
4097 const testcase_hyperg<double>
4098 data082[19] =
4099 {
4100   { 0.83165649828125487, 1.0000000000000000, 1.0000000000000000,
4101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4102   { 0.84626246650116621, 1.0000000000000000, 1.0000000000000000,
4103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4104   { 0.86165287670267476, 1.0000000000000000, 1.0000000000000000,
4105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4106   { 0.87790681762615264, 1.0000000000000000, 1.0000000000000000,
4107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4108   { 0.89511583784087634, 1.0000000000000000, 1.0000000000000000,
4109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4110   { 0.91338673957393823, 1.0000000000000000, 1.0000000000000000,
4111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4112   { 0.93284521667332010, 1.0000000000000000, 1.0000000000000000,
4113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4114   { 0.95364066873549813, 1.0000000000000000, 1.0000000000000000,
4115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4116   { 0.97595268969924187, 1.0000000000000000, 1.0000000000000000,
4117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4118   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4120   { 1.0260530485179122, 1.0000000000000000, 1.0000000000000000,
4121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4122   { 1.0544523154103413, 1.0000000000000000, 1.0000000000000000,
4123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4124   { 1.0856358366643180, 1.0000000000000000, 1.0000000000000000,
4125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4126   { 1.1201824010510930, 1.0000000000000000, 1.0000000000000000,
4127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4128   { 1.1588830833596719, 1.0000000000000000, 1.0000000000000000,
4129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4130   { 1.2028682930536780, 1.0000000000000000, 1.0000000000000000,
4131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4132   { 1.2538561433469468, 1.0000000000000000, 1.0000000000000000,
4133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4134   { 1.3147120107267418, 1.0000000000000000, 1.0000000000000000,
4135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4136   { 1.3910528844853491, 1.0000000000000000, 1.0000000000000000,
4137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4138 };
4139 const double toler082 = 2.5000000000000020e-13;
4140 
4141 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
4142 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
4143 // max(|f - f_GSL| / |f_GSL|): 4.5856134910670077e-16
4144 // mean(f - f_GSL): 5.2589511692770570e-17
4145 // variance(f - f_GSL): 8.9881736403943358e-33
4146 // stddev(f - f_GSL): 9.4805978927461832e-17
4147 const testcase_hyperg<double>
4148 data083[19] =
4149 {
4150   { 0.87917686994924560, 1.0000000000000000, 1.0000000000000000,
4151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4152   { 0.89033956110358403, 1.0000000000000000, 1.0000000000000000,
4153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4154   { 0.90196195126098355, 1.0000000000000000, 1.0000000000000000,
4155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4156   { 0.91408080149514681, 1.0000000000000000, 1.0000000000000000,
4157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4158   { 0.92673756761314952, 1.0000000000000000, 1.0000000000000000,
4159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4160   { 0.93997926630123430, 1.0000000000000000, 1.0000000000000000,
4161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4162   { 0.95385955885019325, 1.0000000000000000, 1.0000000000000000,
4163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4164   { 0.96844012412988900, 1.0000000000000000, 1.0000000000000000,
4165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4166   { 0.98379242268046208, 1.0000000000000000, 1.0000000000000000,
4167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4168   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4170   { 1.0171615499181177, 1.0000000000000000, 1.0000000000000000,
4171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4172   { 1.0353950776091039, 1.0000000000000000, 1.0000000000000000,
4173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4174   { 1.0548437030651112, 1.0000000000000000, 1.0000000000000000,
4175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4176   { 1.0756840039415978, 1.0000000000000000, 1.0000000000000000,
4177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4178   { 1.0981384722661196, 1.0000000000000000, 1.0000000000000000,
4179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4180   { 1.1224950318916129, 1.0000000000000000, 1.0000000000000000,
4181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4182   { 1.1491396357184527, 1.0000000000000000, 1.0000000000000000,
4183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4184   { 1.1786158344507012, 1.0000000000000000, 1.0000000000000000,
4185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4186   { 1.2117500593515478, 1.0000000000000000, 1.0000000000000000,
4187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4188 };
4189 const double toler083 = 2.5000000000000020e-13;
4190 
4191 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
4192 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
4193 // max(|f - f_GSL| / |f_GSL|): 1.9755522134245812e-16
4194 // mean(f - f_GSL): 1.7529837230923523e-17
4195 // variance(f - f_GSL): 1.8020397140465364e-35
4196 // stddev(f - f_GSL): 4.2450438325729174e-18
4197 const testcase_hyperg<double>
4198 data084[19] =
4199 {
4200   { 0.90538259348578420, 1.0000000000000000, 1.0000000000000000,
4201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4202   { 0.91444830598832061, 1.0000000000000000, 1.0000000000000000,
4203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4204   { 0.92381915945973991, 1.0000000000000000, 1.0000000000000000,
4205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4206   { 0.93351553488501793, 1.0000000000000000, 1.0000000000000000,
4207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4208   { 0.94356001859234861, 1.0000000000000000, 1.0000000000000000,
4209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4210   { 0.95397775039949628, 1.0000000000000000, 1.0000000000000000,
4211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4212   { 0.96479684710618008, 1.0000000000000000, 1.0000000000000000,
4213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4214   { 0.97604892281308531, 1.0000000000000000, 1.0000000000000000,
4215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4216   { 0.98776973540356938, 1.0000000000000000, 1.0000000000000000,
4217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4218   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4220   { 1.0127864273812119, 1.0000000000000000, 1.0000000000000000,
4221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4222   { 1.0261830717772533, 1.0000000000000000, 1.0000000000000000,
4223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4224   { 1.0402531144740719, 1.0000000000000000, 1.0000000000000000,
4225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4226   { 1.0550712790827002, 1.0000000000000000, 1.0000000000000000,
4227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4228   { 1.0707271945059007, 1.0000000000000000, 1.0000000000000000,
4229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4230   { 1.0873302420658923, 1.0000000000000000, 1.0000000000000000,
4231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4232   { 1.1050168587085545, 1.0000000000000000, 1.0000000000000000,
4233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4234   { 1.1239622188477687, 1.0000000000000000, 1.0000000000000000,
4235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4236   { 1.1444006183097781, 1.0000000000000000, 1.0000000000000000,
4237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4238 };
4239 const double toler084 = 2.5000000000000020e-13;
4240 
4241 // Test data for a=1.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
4242 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 18
4243 // max(|f - f_GSL| / |f_GSL|): 2.0014207127505480e-16
4244 // mean(f - f_GSL): 0.0000000000000000
4245 // variance(f - f_GSL): 2.8912726078702206e-33
4246 // stddev(f - f_GSL): 5.3770555212590287e-17
4247 const testcase_hyperg<double>
4248 data085[19] =
4249 {
4250   { 0.92211295632330392, 1.0000000000000000, 1.0000000000000000,
4251 	  10.000000000000000, -0.90000000000000002, 0.0 },
4252   { 0.92975727737040625, 1.0000000000000000, 1.0000000000000000,
4253 	  10.000000000000000, -0.80000000000000004, 0.0 },
4254   { 0.93761992348333489, 1.0000000000000000, 1.0000000000000000,
4255 	  10.000000000000000, -0.69999999999999996, 0.0 },
4256   { 0.94571346180587790, 1.0000000000000000, 1.0000000000000000,
4257 	  10.000000000000000, -0.59999999999999998, 0.0 },
4258   { 0.95405164371146900, 1.0000000000000000, 1.0000000000000000,
4259 	  10.000000000000000, -0.50000000000000000, 0.0 },
4260   { 0.96264956879205987, 1.0000000000000000, 1.0000000000000000,
4261 	  10.000000000000000, -0.39999999999999991, 0.0 },
4262   { 0.97152388013493107, 1.0000000000000000, 1.0000000000000000,
4263 	  10.000000000000000, -0.29999999999999993, 0.0 },
4264   { 0.98069299877709348, 1.0000000000000000, 1.0000000000000000,
4265 	  10.000000000000000, -0.19999999999999996, 0.0 },
4266   { 0.99017740778385854, 1.0000000000000000, 1.0000000000000000,
4267 	  10.000000000000000, -0.099999999999999978, 0.0 },
4268   { 1.0000000000000000, 1.0000000000000000, 1.0000000000000000,
4269 	  10.000000000000000, 0.0000000000000000, 0.0 },
4270   { 1.0101865087004833, 1.0000000000000000, 1.0000000000000000,
4271 	  10.000000000000000, 0.10000000000000009, 0.0 },
4272   { 1.0207660479892111, 1.0000000000000000, 1.0000000000000000,
4273 	  10.000000000000000, 0.20000000000000018, 0.0 },
4274   { 1.0317718013185031, 1.0000000000000000, 1.0000000000000000,
4275 	  10.000000000000000, 0.30000000000000004, 0.0 },
4276   { 1.0432419144892398, 1.0000000000000000, 1.0000000000000000,
4277 	  10.000000000000000, 0.40000000000000013, 0.0 },
4278   { 1.0552206786504446, 1.0000000000000000, 1.0000000000000000,
4279 	  10.000000000000000, 0.50000000000000000, 0.0 },
4280   { 1.0677601383233675, 1.0000000000000000, 1.0000000000000000,
4281 	  10.000000000000000, 0.60000000000000009, 0.0 },
4282   { 1.0809223485579968, 1.0000000000000000, 1.0000000000000000,
4283 	  10.000000000000000, 0.70000000000000018, 0.0 },
4284   { 1.0947826783002668, 1.0000000000000000, 1.0000000000000000,
4285 	  10.000000000000000, 0.80000000000000004, 0.0 },
4286   { 1.1094349304493603, 1.0000000000000000, 1.0000000000000000,
4287 	  10.000000000000000, 0.90000000000000013, 0.0 },
4288 };
4289 const double toler085 = 2.5000000000000020e-13;
4290 
4291 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
4292 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
4293 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
4294 // mean(f - f_GSL): 7.5962628000668607e-17
4295 // variance(f - f_GSL): 1.6955391669463862e-31
4296 // stddev(f - f_GSL): 4.1176925175957300e-16
4297 const testcase_hyperg<double>
4298 data086[19] =
4299 {
4300   { 0.52631578947368429, 1.0000000000000000, 2.0000000000000000,
4301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4302   { 0.55555555555555558, 1.0000000000000000, 2.0000000000000000,
4303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4304   { 0.58823529411764708, 1.0000000000000000, 2.0000000000000000,
4305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4306   { 0.62500000000000000, 1.0000000000000000, 2.0000000000000000,
4307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4308   { 0.66666666666666663, 1.0000000000000000, 2.0000000000000000,
4309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4310   { 0.71428571428571430, 1.0000000000000000, 2.0000000000000000,
4311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4312   { 0.76923076923076938, 1.0000000000000000, 2.0000000000000000,
4313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4314   { 0.83333333333333337, 1.0000000000000000, 2.0000000000000000,
4315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4316   { 0.90909090909090906, 1.0000000000000000, 2.0000000000000000,
4317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4318   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4320   { 1.1111111111111112, 1.0000000000000000, 2.0000000000000000,
4321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4322   { 1.2500000000000002, 1.0000000000000000, 2.0000000000000000,
4323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4324   { 1.4285714285714286, 1.0000000000000000, 2.0000000000000000,
4325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4326   { 1.6666666666666670, 1.0000000000000000, 2.0000000000000000,
4327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4328   { 2.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4330   { 2.5000000000000009, 1.0000000000000000, 2.0000000000000000,
4331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4332   { 3.3333333333333348, 1.0000000000000000, 2.0000000000000000,
4333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4334   { 5.0000000000000009, 1.0000000000000000, 2.0000000000000000,
4335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4336   { 10.000000000000011, 1.0000000000000000, 2.0000000000000000,
4337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4338 };
4339 const double toler086 = 2.5000000000000020e-13;
4340 
4341 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
4342 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
4343 // max(|f - f_GSL| / |f_GSL|): 1.2228571846595245e-15
4344 // mean(f - f_GSL): 1.9282820954015878e-16
4345 // variance(f - f_GSL): 3.5826351554959189e-31
4346 // stddev(f - f_GSL): 5.9855118039278136e-16
4347 const testcase_hyperg<double>
4348 data087[19] =
4349 {
4350   { 0.70351947549341554, 1.0000000000000000, 2.0000000000000000,
4351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4352   { 0.72637503722092756, 1.0000000000000000, 2.0000000000000000,
4353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4354   { 0.75099661564391240, 1.0000000000000000, 2.0000000000000000,
4355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4356   { 0.77761647796730871, 1.0000000000000000, 2.0000000000000000,
4357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4358   { 0.80651221621216473, 1.0000000000000000, 2.0000000000000000,
4359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4360   { 0.83801894346580275, 1.0000000000000000, 2.0000000000000000,
4361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4362   { 0.87254582050258456, 1.0000000000000000, 2.0000000000000000,
4363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4364   { 0.91059888544083678, 1.0000000000000000, 2.0000000000000000,
4365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4366   { 0.95281329145592386, 1.0000000000000000, 2.0000000000000000,
4367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4368   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4370   { 1.0532154477379738, 1.0000000000000000, 2.0000000000000000,
4371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4372   { 1.1138692114741471, 1.0000000000000000, 2.0000000000000000,
4373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4374   { 1.1838976095305187, 1.0000000000000000, 2.0000000000000000,
4375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4376   { 1.2660586631630240, 1.0000000000000000, 2.0000000000000000,
4377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4378   { 1.3644676665613118, 1.0000000000000000, 2.0000000000000000,
4379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4380   { 1.4856585347316102, 1.0000000000000000, 2.0000000000000000,
4381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4382   { 1.6409590443536872, 1.0000000000000000, 2.0000000000000000,
4383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4384   { 1.8528798927325769, 1.0000000000000000, 2.0000000000000000,
4385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4386   { 2.1789423102929653, 1.0000000000000000, 2.0000000000000000,
4387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4388 };
4389 const double toler087 = 2.5000000000000020e-13;
4390 
4391 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
4392 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
4393 // max(|f - f_GSL| / |f_GSL|): 5.8050967180790176e-16
4394 // mean(f - f_GSL): 5.8432790769745078e-17
4395 // variance(f - f_GSL): 4.0373698660038179e-32
4396 // stddev(f - f_GSL): 2.0093207474178476e-16
4397 const testcase_hyperg<double>
4398 data088[19] =
4399 {
4400   { 0.78068027379106275, 1.0000000000000000, 2.0000000000000000,
4401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4402   { 0.79924541976981278, 1.0000000000000000, 2.0000000000000000,
4403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4404   { 0.81891305585650975, 1.0000000000000000, 2.0000000000000000,
4405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4406   { 0.83979799626213247, 1.0000000000000000, 2.0000000000000000,
4407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4408   { 0.86203315303160111, 1.0000000000000000, 2.0000000000000000,
4409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4410   { 0.88577352485361693, 1.0000000000000000, 2.0000000000000000,
4411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4412   { 0.91120135738402230, 1.0000000000000000, 2.0000000000000000,
4413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4414   { 0.93853291956703588, 1.0000000000000000, 2.0000000000000000,
4415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4416   { 0.96802755388922956, 1.0000000000000000, 2.0000000000000000,
4417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4418   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4420   { 1.0348375559194773, 1.0000000000000000, 2.0000000000000000,
4421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4422   { 1.0730246119544820, 1.0000000000000000, 2.0000000000000000,
4423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4424   { 1.1151788396279341, 1.0000000000000000, 2.0000000000000000,
4425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4426   { 1.1621066403893472, 1.0000000000000000, 2.0000000000000000,
4427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4428   { 1.2148922218710421, 1.0000000000000000, 2.0000000000000000,
4429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4430   { 1.2750496810838674, 1.0000000000000000, 2.0000000000000000,
4431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4432   { 1.3448048570872917, 1.0000000000000000, 2.0000000000000000,
4433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4434   { 1.4276833109859521, 1.0000000000000000, 2.0000000000000000,
4435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4436   { 1.5299976259379793, 1.0000000000000000, 2.0000000000000000,
4437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4438 };
4439 const double toler088 = 2.5000000000000020e-13;
4440 
4441 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
4442 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
4443 // max(|f - f_GSL| / |f_GSL|): 3.4946054932156233e-16
4444 // mean(f - f_GSL): 3.5059674461847047e-17
4445 // variance(f - f_GSL): 9.8111051098089209e-33
4446 // stddev(f - f_GSL): 9.9051022760034738e-17
4447 const testcase_hyperg<double>
4448 data089[19] =
4449 {
4450   { 0.82510759951857615, 1.0000000000000000, 2.0000000000000000,
4451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4452   { 0.84072786892782070, 1.0000000000000000, 2.0000000000000000,
4453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4454   { 0.85710884896562356, 1.0000000000000000, 2.0000000000000000,
4455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4456   { 0.87431674418118244, 1.0000000000000000, 2.0000000000000000,
4457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4458   { 0.89242659229726995, 1.0000000000000000, 2.0000000000000000,
4459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4460   { 0.91152392685930339, 1.0000000000000000, 2.0000000000000000,
4461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4462   { 0.93170685950993570, 1.0000000000000000, 2.0000000000000000,
4463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4464   { 0.95308871926790661, 1.0000000000000000, 2.0000000000000000,
4465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4466   { 0.97580144325325802, 1.0000000000000000, 2.0000000000000000,
4467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4468   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4470   { 1.0258682619030324, 1.0000000000000000, 2.0000000000000000,
4471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4472   { 1.0536269616706000, 1.0000000000000000, 2.0000000000000000,
4473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4474   { 1.0835447330793833, 1.0000000000000000, 2.0000000000000000,
4475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4476   { 1.1159538758396654, 1.0000000000000000, 2.0000000000000000,
4477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4478   { 1.1512736659291880, 1.0000000000000000, 2.0000000000000000,
4479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4480   { 1.1900463690116090, 1.0000000000000000, 2.0000000000000000,
4481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4482   { 1.2329961591622411, 1.0000000000000000, 2.0000000000000000,
4483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4484   { 1.2811334345669059, 1.0000000000000000, 2.0000000000000000,
4485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4486   { 1.3359629014132053, 1.0000000000000000, 2.0000000000000000,
4487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4488 };
4489 const double toler089 = 2.5000000000000020e-13;
4490 
4491 // Test data for a=1.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
4492 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
4493 // max(|f - f_GSL| / |f_GSL|): 4.6160879869309861e-16
4494 // mean(f - f_GSL): -2.9216395384872539e-17
4495 // variance(f - f_GSL): 3.7021904791911625e-33
4496 // stddev(f - f_GSL): 6.0845628266878486e-17
4497 const testcase_hyperg<double>
4498 data090[19] =
4499 {
4500   { 0.85426123653345876, 1.0000000000000000, 2.0000000000000000,
4501 	  10.000000000000000, -0.90000000000000002, 0.0 },
4502   { 0.86774543390930414, 1.0000000000000000, 2.0000000000000000,
4503 	  10.000000000000000, -0.80000000000000004, 0.0 },
4504   { 0.88178859537254239, 1.0000000000000000, 2.0000000000000000,
4505 	  10.000000000000000, -0.69999999999999996, 0.0 },
4506   { 0.89643269097060951, 1.0000000000000000, 2.0000000000000000,
4507 	  10.000000000000000, -0.59999999999999998, 0.0 },
4508   { 0.91172456687216819, 1.0000000000000000, 2.0000000000000000,
4509 	  10.000000000000000, -0.50000000000000000, 0.0 },
4510   { 0.92771674975966134, 1.0000000000000000, 2.0000000000000000,
4511 	  10.000000000000000, -0.39999999999999991, 0.0 },
4512   { 0.94446842993888669, 1.0000000000000000, 2.0000000000000000,
4513 	  10.000000000000000, -0.29999999999999993, 0.0 },
4514   { 0.96204667481937678, 1.0000000000000000, 2.0000000000000000,
4515 	  10.000000000000000, -0.19999999999999996, 0.0 },
4516   { 0.98052794339012128, 1.0000000000000000, 2.0000000000000000,
4517 	  10.000000000000000, -0.099999999999999978, 0.0 },
4518   { 1.0000000000000000, 1.0000000000000000, 2.0000000000000000,
4519 	  10.000000000000000, 0.0000000000000000, 0.0 },
4520   { 1.0205643671068179, 1.0000000000000000, 2.0000000000000000,
4521 	  10.000000000000000, 0.10000000000000009, 0.0 },
4522   { 1.0423395201078882, 1.0000000000000000, 2.0000000000000000,
4523 	  10.000000000000000, 0.20000000000000018, 0.0 },
4524   { 1.0654651277885334, 1.0000000000000000, 2.0000000000000000,
4525 	  10.000000000000000, 0.30000000000000004, 0.0 },
4526   { 1.0901078068101382, 1.0000000000000000, 2.0000000000000000,
4527 	  10.000000000000000, 0.40000000000000013, 0.0 },
4528   { 1.1164691415928940, 1.0000000000000000, 2.0000000000000000,
4529 	  10.000000000000000, 0.50000000000000000, 0.0 },
4530   { 1.1447972335326551, 1.0000000000000000, 2.0000000000000000,
4531 	  10.000000000000000, 0.60000000000000009, 0.0 },
4532   { 1.1754040384534163, 1.0000000000000000, 2.0000000000000000,
4533 	  10.000000000000000, 0.70000000000000018, 0.0 },
4534   { 1.2086928679893112, 1.0000000000000000, 2.0000000000000000,
4535 	  10.000000000000000, 0.80000000000000004, 0.0 },
4536   { 1.2452055640510711, 1.0000000000000000, 2.0000000000000000,
4537 	  10.000000000000000, 0.90000000000000013, 0.0 },
4538 };
4539 const double toler090 = 2.5000000000000020e-13;
4540 
4541 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
4542 // max(|f - f_GSL|): 4.0927261579781771e-12 at index 18
4543 // max(|f - f_GSL| / |f_GSL|): 1.4735287697491136e-15
4544 // mean(f - f_GSL): 2.2385017815981644e-13
4545 // variance(f - f_GSL): 8.7776489381819171e-25
4546 // stddev(f - f_GSL): 9.3689107895111895e-13
4547 const testcase_hyperg<double>
4548 data091[19] =
4549 {
4550   { 0.25646288779245086, 1.0000000000000000, 5.0000000000000000,
4551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4552   { 0.28273129096174376, 1.0000000000000000, 5.0000000000000000,
4553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4554   { 0.31438201170962982, 1.0000000000000000, 5.0000000000000000,
4555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4556   { 0.35308837890625017, 1.0000000000000000, 5.0000000000000000,
4557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4558   { 0.40123456790123452, 1.0000000000000000, 5.0000000000000000,
4559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4560   { 0.46230737192836352, 1.0000000000000000, 5.0000000000000000,
4561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4562   { 0.54156016946185348, 1.0000000000000000, 5.0000000000000000,
4563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4564   { 0.64718364197530875, 1.0000000000000000, 5.0000000000000000,
4565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4566   { 0.79246636158732342, 1.0000000000000000, 5.0000000000000000,
4567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4568   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4570   { 1.3103947568968148, 1.0000000000000000, 5.0000000000000000,
4571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4572   { 1.8017578125000016, 1.0000000000000000, 5.0000000000000000,
4573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4574   { 2.6374427321949185, 1.0000000000000000, 5.0000000000000000,
4575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4576   { 4.1975308641975335, 1.0000000000000000, 5.0000000000000000,
4577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4578   { 7.4999999999999964, 1.0000000000000000, 5.0000000000000000,
4579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4580   { 15.859375000000012, 1.0000000000000000, 5.0000000000000000,
4581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4582   { 43.734567901234662, 1.0000000000000000, 5.0000000000000000,
4583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4584   { 194.99999999999994, 1.0000000000000000, 5.0000000000000000,
4585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4586   { 2777.5000000000095, 1.0000000000000000, 5.0000000000000000,
4587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4588 };
4589 const double toler091 = 2.5000000000000020e-13;
4590 
4591 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
4592 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
4593 // max(|f - f_GSL| / |f_GSL|): 1.3117712044801870e-15
4594 // mean(f - f_GSL): 2.6879083754082736e-15
4595 // variance(f - f_GSL): 9.3567700516642700e-29
4596 // stddev(f - f_GSL): 9.6730398798228218e-15
4597 const testcase_hyperg<double>
4598 data092[19] =
4599 {
4600   { 0.46398891966759009, 1.0000000000000000, 5.0000000000000000,
4601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4602   { 0.49382716049382724, 1.0000000000000000, 5.0000000000000000,
4603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4604   { 0.52768166089965407, 1.0000000000000000, 5.0000000000000000,
4605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4606   { 0.56640625000000000, 1.0000000000000000, 5.0000000000000000,
4607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4608   { 0.61111111111111094, 1.0000000000000000, 5.0000000000000000,
4609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4610   { 0.66326530612244916, 1.0000000000000000, 5.0000000000000000,
4611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4612   { 0.72485207100591709, 1.0000000000000000, 5.0000000000000000,
4613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4614   { 0.79861111111111094, 1.0000000000000000, 5.0000000000000000,
4615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4616   { 0.88842975206611552, 1.0000000000000000, 5.0000000000000000,
4617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4618   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4620   { 1.1419753086419753, 1.0000000000000000, 5.0000000000000000,
4621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4622   { 1.3281250000000000, 1.0000000000000000, 5.0000000000000000,
4623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4624   { 1.5816326530612239, 1.0000000000000000, 5.0000000000000000,
4625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4626   { 1.9444444444444458, 1.0000000000000000, 5.0000000000000000,
4627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4628   { 2.5000000000000000, 1.0000000000000000, 5.0000000000000000,
4629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4630   { 3.4374999999999996, 1.0000000000000000, 5.0000000000000000,
4631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4632   { 5.2777777777777786, 1.0000000000000000, 5.0000000000000000,
4633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4634   { 9.9999999999999947, 1.0000000000000000, 5.0000000000000000,
4635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4636   { 32.499999999999950, 1.0000000000000000, 5.0000000000000000,
4637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4638 };
4639 const double toler092 = 2.5000000000000020e-13;
4640 
4641 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
4642 // max(|f - f_GSL|): 6.2172489379008766e-15 at index 18
4643 // max(|f - f_GSL| / |f_GSL|): 1.2433022037532449e-15
4644 // mean(f - f_GSL): 4.9083544246585873e-16
4645 // variance(f - f_GSL): 1.9229766015225486e-30
4646 // stddev(f - f_GSL): 1.3867143186404864e-15
4647 const testcase_hyperg<double>
4648 data093[19] =
4649 {
4650   { 0.57476744883397490, 1.0000000000000000, 5.0000000000000000,
4651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4652   { 0.60302731682513966, 1.0000000000000000, 5.0000000000000000,
4653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4654   { 0.63425708719096374, 1.0000000000000000, 5.0000000000000000,
4655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4656   { 0.66895764182970430, 1.0000000000000000, 5.0000000000000000,
4657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4658   { 0.70775063063963473, 1.0000000000000000, 5.0000000000000000,
4659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4660   { 0.75141762103495946, 1.0000000000000000, 5.0000000000000000,
4661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4662   { 0.80095569442603320, 1.0000000000000000, 5.0000000000000000,
4663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4664   { 0.85765823887436754, 1.0000000000000000, 5.0000000000000000,
4665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4666   { 0.92323549576335540, 1.0000000000000000, 5.0000000000000000,
4667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4668   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4670   { 1.0911622464839472, 1.0000000000000000, 5.0000000000000000,
4671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4672   { 1.2013226178607672, 1.0000000000000000, 5.0000000000000000,
4673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4674   { 1.3373332072682687, 1.0000000000000000, 5.0000000000000000,
4675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4676   { 1.5099074378209718, 1.0000000000000000, 5.0000000000000000,
4677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4678   { 1.7368822229245819, 1.0000000000000000, 5.0000000000000000,
4679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4680   { 2.0505871832661429, 1.0000000000000000, 5.0000000000000000,
4681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4682   { 2.5172389775867976, 1.0000000000000000, 5.0000000000000000,
4683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4684   { 3.3015631983556144, 1.0000000000000000, 5.0000000000000000,
4685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4686   { 5.0005935155044563, 1.0000000000000000, 5.0000000000000000,
4687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4688 };
4689 const double toler093 = 2.5000000000000020e-13;
4690 
4691 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
4692 // max(|f - f_GSL|): 3.1086244689504383e-15 at index 18
4693 // max(|f - f_GSL| / |f_GSL|): 1.1989697058841885e-15
4694 // mean(f - f_GSL): 2.4541772123292936e-16
4695 // variance(f - f_GSL): 4.8074415038063715e-31
4696 // stddev(f - f_GSL): 6.9335715932024320e-16
4697 const testcase_hyperg<double>
4698 data094[19] =
4699 {
4700   { 0.64582752605387983, 1.0000000000000000, 5.0000000000000000,
4701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4702   { 0.67184161997264191, 1.0000000000000000, 5.0000000000000000,
4703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4704   { 0.70012779922368040, 1.0000000000000000, 5.0000000000000000,
4705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4706   { 0.73100784656910278, 1.0000000000000000, 5.0000000000000000,
4707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4708   { 0.76486919089091066, 1.0000000000000000, 5.0000000000000000,
4709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4710   { 0.80218301124334590, 1.0000000000000000, 5.0000000000000000,
4711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4712   { 0.84352883533234391, 1.0000000000000000, 5.0000000000000000,
4713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4714   { 0.88962858902212572, 1.0000000000000000, 5.0000000000000000,
4715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4716   { 0.94139473468584123, 1.0000000000000000, 5.0000000000000000,
4717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4718   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4720   { 1.0669812691939897, 1.0000000000000000, 5.0000000000000000,
4721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4722   { 1.1443996012177726, 1.0000000000000000, 5.0000000000000000,
4723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4724   { 1.2350966976721314, 1.0000000000000000, 5.0000000000000000,
4725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4726   { 1.3431264370409088, 1.0000000000000000, 5.0000000000000000,
4727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4728   { 1.4745266814162399, 1.0000000000000000, 5.0000000000000000,
4729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4730   { 1.6388137104840066, 1.0000000000000000, 5.0000000000000000,
4731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4732   { 1.8522074849776522, 1.0000000000000000, 5.0000000000000000,
4733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4734   { 2.1458016978417458, 1.0000000000000000, 5.0000000000000000,
4735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4736   { 2.5927464669826348, 1.0000000000000000, 5.0000000000000000,
4737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4738 };
4739 const double toler094 = 2.5000000000000020e-13;
4740 
4741 // Test data for a=1.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
4742 // max(|f - f_GSL|): 1.3322676295501878e-15 at index 18
4743 // max(|f - f_GSL| / |f_GSL|): 6.8275390424723874e-16
4744 // mean(f - f_GSL): 1.0517902338554114e-16
4745 // variance(f - f_GSL): 8.8299945988280290e-32
4746 // stddev(f - f_GSL): 2.9715306828010425e-16
4747 const testcase_hyperg<double>
4748 data095[19] =
4749 {
4750   { 0.69583236336670584, 1.0000000000000000, 5.0000000000000000,
4751 	  10.000000000000000, -0.90000000000000002, 0.0 },
4752   { 0.71968920666899716, 1.0000000000000000, 5.0000000000000000,
4753 	  10.000000000000000, -0.80000000000000004, 0.0 },
4754   { 0.74533885416044232, 1.0000000000000000, 5.0000000000000000,
4755 	  10.000000000000000, -0.69999999999999996, 0.0 },
4756   { 0.77300145361503070, 1.0000000000000000, 5.0000000000000000,
4757 	  10.000000000000000, -0.59999999999999998, 0.0 },
4758   { 0.80293630810919447, 1.0000000000000000, 5.0000000000000000,
4759 	  10.000000000000000, -0.50000000000000000, 0.0 },
4760   { 0.83545132638592057, 1.0000000000000000, 5.0000000000000000,
4761 	  10.000000000000000, -0.39999999999999991, 0.0 },
4762   { 0.87091544744412497, 1.0000000000000000, 5.0000000000000000,
4763 	  10.000000000000000, -0.29999999999999993, 0.0 },
4764   { 0.90977522877919847, 1.0000000000000000, 5.0000000000000000,
4765 	  10.000000000000000, -0.19999999999999996, 0.0 },
4766   { 0.95257738192069130, 1.0000000000000000, 5.0000000000000000,
4767 	  10.000000000000000, -0.099999999999999978, 0.0 },
4768   { 1.0000000000000000, 1.0000000000000000, 5.0000000000000000,
4769 	  10.000000000000000, 0.0000000000000000, 0.0 },
4770   { 1.0528968282789379, 1.0000000000000000, 5.0000000000000000,
4771 	  10.000000000000000, 0.10000000000000009, 0.0 },
4772   { 1.1123617169062123, 1.0000000000000000, 5.0000000000000000,
4773 	  10.000000000000000, 0.20000000000000018, 0.0 },
4774   { 1.1798254572896132, 1.0000000000000000, 5.0000000000000000,
4775 	  10.000000000000000, 0.30000000000000004, 0.0 },
4776   { 1.2572069000522701, 1.0000000000000000, 5.0000000000000000,
4777 	  10.000000000000000, 0.40000000000000013, 0.0 },
4778   { 1.3471600884974377, 1.0000000000000000, 5.0000000000000000,
4779 	  10.000000000000000, 0.50000000000000000, 0.0 },
4780   { 1.4535032279573519, 1.0000000000000000, 5.0000000000000000,
4781 	  10.000000000000000, 0.60000000000000009, 0.0 },
4782   { 1.5820245752814950, 1.0000000000000000, 5.0000000000000000,
4783 	  10.000000000000000, 0.70000000000000018, 0.0 },
4784   { 1.7421756366906538, 1.0000000000000000, 5.0000000000000000,
4785 	  10.000000000000000, 0.80000000000000004, 0.0 },
4786   { 1.9513145531098235, 1.0000000000000000, 5.0000000000000000,
4787 	  10.000000000000000, 0.90000000000000013, 0.0 },
4788 };
4789 const double toler095 = 2.5000000000000020e-13;
4790 
4791 // Test data for a=1.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
4792 // max(|f - f_GSL|): 2.0861625671386719e-07 at index 18
4793 // max(|f - f_GSL| / |f_GSL|): 1.6897916810721003e-15
4794 // mean(f - f_GSL): 1.0989192059253727e-08
4795 // variance(f - f_GSL): 2.2903477685061008e-15
4796 // stddev(f - f_GSL): 4.7857577963224392e-08
4797 const testcase_hyperg<double>
4798 data096[19] =
4799 {
4800   { 0.12307420104127866, 1.0000000000000000, 10.000000000000000,
4801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
4802   { 0.13818870041457434, 1.0000000000000000, 10.000000000000000,
4803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
4804   { 0.15739165631811705, 1.0000000000000000, 10.000000000000000,
4805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
4806   { 0.18249038606882081, 1.0000000000000000, 10.000000000000000,
4807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
4808   { 0.21644171225027795, 1.0000000000000000, 10.000000000000000,
4809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
4810   { 0.26433326159804149, 1.0000000000000000, 10.000000000000000,
4811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
4812   { 0.33544459430654527, 1.0000000000000000, 10.000000000000000,
4813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
4814   { 0.44788516696232511, 1.0000000000000000, 10.000000000000000,
4815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
4816   { 0.63989153514168373, 1.0000000000000000, 10.000000000000000,
4817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
4818   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
4820   { 1.7568608796813312, 1.0000000000000000, 10.000000000000000,
4821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
4822   { 3.5836558871799102, 1.0000000000000000, 10.000000000000000,
4823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
4824   { 8.8077526749963226, 1.0000000000000000, 10.000000000000000,
4825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
4826   { 27.285841702089265, 1.0000000000000000, 10.000000000000000,
4827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
4828   { 113.55555555555557, 1.0000000000000000, 10.000000000000000,
4829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
4830   { 706.24023437500091, 1.0000000000000000, 10.000000000000000,
4831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
4832   { 8064.1687976652511, 1.0000000000000000, 10.000000000000000,
4833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
4834   { 271267.22222222196, 1.0000000000000000, 10.000000000000000,
4835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
4836   { 123456790.00000113, 1.0000000000000000, 10.000000000000000,
4837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
4838 };
4839 const double toler096 = 2.5000000000000020e-13;
4840 
4841 // Test data for a=1.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
4842 // max(|f - f_GSL|): 2.6193447411060333e-10 at index 18
4843 // max(|f - f_GSL| / |f_GSL|): 1.6039867544159698e-15
4844 // mean(f - f_GSL): 1.3861192895235850e-11
4845 // variance(f - f_GSL): 3.6088478524883243e-21
4846 // stddev(f - f_GSL): 6.0073686856129647e-11
4847 const testcase_hyperg<double>
4848 data097[19] =
4849 {
4850   { 0.28363728383055781, 1.0000000000000000, 10.000000000000000,
4851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
4852   { 0.30933003169808387, 1.0000000000000000, 10.000000000000000,
4853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
4854   { 0.33998437757128797, 1.0000000000000000, 10.000000000000000,
4855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
4856   { 0.37713553224291113, 1.0000000000000000, 10.000000000000000,
4857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
4858   { 0.42299736538419669, 1.0000000000000000, 10.000000000000000,
4859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
4860   { 0.48086597727600089, 1.0000000000000000, 10.000000000000000,
4861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
4862   { 0.55583495759293033, 1.0000000000000000, 10.000000000000000,
4863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
4864   { 0.65612850114039678, 1.0000000000000000, 10.000000000000000,
4865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
4866   { 0.79573668772968142, 1.0000000000000000, 10.000000000000000,
4867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
4868   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
4870   { 1.3184712058058303, 1.0000000000000000, 10.000000000000000,
4871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
4872   { 1.8576958065941236, 1.0000000000000000, 10.000000000000000,
4873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
4874   { 2.8759509651764228, 1.0000000000000000, 10.000000000000000,
4875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
4876   { 5.1046225531822289, 1.0000000000000000, 10.000000000000000,
4877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
4878   { 11.095238095238095, 1.0000000000000000, 10.000000000000000,
4879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
4880   { 32.797154017857174, 1.0000000000000000, 10.000000000000000,
4881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
4882   { 158.01935680536548, 1.0000000000000000, 10.000000000000000,
4883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
4884   { 1815.9523809523814, 1.0000000000000000, 10.000000000000000,
4885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
4886   { 163302.14285714392, 1.0000000000000000, 10.000000000000000,
4887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
4888 };
4889 const double toler097 = 2.5000000000000020e-13;
4890 
4891 // Test data for a=1.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
4892 // max(|f - f_GSL|): 2.0463630789890885e-12 at index 18
4893 // max(|f - f_GSL| / |f_GSL|): 1.5238873992471854e-15
4894 // mean(f - f_GSL): 1.1029773585697082e-13
4895 // variance(f - f_GSL): 2.1981059026132227e-25
4896 // stddev(f - f_GSL): 4.6883962104468326e-13
4897 const testcase_hyperg<double>
4898 data098[19] =
4899 {
4900   { 0.39006633302741811, 1.0000000000000000, 10.000000000000000,
4901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
4902   { 0.41898885698103278, 1.0000000000000000, 10.000000000000000,
4903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
4904   { 0.45245557983812590, 1.0000000000000000, 10.000000000000000,
4905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
4906   { 0.49160548618861627, 1.0000000000000000, 10.000000000000000,
4907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
4908   { 0.53798419230517991, 1.0000000000000000, 10.000000000000000,
4909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
4910   { 0.59373881442067322, 1.0000000000000000, 10.000000000000000,
4911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
4912   { 0.66193391357076092, 1.0000000000000000, 10.000000000000000,
4913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
4914   { 0.74708402736952118, 1.0000000000000000, 10.000000000000000,
4915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
4916   { 0.85609281019430605, 1.0000000000000000, 10.000000000000000,
4917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
4918   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
4920   { 1.1974451135148187, 1.0000000000000000, 10.000000000000000,
4921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
4922   { 1.4820886036706358, 1.0000000000000000, 10.000000000000000,
4923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
4924   { 1.9201183180477521, 1.0000000000000000, 10.000000000000000,
4925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
4926   { 2.6569338297733367, 1.0000000000000000, 10.000000000000000,
4927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
4928   { 4.0634920634920650, 1.0000000000000000, 10.000000000000000,
4929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
4930   { 7.3102678571428568, 1.0000000000000000, 10.000000000000000,
4931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
4932   { 17.512574302697782, 1.0000000000000000, 10.000000000000000,
4933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
4934   { 74.206349206349131, 1.0000000000000000, 10.000000000000000,
4935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
4936   { 1342.8571428571502, 1.0000000000000000, 10.000000000000000,
4937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
4938 };
4939 const double toler098 = 2.5000000000000020e-13;
4940 
4941 // Test data for a=1.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
4942 // max(|f - f_GSL|): 7.8159700933611020e-14 at index 18
4943 // max(|f - f_GSL| / |f_GSL|): 1.4210854715201975e-15
4944 // mean(f - f_GSL): 4.6629367034256575e-15
4945 // variance(f - f_GSL): 3.1677071819086927e-28
4946 // stddev(f - f_GSL): 1.7798053775367387e-14
4947 const testcase_hyperg<double>
4948 data099[19] =
4949 {
4950   { 0.46726928123633210, 1.0000000000000000, 10.000000000000000,
4951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
4952   { 0.49687547629934464, 1.0000000000000000, 10.000000000000000,
4953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
4954   { 0.53045208856322223, 1.0000000000000000, 10.000000000000000,
4955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
4956   { 0.56884765624999989, 1.0000000000000000, 10.000000000000000,
4957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
4958   { 0.61316872427983504, 1.0000000000000000, 10.000000000000000,
4959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
4960   { 0.66488500161969544, 1.0000000000000000, 10.000000000000000,
4961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
4962   { 0.72598998634501621, 1.0000000000000000, 10.000000000000000,
4963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
4964   { 0.79925411522633760, 1.0000000000000000, 10.000000000000000,
4965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
4966   { 0.88863845062192182, 1.0000000000000000, 10.000000000000000,
4967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
4968   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
4969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
4970   { 1.1423563481176653, 1.0000000000000000, 10.000000000000000,
4971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
4972   { 1.3302951388888891, 1.0000000000000000, 10.000000000000000,
4973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
4974   { 1.5889212827988335, 1.0000000000000000, 10.000000000000000,
4975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
4976   { 1.9650205761316886, 1.0000000000000000, 10.000000000000000,
4977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
4978   { 2.5555555555555549, 1.0000000000000000, 10.000000000000000,
4979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
4980   { 3.5937500000000013, 1.0000000000000000, 10.000000000000000,
4981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
4982   { 5.7818930041152274, 1.0000000000000000, 10.000000000000000,
4983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
4984   { 12.222222222222220, 1.0000000000000000, 10.000000000000000,
4985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
4986   { 55.000000000000114, 1.0000000000000000, 10.000000000000000,
4987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
4988 };
4989 const double toler099 = 2.5000000000000020e-13;
4990 
4991 // Test data for a=1.0000000000000000, b=10.000000000000000, c=10.000000000000000.
4992 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
4993 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
4994 // mean(f - f_GSL): 7.5962628000668607e-17
4995 // variance(f - f_GSL): 1.6955391669463862e-31
4996 // stddev(f - f_GSL): 4.1176925175957300e-16
4997 const testcase_hyperg<double>
4998 data100[19] =
4999 {
5000   { 0.52631578947368429, 1.0000000000000000, 10.000000000000000,
5001 	  10.000000000000000, -0.90000000000000002, 0.0 },
5002   { 0.55555555555555558, 1.0000000000000000, 10.000000000000000,
5003 	  10.000000000000000, -0.80000000000000004, 0.0 },
5004   { 0.58823529411764708, 1.0000000000000000, 10.000000000000000,
5005 	  10.000000000000000, -0.69999999999999996, 0.0 },
5006   { 0.62500000000000000, 1.0000000000000000, 10.000000000000000,
5007 	  10.000000000000000, -0.59999999999999998, 0.0 },
5008   { 0.66666666666666663, 1.0000000000000000, 10.000000000000000,
5009 	  10.000000000000000, -0.50000000000000000, 0.0 },
5010   { 0.71428571428571430, 1.0000000000000000, 10.000000000000000,
5011 	  10.000000000000000, -0.39999999999999991, 0.0 },
5012   { 0.76923076923076938, 1.0000000000000000, 10.000000000000000,
5013 	  10.000000000000000, -0.29999999999999993, 0.0 },
5014   { 0.83333333333333337, 1.0000000000000000, 10.000000000000000,
5015 	  10.000000000000000, -0.19999999999999996, 0.0 },
5016   { 0.90909090909090906, 1.0000000000000000, 10.000000000000000,
5017 	  10.000000000000000, -0.099999999999999978, 0.0 },
5018   { 1.0000000000000000, 1.0000000000000000, 10.000000000000000,
5019 	  10.000000000000000, 0.0000000000000000, 0.0 },
5020   { 1.1111111111111112, 1.0000000000000000, 10.000000000000000,
5021 	  10.000000000000000, 0.10000000000000009, 0.0 },
5022   { 1.2500000000000002, 1.0000000000000000, 10.000000000000000,
5023 	  10.000000000000000, 0.20000000000000018, 0.0 },
5024   { 1.4285714285714286, 1.0000000000000000, 10.000000000000000,
5025 	  10.000000000000000, 0.30000000000000004, 0.0 },
5026   { 1.6666666666666670, 1.0000000000000000, 10.000000000000000,
5027 	  10.000000000000000, 0.40000000000000013, 0.0 },
5028   { 2.0000000000000000, 1.0000000000000000, 10.000000000000000,
5029 	  10.000000000000000, 0.50000000000000000, 0.0 },
5030   { 2.5000000000000009, 1.0000000000000000, 10.000000000000000,
5031 	  10.000000000000000, 0.60000000000000009, 0.0 },
5032   { 3.3333333333333348, 1.0000000000000000, 10.000000000000000,
5033 	  10.000000000000000, 0.70000000000000018, 0.0 },
5034   { 5.0000000000000009, 1.0000000000000000, 10.000000000000000,
5035 	  10.000000000000000, 0.80000000000000004, 0.0 },
5036   { 10.000000000000011, 1.0000000000000000, 10.000000000000000,
5037 	  10.000000000000000, 0.90000000000000013, 0.0 },
5038 };
5039 const double toler100 = 2.5000000000000020e-13;
5040 
5041 // Test data for a=1.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
5042 // max(|f - f_GSL|): 1024.0000000000000 at index 18
5043 // max(|f - f_GSL| / |f_GSL|): 1.7510399999999635e-15
5044 // mean(f - f_GSL): 53.894788252704814
5045 // variance(f - f_GSL): 55188.204676932175
5046 // stddev(f - f_GSL): 234.92169903381034
5047 const testcase_hyperg<double>
5048 data101[19] =
5049 {
5050   { 0.058479236576646311, 1.0000000000000000, 20.000000000000000,
5051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5052   { 0.065788544763137821, 1.0000000000000000, 20.000000000000000,
5053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5054   { 0.075184824937824482, 1.0000000000000000, 20.000000000000000,
5055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5056   { 0.087707688693157121, 1.0000000000000000, 20.000000000000000,
5057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5058   { 0.10521567442213345, 1.0000000000000000, 20.000000000000000,
5059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5060   { 0.13135877960541509, 1.0000000000000000, 20.000000000000000,
5061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5062   { 0.17423854066297137, 1.0000000000000000, 20.000000000000000,
5063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5064   { 0.25492082527223520, 1.0000000000000000, 20.000000000000000,
5065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5066   { 0.44025895219654843, 1.0000000000000000, 20.000000000000000,
5067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5068   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5070   { 3.3698615820910360, 1.0000000000000000, 20.000000000000000,
5071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5072   { 17.997089220808562, 1.0000000000000000, 20.000000000000000,
5073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5074   { 153.73298291118951, 1.0000000000000000, 20.000000000000000,
5075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5076   { 2159.1667587825768, 1.0000000000000000, 20.000000000000000,
5077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5078   { 55188.105263157879, 1.0000000000000000, 20.000000000000000,
5079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5080   { 3191209.3921857267, 1.0000000000000000, 20.000000000000000,
5081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5082   { 646910975.29153574, 1.0000000000000000, 20.000000000000000,
5083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5084   { 1254834626850.2659, 1.0000000000000000, 20.000000000000000,
5085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5086   { 5.8479532163743910e+17, 1.0000000000000000, 20.000000000000000,
5087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5088 };
5089 const double toler101 = 2.5000000000000020e-13;
5090 
5091 // Test data for a=1.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
5092 // max(|f - f_GSL|): 0.21875000000000000 at index 18
5093 // max(|f - f_GSL| / |f_GSL|): 1.5452521874999694e-15
5094 // mean(f - f_GSL): 0.011513220685868108
5095 // variance(f - f_GSL): 0.0025185017633005862
5096 // stddev(f - f_GSL): 0.050184676578618956
5097 const testcase_hyperg<double>
5098 data102[19] =
5099 {
5100   { 0.15519511120894958, 1.0000000000000000, 20.000000000000000,
5101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5102   { 0.17197165701692893, 1.0000000000000000, 20.000000000000000,
5103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5104   { 0.19276847315207329, 1.0000000000000000, 20.000000000000000,
5105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5106   { 0.21920107206179093, 1.0000000000000000, 20.000000000000000,
5107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5108   { 0.25386158960390576, 1.0000000000000000, 20.000000000000000,
5109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5110   { 0.30115970686600663, 1.0000000000000000, 20.000000000000000,
5111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5112   { 0.36916408142057128, 1.0000000000000000, 20.000000000000000,
5113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5114   { 0.47406175901569547, 1.0000000000000000, 20.000000000000000,
5115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5116   { 0.65237908266239919, 1.0000000000000000, 20.000000000000000,
5117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5118   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5120   { 1.8227213362622299, 1.0000000000000000, 20.000000000000000,
5121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5122   { 4.3716358339791430, 1.0000000000000000, 20.000000000000000,
5123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5124   { 15.670841312959222, 1.0000000000000000, 20.000000000000000,
5125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5126   { 94.742651122760662, 1.0000000000000000, 20.000000000000000,
5127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5128   { 1081.7275541795671, 1.0000000000000000, 20.000000000000000,
5129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5130   { 27809.787731465960, 1.0000000000000000, 20.000000000000000,
5131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5132   { 2329811.1715181284, 1.0000000000000000, 20.000000000000000,
5133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5134   { 1537787532.6780224, 1.0000000000000000, 20.000000000000000,
5135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5136   { 141562653507005.19, 1.0000000000000000, 20.000000000000000,
5137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5138 };
5139 const double toler102 = 2.5000000000000020e-13;
5140 
5141 // Test data for a=1.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
5142 // max(|f - f_GSL|): 0.00024414062500000000 at index 18
5143 // max(|f - f_GSL| / |f_GSL|): 1.6763226855512285e-15
5144 // mean(f - f_GSL): 1.2849899481406474e-05
5145 // variance(f - f_GSL): 3.1370759089735494e-09
5146 // stddev(f - f_GSL): 5.6009605506319623e-05
5147 const testcase_hyperg<double>
5148 data103[19] =
5149 {
5150   { 0.23253645591196551, 1.0000000000000000, 20.000000000000000,
5151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5152   { 0.25484220947068342, 1.0000000000000000, 20.000000000000000,
5153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5154   { 0.28181987881113812, 1.0000000000000000, 20.000000000000000,
5155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5156   { 0.31508211677735770, 1.0000000000000000, 20.000000000000000,
5157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5158   { 0.35706285886959610, 1.0000000000000000, 20.000000000000000,
5159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5160   { 0.41160053409238190, 1.0000000000000000, 20.000000000000000,
5161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5162   { 0.48508083111181938, 1.0000000000000000, 20.000000000000000,
5163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5164   { 0.58885194371375260, 1.0000000000000000, 20.000000000000000,
5165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5166   { 0.74482241684585782, 1.0000000000000000, 20.000000000000000,
5167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5168   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5170   { 1.4700356864367146, 1.0000000000000000, 20.000000000000000,
5171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5172   { 2.4955144453055174, 1.0000000000000000, 20.000000000000000,
5173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5174   { 5.3506594845833471, 1.0000000000000000, 20.000000000000000,
5175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5176   { 16.618413752184267, 1.0000000000000000, 20.000000000000000,
5177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5178   { 89.310629514963878, 1.0000000000000000, 20.000000000000000,
5179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5180   { 1029.3439900542960, 1.0000000000000000, 20.000000000000000,
5181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5182   { 35659.847863372670, 1.0000000000000000, 20.000000000000000,
5183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5184   { 8009309.6233230168, 1.0000000000000000, 20.000000000000000,
5185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5186   { 145640590027.40201, 1.0000000000000000, 20.000000000000000,
5187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5188 };
5189 const double toler103 = 2.5000000000000020e-13;
5190 
5191 // Test data for a=1.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
5192 // max(|f - f_GSL|): 7.1525573730468750e-07 at index 18
5193 // max(|f - f_GSL| / |f_GSL|): 1.7237966704607975e-15
5194 // mean(f - f_GSL): 3.7648905700618082e-08
5195 // variance(f - f_GSL): 2.6925522674362989e-14
5196 // stddev(f - f_GSL): 1.6408998346749562e-07
5197 const testcase_hyperg<double>
5198 data104[19] =
5199 {
5200   { 0.29614148314592509, 1.0000000000000000, 20.000000000000000,
5201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5202   { 0.32176277356430805, 1.0000000000000000, 20.000000000000000,
5203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5204   { 0.35217870475550511, 1.0000000000000000, 20.000000000000000,
5205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5206   { 0.38885270445515113, 1.0000000000000000, 20.000000000000000,
5207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5208   { 0.43389978380608418, 1.0000000000000000, 20.000000000000000,
5209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5210   { 0.49048612522269414, 1.0000000000000000, 20.000000000000000,
5211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5212   { 0.56355539635634599, 1.0000000000000000, 20.000000000000000,
5213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5214   { 0.66123153239117671, 1.0000000000000000, 20.000000000000000,
5215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5216   { 0.79773363961895416, 1.0000000000000000, 20.000000000000000,
5217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5218   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5220   { 1.3245132157016595, 1.0000000000000000, 20.000000000000000,
5221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5222   { 1.9065148749742094, 1.0000000000000000, 20.000000000000000,
5223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5224   { 3.1328798652457452, 1.0000000000000000, 20.000000000000000,
5225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5226   { 6.4172532944033636, 1.0000000000000000, 20.000000000000000,
5227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5228   { 19.071683734222436, 1.0000000000000000, 20.000000000000000,
5229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5230   { 104.41989641582512, 1.0000000000000000, 20.000000000000000,
5231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5232   { 1510.5743992324351, 1.0000000000000000, 20.000000000000000,
5233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5234   { 115518.14360562043, 1.0000000000000000, 20.000000000000000,
5235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5236   { 414930455.29174191, 1.0000000000000000, 20.000000000000000,
5237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5238 };
5239 const double toler104 = 2.5000000000000020e-13;
5240 
5241 // Test data for a=1.0000000000000000, b=20.000000000000000, c=10.000000000000000.
5242 // max(|f - f_GSL|): 4.6566128730773926e-09 at index 18
5243 // max(|f - f_GSL| / |f_GSL|): 1.6665618165271877e-15
5244 // mean(f - f_GSL): 2.4523176471958370e-10
5245 // variance(f - f_GSL): 1.1411894517911952e-18
5246 // stddev(f - f_GSL): 1.0682646918208967e-09
5247 const testcase_hyperg<double>
5248 data105[19] =
5249 {
5250   { 0.34954259539177701, 1.0000000000000000, 20.000000000000000,
5251 	  10.000000000000000, -0.90000000000000002, 0.0 },
5252   { 0.37714038609235134, 1.0000000000000000, 20.000000000000000,
5253 	  10.000000000000000, -0.80000000000000004, 0.0 },
5254   { 0.40942091659748781, 1.0000000000000000, 20.000000000000000,
5255 	  10.000000000000000, -0.69999999999999996, 0.0 },
5256   { 0.44767109606846422, 1.0000000000000000, 20.000000000000000,
5257 	  10.000000000000000, -0.59999999999999998, 0.0 },
5258   { 0.49368984777532227, 1.0000000000000000, 20.000000000000000,
5259 	  10.000000000000000, -0.50000000000000000, 0.0 },
5260   { 0.55006638216982318, 1.0000000000000000, 20.000000000000000,
5261 	  10.000000000000000, -0.39999999999999991, 0.0 },
5262   { 0.62065830207408901, 1.0000000000000000, 20.000000000000000,
5263 	  10.000000000000000, -0.29999999999999993, 0.0 },
5264   { 0.71145554513583764, 1.0000000000000000, 20.000000000000000,
5265 	  10.000000000000000, -0.19999999999999996, 0.0 },
5266   { 0.83223839666914623, 1.0000000000000000, 20.000000000000000,
5267 	  10.000000000000000, -0.099999999999999978, 0.0 },
5268   { 1.0000000000000000, 1.0000000000000000, 20.000000000000000,
5269 	  10.000000000000000, 0.0000000000000000, 0.0 },
5270   { 1.2466748028187731, 1.0000000000000000, 20.000000000000000,
5271 	  10.000000000000000, 0.10000000000000009, 0.0 },
5272   { 1.6386752725021760, 1.0000000000000000, 20.000000000000000,
5273 	  10.000000000000000, 0.20000000000000018, 0.0 },
5274   { 2.3340068725479681, 1.0000000000000000, 20.000000000000000,
5275 	  10.000000000000000, 0.30000000000000004, 0.0 },
5276   { 3.7848108613132099, 1.0000000000000000, 20.000000000000000,
5277 	  10.000000000000000, 0.40000000000000013, 0.0 },
5278   { 7.6754638550304133, 1.0000000000000000, 20.000000000000000,
5279 	  10.000000000000000, 0.50000000000000000, 0.0 },
5280   { 23.344217312927277, 1.0000000000000000, 20.000000000000000,
5281 	  10.000000000000000, 0.60000000000000009, 0.0 },
5282   { 149.83491198246998, 1.0000000000000000, 20.000000000000000,
5283 	  10.000000000000000, 0.70000000000000018, 0.0 },
5284   { 3936.9253501916060, 1.0000000000000000, 20.000000000000000,
5285 	  10.000000000000000, 0.80000000000000004, 0.0 },
5286   { 2794143.5036480846, 1.0000000000000000, 20.000000000000000,
5287 	  10.000000000000000, 0.90000000000000013, 0.0 },
5288 };
5289 const double toler105 = 2.5000000000000020e-13;
5290 
5291 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
5292 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5293 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5294 // mean(f - f_GSL): 0.0000000000000000
5295 // variance(f - f_GSL): 0.0000000000000000
5296 // stddev(f - f_GSL): 0.0000000000000000
5297 const testcase_hyperg<double>
5298 data106[19] =
5299 {
5300   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5302   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5304   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5306   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5308   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5310   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5312   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5314   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5316   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5318   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5320   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5322   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5324   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5326   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5328   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5330   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5332   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5334   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5336   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5338 };
5339 const double toler106 = 2.5000000000000020e-13;
5340 
5341 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
5342 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5343 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5344 // mean(f - f_GSL): 0.0000000000000000
5345 // variance(f - f_GSL): 0.0000000000000000
5346 // stddev(f - f_GSL): 0.0000000000000000
5347 const testcase_hyperg<double>
5348 data107[19] =
5349 {
5350   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5352   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5354   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5356   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5358   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5360   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5362   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5364   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5366   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5368   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5370   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5372   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5374   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5376   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5378   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5380   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5382   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5384   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5386   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5388 };
5389 const double toler107 = 2.5000000000000020e-13;
5390 
5391 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
5392 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5393 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5394 // mean(f - f_GSL): 0.0000000000000000
5395 // variance(f - f_GSL): 0.0000000000000000
5396 // stddev(f - f_GSL): 0.0000000000000000
5397 const testcase_hyperg<double>
5398 data108[19] =
5399 {
5400   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5402   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5404   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5406   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5408   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5410   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5412   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5414   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5416   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5418   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5420   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5422   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5424   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5426   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5428   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5430   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5432   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5434   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5436   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5438 };
5439 const double toler108 = 2.5000000000000020e-13;
5440 
5441 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
5442 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5443 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5444 // mean(f - f_GSL): 0.0000000000000000
5445 // variance(f - f_GSL): 0.0000000000000000
5446 // stddev(f - f_GSL): 0.0000000000000000
5447 const testcase_hyperg<double>
5448 data109[19] =
5449 {
5450   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5452   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5454   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5456   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5458   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5460   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5462   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5464   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5466   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5468   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5470   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5472   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5474   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5476   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5478   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5480   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5482   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5484   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5486   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5488 };
5489 const double toler109 = 2.5000000000000020e-13;
5490 
5491 // Test data for a=2.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
5492 // max(|f - f_GSL|): 0.0000000000000000 at index 0
5493 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
5494 // mean(f - f_GSL): 0.0000000000000000
5495 // variance(f - f_GSL): 0.0000000000000000
5496 // stddev(f - f_GSL): 0.0000000000000000
5497 const testcase_hyperg<double>
5498 data110[19] =
5499 {
5500   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5501 	  10.000000000000000, -0.90000000000000002, 0.0 },
5502   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5503 	  10.000000000000000, -0.80000000000000004, 0.0 },
5504   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5505 	  10.000000000000000, -0.69999999999999996, 0.0 },
5506   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5507 	  10.000000000000000, -0.59999999999999998, 0.0 },
5508   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5509 	  10.000000000000000, -0.50000000000000000, 0.0 },
5510   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5511 	  10.000000000000000, -0.39999999999999991, 0.0 },
5512   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5513 	  10.000000000000000, -0.29999999999999993, 0.0 },
5514   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5515 	  10.000000000000000, -0.19999999999999996, 0.0 },
5516   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5517 	  10.000000000000000, -0.099999999999999978, 0.0 },
5518   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5519 	  10.000000000000000, 0.0000000000000000, 0.0 },
5520   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5521 	  10.000000000000000, 0.10000000000000009, 0.0 },
5522   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5523 	  10.000000000000000, 0.20000000000000018, 0.0 },
5524   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5525 	  10.000000000000000, 0.30000000000000004, 0.0 },
5526   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5527 	  10.000000000000000, 0.40000000000000013, 0.0 },
5528   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5529 	  10.000000000000000, 0.50000000000000000, 0.0 },
5530   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5531 	  10.000000000000000, 0.60000000000000009, 0.0 },
5532   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5533 	  10.000000000000000, 0.70000000000000018, 0.0 },
5534   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5535 	  10.000000000000000, 0.80000000000000004, 0.0 },
5536   { 1.0000000000000000, 2.0000000000000000, 0.0000000000000000,
5537 	  10.000000000000000, 0.90000000000000013, 0.0 },
5538 };
5539 const double toler110 = 2.5000000000000020e-13;
5540 
5541 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
5542 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
5543 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
5544 // mean(f - f_GSL): 5.8432790769745078e-18
5545 // variance(f - f_GSL): 1.1262748212790853e-32
5546 // stddev(f - f_GSL): 1.0612609581432294e-16
5547 const testcase_hyperg<double>
5548 data111[19] =
5549 {
5550   { 0.72547625011001160, 2.0000000000000000, 0.50000000000000000,
5551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5552   { 0.74535599249992990, 2.0000000000000000, 0.50000000000000000,
5553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5554   { 0.76696498884737041, 2.0000000000000000, 0.50000000000000000,
5555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5556   { 0.79056941504209477, 2.0000000000000000, 0.50000000000000000,
5557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5558   { 0.81649658092772603, 2.0000000000000000, 0.50000000000000000,
5559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5560   { 0.84515425472851669, 2.0000000000000000, 0.50000000000000000,
5561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5562   { 0.87705801930702931, 2.0000000000000000, 0.50000000000000000,
5563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5564   { 0.91287092917527690, 2.0000000000000000, 0.50000000000000000,
5565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5566   { 0.95346258924559224, 2.0000000000000000, 0.50000000000000000,
5567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5568   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5570   { 1.0540925533894598, 2.0000000000000000, 0.50000000000000000,
5571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5572   { 1.1180339887498949, 2.0000000000000000, 0.50000000000000000,
5573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5574   { 1.1952286093343938, 2.0000000000000000, 0.50000000000000000,
5575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5576   { 1.2909944487358058, 2.0000000000000000, 0.50000000000000000,
5577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5578   { 1.4142135623730951, 2.0000000000000000, 0.50000000000000000,
5579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5580   { 1.5811388300841900, 2.0000000000000000, 0.50000000000000000,
5581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5582   { 1.8257418583505542, 2.0000000000000000, 0.50000000000000000,
5583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5584   { 2.2360679774997898, 2.0000000000000000, 0.50000000000000000,
5585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5586   { 3.1622776601683809, 2.0000000000000000, 0.50000000000000000,
5587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5588 };
5589 const double toler111 = 2.5000000000000020e-13;
5590 
5591 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
5592 // max(|f - f_GSL|): 6.6613381477509392e-16 at index 18
5593 // max(|f - f_GSL| / |f_GSL|): 4.6340403913587147e-16
5594 // mean(f - f_GSL): 7.5962628000668607e-17
5595 // variance(f - f_GSL): 2.0425119025543020e-32
5596 // stddev(f - f_GSL): 1.4291647569662155e-16
5597 const testcase_hyperg<double>
5598 data112[19] =
5599 {
5600   { 0.83664260086443765, 2.0000000000000000, 0.50000000000000000,
5601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5602   { 0.85046584300227079, 2.0000000000000000, 0.50000000000000000,
5603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5604   { 0.86509574979651649, 2.0000000000000000, 0.50000000000000000,
5605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5606   { 0.88062082573041911, 2.0000000000000000, 0.50000000000000000,
5607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5608   { 0.89714464248521597, 2.0000000000000000, 0.50000000000000000,
5609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5610   { 0.91478946588967569, 2.0000000000000000, 0.50000000000000000,
5611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5612   { 0.93370105322348607, 2.0000000000000000, 0.50000000000000000,
5613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5614   { 0.95405511057700887, 2.0000000000000000, 0.50000000000000000,
5615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5616   { 0.97606616007978142, 2.0000000000000000, 0.50000000000000000,
5617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5618   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5620   { 1.0261916902334731, 2.0000000000000000, 0.50000000000000000,
5621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5622   { 1.0550723519434702, 2.0000000000000000, 0.50000000000000000,
5623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5624   { 1.0872106588188091, 2.0000000000000000, 0.50000000000000000,
5625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5626   { 1.1233801699379022, 2.0000000000000000, 0.50000000000000000,
5627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5628   { 1.1646752981725688, 2.0000000000000000, 0.50000000000000000,
5629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5630   { 1.2127272514219511, 2.0000000000000000, 0.50000000000000000,
5631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5632   { 1.2701518651068637, 2.0000000000000000, 0.50000000000000000,
5633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5634   { 1.3416407864998725, 2.0000000000000000, 0.50000000000000000,
5635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5636   { 1.4374795179111106, 2.0000000000000000, 0.50000000000000000,
5637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5638 };
5639 const double toler112 = 2.5000000000000020e-13;
5640 
5641 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
5642 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
5643 // max(|f - f_GSL| / |f_GSL|): 3.3853500746952663e-16
5644 // mean(f - f_GSL): 1.1686558153949016e-17
5645 // variance(f - f_GSL): 2.5949371882270124e-33
5646 // stddev(f - f_GSL): 5.0940525990875012e-17
5647 const testcase_hyperg<double>
5648 data113[19] =
5649 {
5650   { 0.88195381730235822, 2.0000000000000000, 0.50000000000000000,
5651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5652   { 0.89265078469555081, 2.0000000000000000, 0.50000000000000000,
5653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5654   { 0.90382937908303673, 2.0000000000000000, 0.50000000000000000,
5655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5656   { 0.91553161389880600, 2.0000000000000000, 0.50000000000000000,
5657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5658   { 0.92780530349281509, 2.0000000000000000, 0.50000000000000000,
5659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5660   { 0.94070521140346020, 2.0000000000000000, 0.50000000000000000,
5661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5662   { 0.95429450630523349, 2.0000000000000000, 0.50000000000000000,
5663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5664   { 0.96864663325785849, 2.0000000000000000, 0.50000000000000000,
5665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5666   { 0.98384775588541795, 2.0000000000000000, 0.50000000000000000,
5667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5668   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5670   { 1.0172258496884334, 2.0000000000000000, 0.50000000000000000,
5671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5672   { 1.0356742479163461, 2.0000000000000000, 0.50000000000000000,
5673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5674   { 1.0555293036908924, 2.0000000000000000, 0.50000000000000000,
5675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5676   { 1.0770231491562379, 2.0000000000000000, 0.50000000000000000,
5677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5678   { 1.1004557416484888, 2.0000000000000000, 0.50000000000000000,
5679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5680   { 1.1262270515731978, 2.0000000000000000, 0.50000000000000000,
5681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5682   { 1.1548932919125088, 2.0000000000000000, 0.50000000000000000,
5683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5684   { 1.1872757758134724, 2.0000000000000000, 0.50000000000000000,
5685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5686   { 1.2247091713458949, 2.0000000000000000, 0.50000000000000000,
5687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5688 };
5689 const double toler113 = 2.5000000000000020e-13;
5690 
5691 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
5692 // max(|f - f_GSL|): 2.2204460492503131e-16 at index 17
5693 // max(|f - f_GSL| / |f_GSL|): 1.9683492716399738e-16
5694 // mean(f - f_GSL): 1.7529837230923523e-17
5695 // variance(f - f_GSL): 2.4527762774522302e-33
5696 // stddev(f - f_GSL): 4.9525511380017369e-17
5697 const testcase_hyperg<double>
5698 data114[19] =
5699 {
5700   { 0.90716919697107279, 2.0000000000000000, 0.50000000000000000,
5701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5702   { 0.91592299407142508, 2.0000000000000000, 0.50000000000000000,
5703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5704   { 0.92500027075874192, 2.0000000000000000, 0.50000000000000000,
5705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5706   { 0.93442464185467122, 2.0000000000000000, 0.50000000000000000,
5707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5708   { 0.94422248683737076, 2.0000000000000000, 0.50000000000000000,
5709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5710   { 0.95442341810133347, 2.0000000000000000, 0.50000000000000000,
5711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5712   { 0.96506085725516355, 2.0000000000000000, 0.50000000000000000,
5713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5714   { 0.97617275213704069, 2.0000000000000000, 0.50000000000000000,
5715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5716   { 0.98780247986309799, 2.0000000000000000, 0.50000000000000000,
5717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5718   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5720   { 1.0128233505813447, 2.0000000000000000, 0.50000000000000000,
5721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5722   { 1.0263406246541855, 2.0000000000000000, 0.50000000000000000,
5723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5724   { 1.0406326381700366, 2.0000000000000000, 0.50000000000000000,
5725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5726   { 1.0557966239802845, 2.0000000000000000, 0.50000000000000000,
5727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5728   { 1.0719515075786321, 2.0000000000000000, 0.50000000000000000,
5729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5730   { 1.0892457392422055, 2.0000000000000000, 0.50000000000000000,
5731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5732   { 1.1078695188000958, 2.0000000000000000, 0.50000000000000000,
5733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5734   { 1.1280752258974340, 2.0000000000000000, 0.50000000000000000,
5735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5736   { 1.1502152002706476, 2.0000000000000000, 0.50000000000000000,
5737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5738 };
5739 const double toler114 = 2.5000000000000020e-13;
5740 
5741 // Test data for a=2.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
5742 // max(|f - f_GSL|): 3.3306690738754696e-16 at index 8
5743 // max(|f - f_GSL| / |f_GSL|): 3.3636359087105992e-16
5744 // mean(f - f_GSL): 2.9216395384872539e-17
5745 // variance(f - f_GSL): 2.1804680539963092e-33
5746 // stddev(f - f_GSL): 4.6695482158302094e-17
5747 const testcase_hyperg<double>
5748 data115[19] =
5749 {
5750   { 0.92336416053263082, 2.0000000000000000, 0.50000000000000000,
5751 	  10.000000000000000, -0.90000000000000002, 0.0 },
5752   { 0.93078397248364542, 2.0000000000000000, 0.50000000000000000,
5753 	  10.000000000000000, -0.80000000000000004, 0.0 },
5754   { 0.93843714333600259, 2.0000000000000000, 0.50000000000000000,
5755 	  10.000000000000000, -0.69999999999999996, 0.0 },
5756   { 0.94633837784068098, 2.0000000000000000, 0.50000000000000000,
5757 	  10.000000000000000, -0.59999999999999998, 0.0 },
5758   { 0.95450388104967876, 2.0000000000000000, 0.50000000000000000,
5759 	  10.000000000000000, -0.50000000000000000, 0.0 },
5760   { 0.96295158125742752, 2.0000000000000000, 0.50000000000000000,
5761 	  10.000000000000000, -0.39999999999999991, 0.0 },
5762   { 0.97170139827854329, 2.0000000000000000, 0.50000000000000000,
5763 	  10.000000000000000, -0.29999999999999993, 0.0 },
5764   { 0.98077556918512687, 2.0000000000000000, 0.50000000000000000,
5765 	  10.000000000000000, -0.19999999999999996, 0.0 },
5766   { 0.99019904777750845, 2.0000000000000000, 0.50000000000000000,
5767 	  10.000000000000000, -0.099999999999999978, 0.0 },
5768   { 1.0000000000000000, 2.0000000000000000, 0.50000000000000000,
5769 	  10.000000000000000, 0.0000000000000000, 0.0 },
5770   { 1.0102104261941198, 2.0000000000000000, 0.50000000000000000,
5771 	  10.000000000000000, 0.10000000000000009, 0.0 },
5772   { 1.0208669540935695, 2.0000000000000000, 0.50000000000000000,
5773 	  10.000000000000000, 0.20000000000000018, 0.0 },
5774   { 1.0320118665407505, 2.0000000000000000, 0.50000000000000000,
5775 	  10.000000000000000, 0.30000000000000004, 0.0 },
5776   { 1.0436944599504387, 2.0000000000000000, 0.50000000000000000,
5777 	  10.000000000000000, 0.40000000000000013, 0.0 },
5778   { 1.0559728828278145, 2.0000000000000000, 0.50000000000000000,
5779 	  10.000000000000000, 0.50000000000000000, 0.0 },
5780   { 1.0689166967761712, 2.0000000000000000, 0.50000000000000000,
5781 	  10.000000000000000, 0.60000000000000009, 0.0 },
5782   { 1.0826105758119842, 2.0000000000000000, 0.50000000000000000,
5783 	  10.000000000000000, 0.70000000000000018, 0.0 },
5784   { 1.0971599106346146, 2.0000000000000000, 0.50000000000000000,
5785 	  10.000000000000000, 0.80000000000000004, 0.0 },
5786   { 1.1126998828023964, 2.0000000000000000, 0.50000000000000000,
5787 	  10.000000000000000, 0.90000000000000013, 0.0 },
5788 };
5789 const double toler115 = 2.5000000000000020e-13;
5790 
5791 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
5792 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
5793 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
5794 // mean(f - f_GSL): 7.5962628000668607e-17
5795 // variance(f - f_GSL): 1.6955391669463862e-31
5796 // stddev(f - f_GSL): 4.1176925175957300e-16
5797 const testcase_hyperg<double>
5798 data116[19] =
5799 {
5800   { 0.52631578947368429, 2.0000000000000000, 1.0000000000000000,
5801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
5802   { 0.55555555555555558, 2.0000000000000000, 1.0000000000000000,
5803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
5804   { 0.58823529411764708, 2.0000000000000000, 1.0000000000000000,
5805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
5806   { 0.62500000000000000, 2.0000000000000000, 1.0000000000000000,
5807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
5808   { 0.66666666666666663, 2.0000000000000000, 1.0000000000000000,
5809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
5810   { 0.71428571428571430, 2.0000000000000000, 1.0000000000000000,
5811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
5812   { 0.76923076923076938, 2.0000000000000000, 1.0000000000000000,
5813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
5814   { 0.83333333333333337, 2.0000000000000000, 1.0000000000000000,
5815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
5816   { 0.90909090909090906, 2.0000000000000000, 1.0000000000000000,
5817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
5818   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
5820   { 1.1111111111111112, 2.0000000000000000, 1.0000000000000000,
5821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
5822   { 1.2500000000000002, 2.0000000000000000, 1.0000000000000000,
5823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
5824   { 1.4285714285714286, 2.0000000000000000, 1.0000000000000000,
5825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
5826   { 1.6666666666666670, 2.0000000000000000, 1.0000000000000000,
5827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
5828   { 2.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
5830   { 2.5000000000000009, 2.0000000000000000, 1.0000000000000000,
5831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
5832   { 3.3333333333333348, 2.0000000000000000, 1.0000000000000000,
5833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
5834   { 5.0000000000000009, 2.0000000000000000, 1.0000000000000000,
5835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
5836   { 10.000000000000011, 2.0000000000000000, 1.0000000000000000,
5837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
5838 };
5839 const double toler116 = 2.5000000000000020e-13;
5840 
5841 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
5842 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
5843 // max(|f - f_GSL| / |f_GSL|): 1.2228571846595245e-15
5844 // mean(f - f_GSL): 1.9282820954015878e-16
5845 // variance(f - f_GSL): 3.5826351554959189e-31
5846 // stddev(f - f_GSL): 5.9855118039278136e-16
5847 const testcase_hyperg<double>
5848 data117[19] =
5849 {
5850   { 0.70351947549341554, 2.0000000000000000, 1.0000000000000000,
5851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
5852   { 0.72637503722092756, 2.0000000000000000, 1.0000000000000000,
5853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
5854   { 0.75099661564391240, 2.0000000000000000, 1.0000000000000000,
5855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
5856   { 0.77761647796730871, 2.0000000000000000, 1.0000000000000000,
5857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
5858   { 0.80651221621216473, 2.0000000000000000, 1.0000000000000000,
5859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
5860   { 0.83801894346580275, 2.0000000000000000, 1.0000000000000000,
5861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
5862   { 0.87254582050258456, 2.0000000000000000, 1.0000000000000000,
5863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
5864   { 0.91059888544083678, 2.0000000000000000, 1.0000000000000000,
5865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
5866   { 0.95281329145592386, 2.0000000000000000, 1.0000000000000000,
5867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
5868   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
5870   { 1.0532154477379738, 2.0000000000000000, 1.0000000000000000,
5871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
5872   { 1.1138692114741471, 2.0000000000000000, 1.0000000000000000,
5873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
5874   { 1.1838976095305187, 2.0000000000000000, 1.0000000000000000,
5875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
5876   { 1.2660586631630240, 2.0000000000000000, 1.0000000000000000,
5877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
5878   { 1.3644676665613118, 2.0000000000000000, 1.0000000000000000,
5879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
5880   { 1.4856585347316102, 2.0000000000000000, 1.0000000000000000,
5881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
5882   { 1.6409590443536872, 2.0000000000000000, 1.0000000000000000,
5883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
5884   { 1.8528798927325769, 2.0000000000000000, 1.0000000000000000,
5885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
5886   { 2.1789423102929653, 2.0000000000000000, 1.0000000000000000,
5887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
5888 };
5889 const double toler117 = 2.5000000000000020e-13;
5890 
5891 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
5892 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
5893 // max(|f - f_GSL| / |f_GSL|): 5.8050967180790176e-16
5894 // mean(f - f_GSL): 5.8432790769745078e-17
5895 // variance(f - f_GSL): 4.0373698660038179e-32
5896 // stddev(f - f_GSL): 2.0093207474178476e-16
5897 const testcase_hyperg<double>
5898 data118[19] =
5899 {
5900   { 0.78068027379106275, 2.0000000000000000, 1.0000000000000000,
5901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
5902   { 0.79924541976981278, 2.0000000000000000, 1.0000000000000000,
5903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
5904   { 0.81891305585650975, 2.0000000000000000, 1.0000000000000000,
5905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
5906   { 0.83979799626213247, 2.0000000000000000, 1.0000000000000000,
5907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
5908   { 0.86203315303160111, 2.0000000000000000, 1.0000000000000000,
5909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
5910   { 0.88577352485361693, 2.0000000000000000, 1.0000000000000000,
5911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
5912   { 0.91120135738402230, 2.0000000000000000, 1.0000000000000000,
5913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
5914   { 0.93853291956703588, 2.0000000000000000, 1.0000000000000000,
5915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
5916   { 0.96802755388922956, 2.0000000000000000, 1.0000000000000000,
5917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
5918   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
5920   { 1.0348375559194773, 2.0000000000000000, 1.0000000000000000,
5921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
5922   { 1.0730246119544820, 2.0000000000000000, 1.0000000000000000,
5923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
5924   { 1.1151788396279341, 2.0000000000000000, 1.0000000000000000,
5925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
5926   { 1.1621066403893472, 2.0000000000000000, 1.0000000000000000,
5927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
5928   { 1.2148922218710421, 2.0000000000000000, 1.0000000000000000,
5929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
5930   { 1.2750496810838674, 2.0000000000000000, 1.0000000000000000,
5931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
5932   { 1.3448048570872917, 2.0000000000000000, 1.0000000000000000,
5933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
5934   { 1.4276833109859521, 2.0000000000000000, 1.0000000000000000,
5935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
5936   { 1.5299976259379793, 2.0000000000000000, 1.0000000000000000,
5937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
5938 };
5939 const double toler118 = 2.5000000000000020e-13;
5940 
5941 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
5942 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
5943 // max(|f - f_GSL| / |f_GSL|): 3.4946054932156233e-16
5944 // mean(f - f_GSL): 3.5059674461847047e-17
5945 // variance(f - f_GSL): 9.8111051098089209e-33
5946 // stddev(f - f_GSL): 9.9051022760034738e-17
5947 const testcase_hyperg<double>
5948 data119[19] =
5949 {
5950   { 0.82510759951857615, 2.0000000000000000, 1.0000000000000000,
5951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
5952   { 0.84072786892782070, 2.0000000000000000, 1.0000000000000000,
5953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
5954   { 0.85710884896562356, 2.0000000000000000, 1.0000000000000000,
5955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
5956   { 0.87431674418118244, 2.0000000000000000, 1.0000000000000000,
5957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
5958   { 0.89242659229726995, 2.0000000000000000, 1.0000000000000000,
5959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
5960   { 0.91152392685930339, 2.0000000000000000, 1.0000000000000000,
5961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
5962   { 0.93170685950993570, 2.0000000000000000, 1.0000000000000000,
5963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
5964   { 0.95308871926790661, 2.0000000000000000, 1.0000000000000000,
5965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
5966   { 0.97580144325325802, 2.0000000000000000, 1.0000000000000000,
5967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
5968   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
5969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
5970   { 1.0258682619030324, 2.0000000000000000, 1.0000000000000000,
5971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
5972   { 1.0536269616706000, 2.0000000000000000, 1.0000000000000000,
5973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
5974   { 1.0835447330793833, 2.0000000000000000, 1.0000000000000000,
5975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
5976   { 1.1159538758396654, 2.0000000000000000, 1.0000000000000000,
5977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
5978   { 1.1512736659291880, 2.0000000000000000, 1.0000000000000000,
5979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
5980   { 1.1900463690116090, 2.0000000000000000, 1.0000000000000000,
5981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
5982   { 1.2329961591622411, 2.0000000000000000, 1.0000000000000000,
5983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
5984   { 1.2811334345669059, 2.0000000000000000, 1.0000000000000000,
5985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
5986   { 1.3359629014132053, 2.0000000000000000, 1.0000000000000000,
5987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
5988 };
5989 const double toler119 = 2.5000000000000020e-13;
5990 
5991 // Test data for a=2.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
5992 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 7
5993 // max(|f - f_GSL| / |f_GSL|): 4.6160879869309861e-16
5994 // mean(f - f_GSL): -2.9216395384872539e-17
5995 // variance(f - f_GSL): 3.7021904791911625e-33
5996 // stddev(f - f_GSL): 6.0845628266878486e-17
5997 const testcase_hyperg<double>
5998 data120[19] =
5999 {
6000   { 0.85426123653345876, 2.0000000000000000, 1.0000000000000000,
6001 	  10.000000000000000, -0.90000000000000002, 0.0 },
6002   { 0.86774543390930414, 2.0000000000000000, 1.0000000000000000,
6003 	  10.000000000000000, -0.80000000000000004, 0.0 },
6004   { 0.88178859537254239, 2.0000000000000000, 1.0000000000000000,
6005 	  10.000000000000000, -0.69999999999999996, 0.0 },
6006   { 0.89643269097060951, 2.0000000000000000, 1.0000000000000000,
6007 	  10.000000000000000, -0.59999999999999998, 0.0 },
6008   { 0.91172456687216819, 2.0000000000000000, 1.0000000000000000,
6009 	  10.000000000000000, -0.50000000000000000, 0.0 },
6010   { 0.92771674975966134, 2.0000000000000000, 1.0000000000000000,
6011 	  10.000000000000000, -0.39999999999999991, 0.0 },
6012   { 0.94446842993888669, 2.0000000000000000, 1.0000000000000000,
6013 	  10.000000000000000, -0.29999999999999993, 0.0 },
6014   { 0.96204667481937678, 2.0000000000000000, 1.0000000000000000,
6015 	  10.000000000000000, -0.19999999999999996, 0.0 },
6016   { 0.98052794339012128, 2.0000000000000000, 1.0000000000000000,
6017 	  10.000000000000000, -0.099999999999999978, 0.0 },
6018   { 1.0000000000000000, 2.0000000000000000, 1.0000000000000000,
6019 	  10.000000000000000, 0.0000000000000000, 0.0 },
6020   { 1.0205643671068179, 2.0000000000000000, 1.0000000000000000,
6021 	  10.000000000000000, 0.10000000000000009, 0.0 },
6022   { 1.0423395201078882, 2.0000000000000000, 1.0000000000000000,
6023 	  10.000000000000000, 0.20000000000000018, 0.0 },
6024   { 1.0654651277885334, 2.0000000000000000, 1.0000000000000000,
6025 	  10.000000000000000, 0.30000000000000004, 0.0 },
6026   { 1.0901078068101382, 2.0000000000000000, 1.0000000000000000,
6027 	  10.000000000000000, 0.40000000000000013, 0.0 },
6028   { 1.1164691415928940, 2.0000000000000000, 1.0000000000000000,
6029 	  10.000000000000000, 0.50000000000000000, 0.0 },
6030   { 1.1447972335326551, 2.0000000000000000, 1.0000000000000000,
6031 	  10.000000000000000, 0.60000000000000009, 0.0 },
6032   { 1.1754040384534163, 2.0000000000000000, 1.0000000000000000,
6033 	  10.000000000000000, 0.70000000000000018, 0.0 },
6034   { 1.2086928679893112, 2.0000000000000000, 1.0000000000000000,
6035 	  10.000000000000000, 0.80000000000000004, 0.0 },
6036   { 1.2452055640510711, 2.0000000000000000, 1.0000000000000000,
6037 	  10.000000000000000, 0.90000000000000013, 0.0 },
6038 };
6039 const double toler120 = 2.5000000000000020e-13;
6040 
6041 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
6042 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
6043 // max(|f - f_GSL| / |f_GSL|): 4.2632564145605916e-16
6044 // mean(f - f_GSL): 2.3636063866361887e-15
6045 // variance(f - f_GSL): 9.5093179694074762e-29
6046 // stddev(f - f_GSL): 9.7515731907254209e-15
6047 const testcase_hyperg<double>
6048 data121[19] =
6049 {
6050   { 0.27700831024930750, 2.0000000000000000, 2.0000000000000000,
6051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6052   { 0.30864197530864196, 2.0000000000000000, 2.0000000000000000,
6053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6054   { 0.34602076124567477, 2.0000000000000000, 2.0000000000000000,
6055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6056   { 0.39062500000000000, 2.0000000000000000, 2.0000000000000000,
6057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6058   { 0.44444444444444442, 2.0000000000000000, 2.0000000000000000,
6059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6060   { 0.51020408163265318, 2.0000000000000000, 2.0000000000000000,
6061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6062   { 0.59171597633136108, 2.0000000000000000, 2.0000000000000000,
6063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6064   { 0.69444444444444442, 2.0000000000000000, 2.0000000000000000,
6065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6066   { 0.82644628099173545, 2.0000000000000000, 2.0000000000000000,
6067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6068   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6070   { 1.2345679012345683, 2.0000000000000000, 2.0000000000000000,
6071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6072   { 1.5625000000000007, 2.0000000000000000, 2.0000000000000000,
6073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6074   { 2.0408163265306127, 2.0000000000000000, 2.0000000000000000,
6075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6076   { 2.7777777777777795, 2.0000000000000000, 2.0000000000000000,
6077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6078   { 4.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6080   { 6.2500000000000027, 2.0000000000000000, 2.0000000000000000,
6081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6082   { 11.111111111111125, 2.0000000000000000, 2.0000000000000000,
6083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6084   { 25.000000000000007, 2.0000000000000000, 2.0000000000000000,
6085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6086   { 100.00000000000023, 2.0000000000000000, 2.0000000000000000,
6087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6088 };
6089 const double toler121 = 2.5000000000000020e-13;
6090 
6091 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
6092 // max(|f - f_GSL|): 7.9936057773011271e-15 at index 18
6093 // max(|f - f_GSL| / |f_GSL|): 1.3252801810681345e-15
6094 // mean(f - f_GSL): 6.3107414031324687e-16
6095 // variance(f - f_GSL): 3.1787980555780903e-30
6096 // stddev(f - f_GSL): 1.7829184096806254e-15
6097 const testcase_hyperg<double>
6098 data122[19] =
6099 {
6100   { 0.50515448477320835, 2.0000000000000000, 2.0000000000000000,
6101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6102   { 0.53674994210078020, 2.0000000000000000, 2.0000000000000000,
6103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6104   { 0.57194655162437413, 2.0000000000000000, 2.0000000000000000,
6105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6106   { 0.61137322330312327, 2.0000000000000000, 2.0000000000000000,
6107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6108   { 0.65581297297972585, 2.0000000000000000, 2.0000000000000000,
6109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6110   { 0.70625323977290955, 2.0000000000000000, 2.0000000000000000,
6111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6112   { 0.76395739449542666, 2.0000000000000000, 2.0000000000000000,
6113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6114   { 0.83056871002513311, 2.0000000000000000, 2.0000000000000000,
6115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6116   { 0.90826553449323655, 2.0000000000000000, 2.0000000000000000,
6117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6118   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6120   { 1.1098784992198341, 2.0000000000000000, 2.0000000000000000,
6121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6122   { 1.2437942741831702, 2.0000000000000000, 2.0000000000000000,
6123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6124   { 1.4105343768544543, 2.0000000000000000, 2.0000000000000000,
6125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6126   { 1.6238435648986023, 2.0000000000000000, 2.0000000000000000,
6127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6128   { 1.9065970003160624, 2.0000000000000000, 2.0000000000000000,
6129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6130   { 2.3001951284393627, 2.0000000000000000, 2.0000000000000000,
6131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6132   { 2.8891774744673469, 2.0000000000000000, 2.0000000000000000,
6133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6134   { 3.8827206436045336, 2.0000000000000000, 2.0000000000000000,
6135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6136   { 6.0316345867773640, 2.0000000000000000, 2.0000000000000000,
6137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6138 };
6139 const double toler122 = 2.5000000000000020e-13;
6140 
6141 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
6142 // max(|f - f_GSL|): 3.1086244689504383e-15 at index 18
6143 // max(|f - f_GSL| / |f_GSL|): 1.2095468681839713e-15
6144 // mean(f - f_GSL): 2.5126100030990384e-16
6145 // variance(f - f_GSL): 4.7878393162502431e-31
6146 // stddev(f - f_GSL): 6.9194214470938558e-16
6147 const testcase_hyperg<double>
6148 data123[19] =
6149 {
6150   { 0.61824560969673270, 2.0000000000000000, 2.0000000000000000,
6151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6152   { 0.64645665839161026, 2.0000000000000000, 2.0000000000000000,
6153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6154   { 0.67712272792612116, 2.0000000000000000, 2.0000000000000000,
6155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6156   { 0.71058076074636822, 2.0000000000000000, 2.0000000000000000,
6157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6158   { 0.74723387423852838, 2.0000000000000000, 2.0000000000000000,
6159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6160   { 0.78756892188863170, 2.0000000000000000, 2.0000000000000000,
6161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6162   { 0.83218012557592669, 2.0000000000000000, 2.0000000000000000,
6163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6164   { 0.88180144818204143, 2.0000000000000000, 2.0000000000000000,
6165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6166   { 0.93735184459468934, 2.0000000000000000, 2.0000000000000000,
6167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6168   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6170   { 1.0712594799044883, 2.0000000000000000, 2.0000000000000000,
6171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6172   { 1.1531330932162098, 2.0000000000000000, 2.0000000000000000,
6173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6174   { 1.2483404191094898, 2.0000000000000000, 2.0000000000000000,
6175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6176   { 1.3606934909972506, 2.0000000000000000, 2.0000000000000000,
6177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6178   { 1.4957544469027071, 2.0000000000000000, 2.0000000000000000,
6179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6180   { 1.6620777107871287, 2.0000000000000000, 2.0000000000000000,
6181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6182   { 1.8738132387064512, 2.0000000000000000, 2.0000000000000000,
6183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6184   { 2.1570670242247409, 2.0000000000000000, 2.0000000000000000,
6185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6186   { 2.5700735959225507, 2.0000000000000000, 2.0000000000000000,
6187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6188 };
6189 const double toler123 = 2.5000000000000020e-13;
6190 
6191 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
6192 // max(|f - f_GSL|): 1.3322676295501878e-15 at index 18
6193 // max(|f - f_GSL| / |f_GSL|): 7.1401110547148366e-16
6194 // mean(f - f_GSL): 1.0517902338554114e-16
6195 // variance(f - f_GSL): 8.8299945988280290e-32
6196 // stddev(f - f_GSL): 2.9715306828010425e-16
6197 const testcase_hyperg<double>
6198 data124[19] =
6199 {
6200   { 0.68776713859043437, 2.0000000000000000, 2.0000000000000000,
6201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6202   { 0.71280582849489893, 2.0000000000000000, 2.0000000000000000,
6203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6204   { 0.73962983054724896, 2.0000000000000000, 2.0000000000000000,
6205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6206   { 0.76844343025262063, 2.0000000000000000, 2.0000000000000000,
6207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6208   { 0.79948476671182900, 2.0000000000000000, 2.0000000000000000,
6209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6210   { 0.83303347721461252, 2.0000000000000000, 2.0000000000000000,
6211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6212   { 0.86942060391338805, 2.0000000000000000, 2.0000000000000000,
6213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6214   { 0.90904161711581655, 2.0000000000000000, 2.0000000000000000,
6215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6216   { 0.95237381468647742, 2.0000000000000000, 2.0000000000000000,
6217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6218   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6220   { 1.0526413941912305, 2.0000000000000000, 2.0000000000000000,
6221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6222   { 1.1112045278881502, 2.0000000000000000, 2.0000000000000000,
6223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6224   { 1.1768500306393046, 2.0000000000000000, 2.0000000000000000,
6225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6226   { 1.2510971588297890, 2.0000000000000000, 2.0000000000000000,
6227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6228   { 1.3359896747789315, 2.0000000000000000, 2.0000000000000000,
6229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6230   { 1.4343740183432725, 2.0000000000000000, 2.0000000000000000,
6231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6232   { 1.5504011881337365, 2.0000000000000000, 2.0000000000000000,
6233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6234   { 1.6905307012604318, 2.0000000000000000, 2.0000000000000000,
6235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6236   { 1.8658920279264428, 2.0000000000000000, 2.0000000000000000,
6237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6238 };
6239 const double toler124 = 2.5000000000000020e-13;
6240 
6241 // Test data for a=2.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
6242 // max(|f - f_GSL|): 6.6613381477509392e-16 at index 18
6243 // max(|f - f_GSL| / |f_GSL|): 4.1884541027166499e-16
6244 // mean(f - f_GSL): 5.8432790769745078e-17
6245 // variance(f - f_GSL): 2.1656512830141486e-32
6246 // stddev(f - f_GSL): 1.4716151952919448e-16
6247 const testcase_hyperg<double>
6248 data125[19] =
6249 {
6250   { 0.73530262886958797, 2.0000000000000000, 2.0000000000000000,
6251 	  10.000000000000000, -0.90000000000000002, 0.0 },
6252   { 0.75768898977673649, 2.0000000000000000, 2.0000000000000000,
6253 	  10.000000000000000, -0.80000000000000004, 0.0 },
6254   { 0.78143483544640080, 2.0000000000000000, 2.0000000000000000,
6255 	  10.000000000000000, -0.69999999999999996, 0.0 },
6256   { 0.80667428603297209, 2.0000000000000000, 2.0000000000000000,
6257 	  10.000000000000000, -0.59999999999999998, 0.0 },
6258   { 0.83356078772438313, 2.0000000000000000, 2.0000000000000000,
6259 	  10.000000000000000, -0.50000000000000000, 0.0 },
6260   { 0.86227093001346156, 2.0000000000000000, 2.0000000000000000,
6261 	  10.000000000000000, -0.39999999999999991, 0.0 },
6262   { 0.89300925500556971, 2.0000000000000000, 2.0000000000000000,
6263 	  10.000000000000000, -0.29999999999999993, 0.0 },
6264   { 0.92601438873425990, 2.0000000000000000, 2.0000000000000000,
6265 	  10.000000000000000, -0.19999999999999996, 0.0 },
6266   { 0.96156696230910810, 2.0000000000000000, 2.0000000000000000,
6267 	  10.000000000000000, -0.099999999999999978, 0.0 },
6268   { 1.0000000000000000, 2.0000000000000000, 2.0000000000000000,
6269 	  10.000000000000000, 0.0000000000000000, 0.0 },
6270   { 1.0417127776179342, 2.0000000000000000, 2.0000000000000000,
6271 	  10.000000000000000, 0.10000000000000009, 0.0 },
6272   { 1.0871896789480930, 2.0000000000000000, 2.0000000000000000,
6273 	  10.000000000000000, 0.20000000000000018, 0.0 },
6274   { 1.1370264514689949, 2.0000000000000000, 2.0000000000000000,
6275 	  10.000000000000000, 0.30000000000000004, 0.0 },
6276   { 1.1919677804049158, 2.0000000000000000, 2.0000000000000000,
6277 	  10.000000000000000, 0.40000000000000013, 0.0 },
6278   { 1.2529628761065934, 2.0000000000000000, 2.0000000000000000,
6279 	  10.000000000000000, 0.50000000000000000, 0.0 },
6280   { 1.3212511796458866, 2.0000000000000000, 2.0000000000000000,
6281 	  10.000000000000000, 0.60000000000000009, 0.0 },
6282   { 1.3985017309668506, 2.0000000000000000, 2.0000000000000000,
6283 	  10.000000000000000, 0.70000000000000018, 0.0 },
6284   { 1.4870567523847895, 2.0000000000000000, 2.0000000000000000,
6285 	  10.000000000000000, 0.80000000000000004, 0.0 },
6286   { 1.5904049523738044, 2.0000000000000000, 2.0000000000000000,
6287 	  10.000000000000000, 0.90000000000000013, 0.0 },
6288 };
6289 const double toler125 = 2.5000000000000020e-13;
6290 
6291 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
6292 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
6293 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
6294 // mean(f - f_GSL): 5.5487040400966458e-12
6295 // variance(f - f_GSL): 5.4399356990620132e-22
6296 // stddev(f - f_GSL): 2.3323669734975269e-11
6297 const testcase_hyperg<double>
6298 data126[19] =
6299 {
6300   { 0.040386107340619273, 2.0000000000000000, 5.0000000000000000,
6301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6302   { 0.052922149401344633, 2.0000000000000000, 5.0000000000000000,
6303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6304   { 0.070429627772374270, 2.0000000000000000, 5.0000000000000000,
6305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6306   { 0.095367431640624986, 2.0000000000000000, 5.0000000000000000,
6307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6308   { 0.13168724279835389, 2.0000000000000000, 5.0000000000000000,
6309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6310   { 0.18593443208187072, 2.0000000000000000, 5.0000000000000000,
6311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6312   { 0.26932907434290460, 2.0000000000000000, 5.0000000000000000,
6313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6314   { 0.40187757201646102, 2.0000000000000000, 5.0000000000000000,
6315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6316   { 0.62092132305915493, 2.0000000000000000, 5.0000000000000000,
6317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6318   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6320   { 1.6935087808430296, 2.0000000000000000, 5.0000000000000000,
6321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6322   { 3.0517578125000036, 2.0000000000000000, 5.0000000000000000,
6323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6324   { 5.9499018266198629, 2.0000000000000000, 5.0000000000000000,
6325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6326   { 12.860082304526767, 2.0000000000000000, 5.0000000000000000,
6327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6328   { 32.000000000000000, 2.0000000000000000, 5.0000000000000000,
6329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6330   { 97.656250000000114, 2.0000000000000000, 5.0000000000000000,
6331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6332   { 411.52263374485722, 2.0000000000000000, 5.0000000000000000,
6333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6334   { 3124.9999999999995, 2.0000000000000000, 5.0000000000000000,
6335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6336   { 100000.00000000055, 2.0000000000000000, 5.0000000000000000,
6337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6338 };
6339 const double toler126 = 2.5000000000000020e-13;
6340 
6341 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
6342 // max(|f - f_GSL|): 6.8212102632969618e-13 at index 18
6343 // max(|f - f_GSL| / |f_GSL|): 1.2402200478721734e-15
6344 // mean(f - f_GSL): 3.8828589466495609e-14
6345 // variance(f - f_GSL): 2.4267524775254640e-26
6346 // stddev(f - f_GSL): 1.5578037352392837e-13
6347 const testcase_hyperg<double>
6348 data127[19] =
6349 {
6350   { 0.21140107887447138, 2.0000000000000000, 5.0000000000000000,
6351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6352   { 0.24005486968449927, 2.0000000000000000, 5.0000000000000000,
6353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6354   { 0.27478119275391810, 2.0000000000000000, 5.0000000000000000,
6355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6356   { 0.31738281250000006, 2.0000000000000000, 5.0000000000000000,
6357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6358   { 0.37037037037037024, 2.0000000000000000, 5.0000000000000000,
6359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6360   { 0.43731778425655982, 2.0000000000000000, 5.0000000000000000,
6361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6362   { 0.52344105598543467, 2.0000000000000000, 5.0000000000000000,
6363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6364   { 0.63657407407407429, 2.0000000000000000, 5.0000000000000000,
6365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6366   { 0.78888054094665638, 2.0000000000000000, 5.0000000000000000,
6367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6368   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6370   { 1.3031550068587108, 2.0000000000000000, 5.0000000000000000,
6371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6372   { 1.7578125000000011, 2.0000000000000000, 5.0000000000000000,
6373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6374   { 2.4781341107871717, 2.0000000000000000, 5.0000000000000000,
6375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6376   { 3.7037037037037073, 2.0000000000000000, 5.0000000000000000,
6377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6378   { 5.9999999999999982, 2.0000000000000000, 5.0000000000000000,
6379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6380   { 10.937500000000005, 2.0000000000000000, 5.0000000000000000,
6381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6382   { 24.074074074074115, 2.0000000000000000, 5.0000000000000000,
6383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6384   { 74.999999999999957, 2.0000000000000000, 5.0000000000000000,
6385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6386   { 550.00000000000068, 2.0000000000000000, 5.0000000000000000,
6387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6388 };
6389 const double toler127 = 2.5000000000000020e-13;
6390 
6391 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
6392 // max(|f - f_GSL|): 4.9737991503207013e-14 at index 18
6393 // max(|f - f_GSL| / |f_GSL|): 1.6580642616864621e-15
6394 // mean(f - f_GSL): 3.1670572597201835e-15
6395 // variance(f - f_GSL): 1.2718576052442072e-28
6396 // stddev(f - f_GSL): 1.1277666448535384e-14
6397 const testcase_hyperg<double>
6398 data128[19] =
6399 {
6400   { 0.33250915203252129, 2.0000000000000000, 5.0000000000000000,
6401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6402   { 0.36566851047721943, 2.0000000000000000, 5.0000000000000000,
6403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6404   { 0.40414812182437959, 2.0000000000000000, 5.0000000000000000,
6405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6406   { 0.44916943268118498, 2.0000000000000000, 5.0000000000000000,
6407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6408   { 0.50233081077479547, 2.0000000000000000, 5.0000000000000000,
6409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6410   { 0.56575808728873322, 2.0000000000000000, 5.0000000000000000,
6411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6412   { 0.64233106844971455, 2.0000000000000000, 5.0000000000000000,
6413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6414   { 0.73603371116919514, 2.0000000000000000, 5.0000000000000000,
6415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6416   { 0.85251256240112439, 2.0000000000000000, 5.0000000000000000,
6417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6418   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6420   { 1.1909065696197674, 2.0000000000000000, 5.0000000000000000,
6421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6422   { 1.4447095285569318, 2.0000000000000000, 5.0000000000000000,
6423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6424   { 1.7935243137840653, 2.0000000000000000, 5.0000000000000000,
6425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6426   { 2.2937035820494467, 2.0000000000000000, 5.0000000000000000,
6427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6428   { 3.0524711083016687, 2.0000000000000000, 5.0000000000000000,
6429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6430   { 4.2976512669354259, 2.0000000000000000, 5.0000000000000000,
6431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6432   { 6.5977107563194739, 2.0000000000000000, 5.0000000000000000,
6433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6434   { 11.793747206577530, 2.0000000000000000, 5.0000000000000000,
6435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6436   { 29.997625937982132, 2.0000000000000000, 5.0000000000000000,
6437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6438 };
6439 const double toler128 = 2.5000000000000020e-13;
6440 
6441 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
6442 // max(|f - f_GSL|): 1.1546319456101628e-14 at index 18
6443 // max(|f - f_GSL| / |f_GSL|): 1.4852319937858925e-15
6444 // mean(f - f_GSL): 8.5896202431525265e-16
6445 // variance(f - f_GSL): 6.6980634833963886e-30
6446 // stddev(f - f_GSL): 2.5880617232586221e-15
6447 const testcase_hyperg<double>
6448 data129[19] =
6449 {
6450   { 0.42108197362250294, 2.0000000000000000, 5.0000000000000000,
6451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6452   { 0.45503172013983040, 2.0000000000000000, 5.0000000000000000,
6453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6454   { 0.49345609813624314, 2.0000000000000000, 5.0000000000000000,
6455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6456   { 0.53720880551221295, 2.0000000000000000, 5.0000000000000000,
6457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6458   { 0.58736431524847466, 2.0000000000000000, 5.0000000000000000,
6459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6460   { 0.64529222467897995, 2.0000000000000000, 5.0000000000000000,
6461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6462   { 0.71276337354393959, 2.0000000000000000, 5.0000000000000000,
6463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6464   { 0.79210466220795306, 2.0000000000000000, 5.0000000000000000,
6465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6466   { 0.88643063455510596, 2.0000000000000000, 5.0000000000000000,
6467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6468   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6470   { 1.1387832139040652, 2.0000000000000000, 5.0000000000000000,
6471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6472   { 1.3114025920844754, 2.0000000000000000, 5.0000000000000000,
6473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6474   { 1.5307655016768162, 2.0000000000000000, 5.0000000000000000,
6475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6476   { 1.8170727950333352, 2.0000000000000000, 5.0000000000000000,
6477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6478   { 2.2037865486700836, 2.0000000000000000, 5.0000000000000000,
6479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6480   { 2.7506766056439380, 2.0000000000000000, 5.0000000000000000,
6481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6482   { 3.5764534935716998, 2.0000000000000000, 5.0000000000000000,
6483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6484   { 4.9587762302155403, 2.0000000000000000, 5.0000000000000000,
6485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6486   { 7.7740847924166907, 2.0000000000000000, 5.0000000000000000,
6487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6488 };
6489 const double toler129 = 2.5000000000000020e-13;
6490 
6491 // Test data for a=2.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
6492 // max(|f - f_GSL|): 4.4408920985006262e-15 at index 18
6493 // max(|f - f_GSL| / |f_GSL|): 1.0721199711322765e-15
6494 // mean(f - f_GSL): 3.5059674461847049e-16
6495 // variance(f - f_GSL): 9.8111051098089205e-31
6496 // stddev(f - f_GSL): 9.9051022760034740e-16
6497 const testcase_hyperg<double>
6498 data130[19] =
6499 {
6500   { 0.48860241312958436, 2.0000000000000000, 5.0000000000000000,
6501 	  10.000000000000000, -0.90000000000000002, 0.0 },
6502   { 0.52193382517068487, 2.0000000000000000, 5.0000000000000000,
6503 	  10.000000000000000, -0.80000000000000004, 0.0 },
6504   { 0.55902375003954219, 2.0000000000000000, 5.0000000000000000,
6505 	  10.000000000000000, -0.69999999999999996, 0.0 },
6506   { 0.60049055150230324, 2.0000000000000000, 5.0000000000000000,
6507 	  10.000000000000000, -0.59999999999999998, 0.0 },
6508   { 0.64709127927203469, 2.0000000000000000, 5.0000000000000000,
6509 	  10.000000000000000, -0.50000000000000000, 0.0 },
6510   { 0.69976233335368998, 2.0000000000000000, 5.0000000000000000,
6511 	  10.000000000000000, -0.39999999999999991, 0.0 },
6512   { 0.75967529501080988, 2.0000000000000000, 5.0000000000000000,
6513 	  10.000000000000000, -0.29999999999999993, 0.0 },
6514   { 0.82831498895254407, 2.0000000000000000, 5.0000000000000000,
6515 	  10.000000000000000, -0.19999999999999996, 0.0 },
6516   { 0.90759090169653933, 2.0000000000000000, 5.0000000000000000,
6517 	  10.000000000000000, -0.099999999999999978, 0.0 },
6518   { 1.0000000000000000, 2.0000000000000000, 5.0000000000000000,
6519 	  10.000000000000000, 0.0000000000000000, 0.0 },
6520   { 1.1088712278667465, 2.0000000000000000, 5.0000000000000000,
6521 	  10.000000000000000, 0.10000000000000009, 0.0 },
6522   { 1.2387445478440855, 2.0000000000000000, 5.0000000000000000,
6523 	  10.000000000000000, 0.20000000000000018, 0.0 },
6524   { 1.3959812720437546, 2.0000000000000000, 5.0000000000000000,
6525 	  10.000000000000000, 0.30000000000000004, 0.0 },
6526   { 1.5897930661091169, 2.0000000000000000, 5.0000000000000000,
6527 	  10.000000000000000, 0.40000000000000013, 0.0 },
6528   { 1.8340789380307454, 2.0000000000000000, 5.0000000000000000,
6529 	  10.000000000000000, 0.50000000000000000, 0.0 },
6530   { 2.1509548085970764, 2.0000000000000000, 5.0000000000000000,
6531 	  10.000000000000000, 0.60000000000000009, 0.0 },
6532   { 2.5782406951207526, 2.0000000000000000, 5.0000000000000000,
6533 	  10.000000000000000, 0.70000000000000018, 0.0 },
6534   { 3.1877847194242737, 2.0000000000000000, 5.0000000000000000,
6535 	  10.000000000000000, 0.80000000000000004, 0.0 },
6536   { 4.1421596631676918, 2.0000000000000000, 5.0000000000000000,
6537 	  10.000000000000000, 0.90000000000000013, 0.0 },
6538 };
6539 const double toler130 = 2.5000000000000020e-13;
6540 
6541 // Test data for a=2.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
6542 // max(|f - f_GSL|): 2.2888183593750000e-05 at index 18
6543 // max(|f - f_GSL| / |f_GSL|): 2.4795532226562509e-15
6544 // mean(f - f_GSL): 1.2059140510950354e-06
6545 // variance(f - f_GSL): 2.7568813079896666e-11
6546 // stddev(f - f_GSL): 5.2506012112801583e-06
6547 const testcase_hyperg<double>
6548 data131[19] =
6549 {
6550   { 0.0016310376661280216, 2.0000000000000000, 10.000000000000000,
6551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6552   { 0.0028007538972582421, 2.0000000000000000, 10.000000000000000,
6553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6554   { 0.0049603324681551939, 2.0000000000000000, 10.000000000000000,
6555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6556   { 0.0090949470177292789, 2.0000000000000000, 10.000000000000000,
6557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6558   { 0.017341529915832606, 2.0000000000000000, 10.000000000000000,
6559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6560   { 0.034571613033607791, 2.0000000000000000, 10.000000000000000,
6561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6562   { 0.072538150286405839, 2.0000000000000000, 10.000000000000000,
6563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6564   { 0.16150558288984579, 2.0000000000000000, 10.000000000000000,
6565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6566   { 0.38554328942953142, 2.0000000000000000, 10.000000000000000,
6567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6568   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6570   { 2.8679719907924444, 2.0000000000000000, 10.000000000000000,
6571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6572   { 9.3132257461548065, 2.0000000000000000, 10.000000000000000,
6573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6574   { 35.401331746414378, 2.0000000000000000, 10.000000000000000,
6575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6576   { 165.38171687920246, 2.0000000000000000, 10.000000000000000,
6577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6578   { 1024.0000000000000, 2.0000000000000000, 10.000000000000000,
6579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6580   { 9536.7431640625218, 2.0000000000000000, 10.000000000000000,
6581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6582   { 169350.87808430390, 2.0000000000000000, 10.000000000000000,
6583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6584   { 9765624.9999999963, 2.0000000000000000, 10.000000000000000,
6585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6586   { 10000000000.000111, 2.0000000000000000, 10.000000000000000,
6587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6588 };
6589 const double toler131 = 2.5000000000000020e-13;
6590 
6591 // Test data for a=2.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
6592 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
6593 // max(|f - f_GSL| / |f_GSL|): 1.4958811384436608e-15
6594 // mean(f - f_GSL): 7.8582773037277017e-10
6595 // variance(f - f_GSL): 1.1683981904064149e-17
6596 // stddev(f - f_GSL): 3.4181840067591665e-09
6597 const testcase_hyperg<double>
6598 data132[19] =
6599 {
6600   { 0.071191280690193537, 2.0000000000000000, 10.000000000000000,
6601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6602   { 0.085646504654238384, 2.0000000000000000, 10.000000000000000,
6603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6604   { 0.10478215656371109, 2.0000000000000000, 10.000000000000000,
6605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6606   { 0.13074816337653578, 2.0000000000000000, 10.000000000000000,
6607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6608   { 0.16701141666848118, 2.0000000000000000, 10.000000000000000,
6609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6610   { 0.21939323375313963, 2.0000000000000000, 10.000000000000000,
6611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6612   { 0.29813515331786639, 2.0000000000000000, 10.000000000000000,
6613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6614   { 0.42225974638874397, 2.0000000000000000, 10.000000000000000,
6615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6616   { 0.62942145962174878, 2.0000000000000000, 10.000000000000000,
6617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6618   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6620   { 1.7218685262373197, 2.0000000000000000, 10.000000000000000,
6621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6622   { 3.2855760483514738, 2.0000000000000000, 10.000000000000000,
6623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6624   { 7.1616652508907093, 2.0000000000000000, 10.000000000000000,
6625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6626   { 18.612326808485950, 2.0000000000000000, 10.000000000000000,
6627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6628   { 61.476190476190474, 2.0000000000000000, 10.000000000000000,
6629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6630   { 286.27580915178623, 2.0000000000000000, 10.000000000000000,
6631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6632   { 2274.9441142102414, 2.0000000000000000, 10.000000000000000,
6633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6634   { 47229.761904761865, 2.0000000000000000, 10.000000000000000,
6635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6636   { 9961460.7142858077, 2.0000000000000000, 10.000000000000000,
6637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6638 };
6639 const double toler132 = 2.5000000000000020e-13;
6640 
6641 // Test data for a=2.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
6642 // max(|f - f_GSL|): 8.7311491370201111e-11 at index 18
6643 // max(|f - f_GSL| / |f_GSL|): 1.5843951771650161e-15
6644 // mean(f - f_GSL): 4.6467391338242840e-12
6645 // variance(f - f_GSL): 4.0072766661644994e-22
6646 // stddev(f - f_GSL): 2.0018183399510804e-11
6647 const testcase_hyperg<double>
6648 data133[19] =
6649 {
6650   { 0.14747230019381058, 2.0000000000000000, 10.000000000000000,
6651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6652   { 0.17073600100690609, 2.0000000000000000, 10.000000000000000,
6653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6654   { 0.19982795745135354, 2.0000000000000000, 10.000000000000000,
6655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6656   { 0.23681776864188053, 2.0000000000000000, 10.000000000000000,
6657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6658   { 0.28475624360398011, 2.0000000000000000, 10.000000000000000,
6659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6660   { 0.34827500743063161, 2.0000000000000000, 10.000000000000000,
6661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6662   { 0.43464829159684687, 2.0000000000000000, 10.000000000000000,
6663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6664   { 0.55576053438064787, 2.0000000000000000, 10.000000000000000,
6665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6666   { 0.73195020913445530, 2.0000000000000000, 10.000000000000000,
6667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6668   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6670   { 1.4310223867822929, 2.0000000000000000, 10.000000000000000,
6671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6672   { 2.1742563399057566, 2.0000000000000000, 10.000000000000000,
6673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6674   { 3.5769231236256043, 2.0000000000000000, 10.000000000000000,
6675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6676   { 6.5620441134844469, 2.0000000000000000, 10.000000000000000,
6677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6678   { 14.063492063492063, 2.0000000000000000, 10.000000000000000,
6679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6680   { 38.085937500000036, 2.0000000000000000, 10.000000000000000,
6681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6682   { 150.92973632068330, 2.0000000000000000, 10.000000000000000,
6683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6684   { 1212.3015873015852, 2.0000000000000000, 10.000000000000000,
6685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6686   { 55107.142857143110, 2.0000000000000000, 10.000000000000000,
6687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6688 };
6689 const double toler133 = 2.5000000000000020e-13;
6690 
6691 // Test data for a=2.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
6692 // max(|f - f_GSL|): 1.8189894035458565e-12 at index 18
6693 // max(|f - f_GSL| / |f_GSL|): 1.4848893090170230e-15
6694 // mean(f - f_GSL): 1.0027066896088256e-13
6695 // variance(f - f_GSL): 1.7322804840633983e-25
6696 // stddev(f - f_GSL): 4.1620673757922257e-13
6697 const testcase_hyperg<double>
6698 data134[19] =
6699 {
6700   { 0.21658059714090577, 2.0000000000000000, 10.000000000000000,
6701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6702   { 0.24513539602702861, 2.0000000000000000, 10.000000000000000,
6703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6704   { 0.27967018274845046, 2.0000000000000000, 10.000000000000000,
6705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6706   { 0.32196044921875022, 2.0000000000000000, 10.000000000000000,
6707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6708   { 0.37448559670781911, 2.0000000000000000, 10.000000000000000,
6709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6710   { 0.44078856032208802, 2.0000000000000000, 10.000000000000000,
6711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6712   { 0.52606701446027793, 2.0000000000000000, 10.000000000000000,
6713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6714   { 0.63818158436213956, 2.0000000000000000, 10.000000000000000,
6715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6716   { 0.78944971882612769, 2.0000000000000000, 10.000000000000000,
6717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6718   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6720   { 1.3044251384443430, 2.0000000000000000, 10.000000000000000,
6721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6722   { 1.7659505208333344, 2.0000000000000000, 10.000000000000000,
6723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6724   { 2.5093710953769270, 2.0000000000000000, 10.000000000000000,
6725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6726   { 3.8065843621399202, 2.0000000000000000, 10.000000000000000,
6727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6728   { 6.3333333333333313, 2.0000000000000000, 10.000000000000000,
6729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6730   { 12.109375000000004, 2.0000000000000000, 10.000000000000000,
6731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6732   { 29.115226337448608, 2.0000000000000000, 10.000000000000000,
6733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6734   { 108.33333333333330, 2.0000000000000000, 10.000000000000000,
6735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6736   { 1225.0000000000023, 2.0000000000000000, 10.000000000000000,
6737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6738 };
6739 const double toler134 = 2.5000000000000020e-13;
6740 
6741 // Test data for a=2.0000000000000000, b=10.000000000000000, c=10.000000000000000.
6742 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
6743 // max(|f - f_GSL| / |f_GSL|): 4.2632564145605916e-16
6744 // mean(f - f_GSL): 2.3636063866361887e-15
6745 // variance(f - f_GSL): 9.5093179694074762e-29
6746 // stddev(f - f_GSL): 9.7515731907254209e-15
6747 const testcase_hyperg<double>
6748 data135[19] =
6749 {
6750   { 0.27700831024930750, 2.0000000000000000, 10.000000000000000,
6751 	  10.000000000000000, -0.90000000000000002, 0.0 },
6752   { 0.30864197530864196, 2.0000000000000000, 10.000000000000000,
6753 	  10.000000000000000, -0.80000000000000004, 0.0 },
6754   { 0.34602076124567477, 2.0000000000000000, 10.000000000000000,
6755 	  10.000000000000000, -0.69999999999999996, 0.0 },
6756   { 0.39062500000000000, 2.0000000000000000, 10.000000000000000,
6757 	  10.000000000000000, -0.59999999999999998, 0.0 },
6758   { 0.44444444444444442, 2.0000000000000000, 10.000000000000000,
6759 	  10.000000000000000, -0.50000000000000000, 0.0 },
6760   { 0.51020408163265318, 2.0000000000000000, 10.000000000000000,
6761 	  10.000000000000000, -0.39999999999999991, 0.0 },
6762   { 0.59171597633136108, 2.0000000000000000, 10.000000000000000,
6763 	  10.000000000000000, -0.29999999999999993, 0.0 },
6764   { 0.69444444444444442, 2.0000000000000000, 10.000000000000000,
6765 	  10.000000000000000, -0.19999999999999996, 0.0 },
6766   { 0.82644628099173545, 2.0000000000000000, 10.000000000000000,
6767 	  10.000000000000000, -0.099999999999999978, 0.0 },
6768   { 1.0000000000000000, 2.0000000000000000, 10.000000000000000,
6769 	  10.000000000000000, 0.0000000000000000, 0.0 },
6770   { 1.2345679012345683, 2.0000000000000000, 10.000000000000000,
6771 	  10.000000000000000, 0.10000000000000009, 0.0 },
6772   { 1.5625000000000007, 2.0000000000000000, 10.000000000000000,
6773 	  10.000000000000000, 0.20000000000000018, 0.0 },
6774   { 2.0408163265306127, 2.0000000000000000, 10.000000000000000,
6775 	  10.000000000000000, 0.30000000000000004, 0.0 },
6776   { 2.7777777777777795, 2.0000000000000000, 10.000000000000000,
6777 	  10.000000000000000, 0.40000000000000013, 0.0 },
6778   { 4.0000000000000000, 2.0000000000000000, 10.000000000000000,
6779 	  10.000000000000000, 0.50000000000000000, 0.0 },
6780   { 6.2500000000000027, 2.0000000000000000, 10.000000000000000,
6781 	  10.000000000000000, 0.60000000000000009, 0.0 },
6782   { 11.111111111111125, 2.0000000000000000, 10.000000000000000,
6783 	  10.000000000000000, 0.70000000000000018, 0.0 },
6784   { 25.000000000000007, 2.0000000000000000, 10.000000000000000,
6785 	  10.000000000000000, 0.80000000000000004, 0.0 },
6786   { 100.00000000000023, 2.0000000000000000, 10.000000000000000,
6787 	  10.000000000000000, 0.90000000000000013, 0.0 },
6788 };
6789 const double toler135 = 2.5000000000000020e-13;
6790 
6791 // Test data for a=2.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
6792 // max(|f - f_GSL|): 475136.00000000000 at index 18
6793 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
6794 // mean(f - f_GSL): 25007.185032091642
6795 // variance(f - f_GSL): 11881799540.814577
6796 // stddev(f - f_GSL): 109003.66755671379
6797 const testcase_hyperg<double>
6798 data136[19] =
6799 {
6800   { 2.6602838683283435e-06, 2.0000000000000000, 20.000000000000000,
6801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
6802   { 7.8442223930072316e-06, 2.0000000000000000, 20.000000000000000,
6803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
6804   { 2.4604898194634598e-05, 2.0000000000000000, 20.000000000000000,
6805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
6806   { 8.2718061255302686e-05, 2.0000000000000000, 20.000000000000000,
6807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
6808   { 0.00030072865982171723, 2.0000000000000000, 20.000000000000000,
6809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
6810   { 0.0011951964277455204, 2.0000000000000000, 20.000000000000000,
6811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
6812   { 0.0052617832469731996, 2.0000000000000000, 20.000000000000000,
6813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
6814   { 0.026084053304588850, 2.0000000000000000, 20.000000000000000,
6815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
6816   { 0.14864362802414346, 2.0000000000000000, 20.000000000000000,
6817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
6818   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
6820   { 8.2252633399699757, 2.0000000000000000, 20.000000000000000,
6821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
6822   { 86.736173798840738, 2.0000000000000000, 20.000000000000000,
6823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
6824   { 1253.2542894196868, 2.0000000000000000, 20.000000000000000,
6825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
6826   { 27351.112277912678, 2.0000000000000000, 20.000000000000000,
6827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
6828   { 1048576.0000000000, 2.0000000000000000, 20.000000000000000,
6829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
6830   { 90949470.177293226, 2.0000000000000000, 20.000000000000000,
6831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
6832   { 28679719907.924767, 2.0000000000000000, 20.000000000000000,
6833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
6834   { 95367431640624.906, 2.0000000000000000, 20.000000000000000,
6835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
6836   { 1.0000000000000220e+20, 2.0000000000000000, 20.000000000000000,
6837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
6838 };
6839 const double toler136 = 5.0000000000000039e-13;
6840 
6841 // Test data for a=2.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
6842 // max(|f - f_GSL|): 40.000000000000000 at index 18
6843 // max(|f - f_GSL| / |f_GSL|): 1.8712609271522778e-15
6844 // mean(f - f_GSL): 2.1052671749403089
6845 // variance(f - f_GSL): 84.210508462254538
6846 // stddev(f - f_GSL): 9.1766283820504881
6847 const testcase_hyperg<double>
6848 data137[19] =
6849 {
6850   { 0.018828092583720632, 2.0000000000000000, 20.000000000000000,
6851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
6852   { 0.023381944060455365, 2.0000000000000000, 20.000000000000000,
6853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
6854   { 0.029789623984280887, 2.0000000000000000, 20.000000000000000,
6855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
6856   { 0.039191021482500567, 2.0000000000000000, 20.000000000000000,
6857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
6858   { 0.053727813036721528, 2.0000000000000000, 20.000000000000000,
6859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
6860   { 0.077762010061668857, 2.0000000000000000, 20.000000000000000,
6861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
6862   { 0.12110505620123323, 2.0000000000000000, 20.000000000000000,
6863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
6864   { 0.20870149809080582, 2.0000000000000000, 20.000000000000000,
6865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
6866   { 0.41429234328785763, 2.0000000000000000, 20.000000000000000,
6867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
6868   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
6870   { 3.1308087404153113, 2.0000000000000000, 20.000000000000000,
6871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
6872   { 13.586180626453100, 2.0000000000000000, 20.000000000000000,
6873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
6874   { 87.117304082784415, 2.0000000000000000, 20.000000000000000,
6875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
6876   { 889.26474381243384, 2.0000000000000000, 20.000000000000000,
6877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
6878   { 16231.913312693494, 2.0000000000000000, 20.000000000000000,
6879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
6880   { 653537.51168945129, 2.0000000000000000, 20.000000000000000,
6881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
6882   { 87756230.793849647, 2.0000000000000000, 20.000000000000000,
6883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
6884   { 101493977171.74945, 2.0000000000000000, 20.000000000000000,
6885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
6886   { 21375960679557820., 2.0000000000000000, 20.000000000000000,
6887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
6888 };
6889 const double toler137 = 2.5000000000000020e-13;
6890 
6891 // Test data for a=2.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
6892 // max(|f - f_GSL|): 0.031250000000000000 at index 18
6893 // max(|f - f_GSL| / |f_GSL|): 1.6379336164121759e-15
6894 // mean(f - f_GSL): 0.0016447556893365942
6895 // variance(f - f_GSL): 5.1397960874034849e-05
6896 // stddev(f - f_GSL): 0.0071692371193896806
6897 const testcase_hyperg<double>
6898 data138[19] =
6899 {
6900   { 0.049200410661854238, 2.0000000000000000, 20.000000000000000,
6901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
6902   { 0.059460876757152607, 2.0000000000000000, 20.000000000000000,
6903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
6904   { 0.073244762686653225, 2.0000000000000000, 20.000000000000000,
6905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
6906   { 0.092334626017932769, 2.0000000000000000, 20.000000000000000,
6907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
6908   { 0.11976760350696856, 2.0000000000000000, 20.000000000000000,
6909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
6910   { 0.16102414609169405, 2.0000000000000000, 20.000000000000000,
6911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
6912   { 0.22670456785796236, 2.0000000000000000, 20.000000000000000,
6913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
6914   { 0.33912903252727361, 2.0000000000000000, 20.000000000000000,
6915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
6916   { 0.55049794600858049, 2.0000000000000000, 20.000000000000000,
6917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
6918   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
6920   { 2.1254722872032232, 2.0000000000000000, 20.000000000000000,
6921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
6922   { 5.6261213886736314, 2.0000000000000000, 20.000000000000000,
6923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
6924   { 20.137315891130996, 2.0000000000000000, 20.000000000000000,
6925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
6926   { 108.04381584643900, 2.0000000000000000, 20.000000000000000,
6927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
6928   { 992.41692466460245, 2.0000000000000000, 20.000000000000000,
6929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
6930   { 19055.363816004465, 2.0000000000000000, 20.000000000000000,
6931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
6932   { 1105471.9504312191, 2.0000000000000000, 20.000000000000000,
6933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
6934   { 448521363.90608919, 2.0000000000000000, 20.000000000000000,
6935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
6936   { 19078917293639.652, 2.0000000000000000, 20.000000000000000,
6937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
6938 };
6939 const double toler138 = 2.5000000000000020e-13;
6940 
6941 // Test data for a=2.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
6942 // max(|f - f_GSL|): 8.3923339843750000e-05 at index 18
6943 // max(|f - f_GSL| / |f_GSL|): 1.8221514326726564e-15
6944 // mean(f - f_GSL): 4.4172143495227617e-06
6945 // variance(f - f_GSL): 3.7068906120670492e-10
6946 // stddev(f - f_GSL): 1.9253287023433297e-05
6947 const testcase_hyperg<double>
6948 data139[19] =
6949 {
6950   { 0.083753547015334884, 2.0000000000000000, 20.000000000000000,
6951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
6952   { 0.099238444687035743, 2.0000000000000000, 20.000000000000000,
6953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
6954   { 0.11938294012867748, 2.0000000000000000, 20.000000000000000,
6955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
6956   { 0.14622683905023329, 2.0000000000000000, 20.000000000000000,
6957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
6958   { 0.18303556733713028, 2.0000000000000000, 20.000000000000000,
6959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
6960   { 0.23527764069382415, 2.0000000000000000, 20.000000000000000,
6961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
6962   { 0.31261681740827069, 2.0000000000000000, 20.000000000000000,
6963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
6964   { 0.43327581880538862, 2.0000000000000000, 20.000000000000000,
6965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
6966   { 0.63445840637296680, 2.0000000000000000, 20.000000000000000,
6967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
6968   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
6969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
6970   { 1.7438842395813297, 2.0000000000000000, 20.000000000000000,
6971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
6972   { 3.5070840938209331, 2.0000000000000000, 20.000000000000000,
6973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
6974   { 8.6573372006089713, 2.0000000000000000, 20.000000000000000,
6975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
6976   { 28.779342118408998, 2.0000000000000000, 20.000000000000000,
6977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
6978   { 147.50178613955714, 2.0000000000000000, 20.000000000000000,
6979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
6980   { 1427.1686016136398, 2.0000000000000000, 20.000000000000000,
6981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
6982   { 36780.643714655955, 2.0000000000000000, 20.000000000000000,
6983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
6984   { 5313869.6058585485, 2.0000000000000000, 20.000000000000000,
6985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
6986   { 46057280607.383286, 2.0000000000000000, 20.000000000000000,
6987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
6988 };
6989 const double toler139 = 2.5000000000000020e-13;
6990 
6991 // Test data for a=2.0000000000000000, b=20.000000000000000, c=10.000000000000000.
6992 // max(|f - f_GSL|): 5.0663948059082031e-07 at index 18
6993 // max(|f - f_GSL| / |f_GSL|): 1.9925479281069681e-15
6994 // mean(f - f_GSL): 2.6669880993704522e-08
6995 // variance(f - f_GSL): 1.3509399735218820e-14
6996 // stddev(f - f_GSL): 1.1622994336752823e-07
6997 const testcase_hyperg<double>
6998 data140[19] =
6999 {
7000   { 0.11920045035073676, 2.0000000000000000, 20.000000000000000,
7001 	  10.000000000000000, -0.90000000000000002, 0.0 },
7002   { 0.13907946814302777, 2.0000000000000000, 20.000000000000000,
7003 	  10.000000000000000, -0.80000000000000004, 0.0 },
7004   { 0.16431439792559696, 2.0000000000000000, 20.000000000000000,
7005 	  10.000000000000000, -0.69999999999999996, 0.0 },
7006   { 0.19698796016986989, 2.0000000000000000, 20.000000000000000,
7007 	  10.000000000000000, -0.59999999999999998, 0.0 },
7008   { 0.24028510928790547, 2.0000000000000000, 20.000000000000000,
7009 	  10.000000000000000, -0.50000000000000000, 0.0 },
7010   { 0.29926031296483130, 2.0000000000000000, 20.000000000000000,
7011 	  10.000000000000000, -0.39999999999999991, 0.0 },
7012   { 0.38229327814229175, 2.0000000000000000, 20.000000000000000,
7013 	  10.000000000000000, -0.29999999999999993, 0.0 },
7014   { 0.50402047283093132, 2.0000000000000000, 20.000000000000000,
7015 	  10.000000000000000, -0.19999999999999996, 0.0 },
7016   { 0.69167261179586526, 2.0000000000000000, 20.000000000000000,
7017 	  10.000000000000000, -0.099999999999999978, 0.0 },
7018   { 1.0000000000000000, 2.0000000000000000, 20.000000000000000,
7019 	  10.000000000000000, 0.0000000000000000, 0.0 },
7020   { 1.5503152253394308, 2.0000000000000000, 20.000000000000000,
7021 	  10.000000000000000, 0.10000000000000009, 0.0 },
7022   { 2.6469548193635828, 2.0000000000000000, 20.000000000000000,
7023 	  10.000000000000000, 0.20000000000000018, 0.0 },
7024   { 5.1882631330566813, 2.0000000000000000, 20.000000000000000,
7025 	  10.000000000000000, 0.30000000000000004, 0.0 },
7026   { 12.476792759124546, 2.0000000000000000, 20.000000000000000,
7027 	  10.000000000000000, 0.40000000000000013, 0.0 },
7028   { 41.026391565091259, 2.0000000000000000, 20.000000000000000,
7029 	  10.000000000000000, 0.50000000000000000, 0.0 },
7030   { 220.92584715988204, 2.0000000000000000, 20.000000000000000,
7031 	  10.000000000000000, 0.60000000000000009, 0.0 },
7032   { 2677.0834450236389, 2.0000000000000000, 20.000000000000000,
7033 	  10.000000000000000, 0.70000000000000018, 0.0 },
7034   { 141774.31260689779, 2.0000000000000000, 20.000000000000000,
7035 	  10.000000000000000, 0.80000000000000004, 0.0 },
7036   { 254267148.83197621, 2.0000000000000000, 20.000000000000000,
7037 	  10.000000000000000, 0.90000000000000013, 0.0 },
7038 };
7039 const double toler140 = 2.5000000000000020e-13;
7040 
7041 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=2.0000000000000000.
7042 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7043 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7044 // mean(f - f_GSL): 0.0000000000000000
7045 // variance(f - f_GSL): 0.0000000000000000
7046 // stddev(f - f_GSL): 0.0000000000000000
7047 const testcase_hyperg<double>
7048 data141[19] =
7049 {
7050   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7052   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7054   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7056   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7058   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7060   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7062   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7064   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7066   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7068   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7070   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7072   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7074   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7076   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7078   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7080   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7082   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7084   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7086   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7088 };
7089 const double toler141 = 2.5000000000000020e-13;
7090 
7091 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=4.0000000000000000.
7092 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7093 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7094 // mean(f - f_GSL): 0.0000000000000000
7095 // variance(f - f_GSL): 0.0000000000000000
7096 // stddev(f - f_GSL): 0.0000000000000000
7097 const testcase_hyperg<double>
7098 data142[19] =
7099 {
7100   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7102   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7104   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7106   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7108   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7110   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7112   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7114   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7116   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7118   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7120   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7122   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7124   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7126   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7128   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7130   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7132   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7134   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7136   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7138 };
7139 const double toler142 = 2.5000000000000020e-13;
7140 
7141 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=6.0000000000000000.
7142 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7143 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7144 // mean(f - f_GSL): 0.0000000000000000
7145 // variance(f - f_GSL): 0.0000000000000000
7146 // stddev(f - f_GSL): 0.0000000000000000
7147 const testcase_hyperg<double>
7148 data143[19] =
7149 {
7150   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7152   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7154   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7156   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7158   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7160   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7162   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7164   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7166   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7168   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7170   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7172   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7174   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7176   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7178   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7180   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7182   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7184   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7186   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7188 };
7189 const double toler143 = 2.5000000000000020e-13;
7190 
7191 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=8.0000000000000000.
7192 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7193 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7194 // mean(f - f_GSL): 0.0000000000000000
7195 // variance(f - f_GSL): 0.0000000000000000
7196 // stddev(f - f_GSL): 0.0000000000000000
7197 const testcase_hyperg<double>
7198 data144[19] =
7199 {
7200   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7202   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7204   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7206   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7208   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7210   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7212   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7214   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7216   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7218   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7220   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7222   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7224   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7226   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7228   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7230   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7232   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7234   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7236   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7238 };
7239 const double toler144 = 2.5000000000000020e-13;
7240 
7241 // Test data for a=5.0000000000000000, b=0.0000000000000000, c=10.000000000000000.
7242 // max(|f - f_GSL|): 0.0000000000000000 at index 0
7243 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
7244 // mean(f - f_GSL): 0.0000000000000000
7245 // variance(f - f_GSL): 0.0000000000000000
7246 // stddev(f - f_GSL): 0.0000000000000000
7247 const testcase_hyperg<double>
7248 data145[19] =
7249 {
7250   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7251 	  10.000000000000000, -0.90000000000000002, 0.0 },
7252   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7253 	  10.000000000000000, -0.80000000000000004, 0.0 },
7254   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7255 	  10.000000000000000, -0.69999999999999996, 0.0 },
7256   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7257 	  10.000000000000000, -0.59999999999999998, 0.0 },
7258   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7259 	  10.000000000000000, -0.50000000000000000, 0.0 },
7260   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7261 	  10.000000000000000, -0.39999999999999991, 0.0 },
7262   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7263 	  10.000000000000000, -0.29999999999999993, 0.0 },
7264   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7265 	  10.000000000000000, -0.19999999999999996, 0.0 },
7266   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7267 	  10.000000000000000, -0.099999999999999978, 0.0 },
7268   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7269 	  10.000000000000000, 0.0000000000000000, 0.0 },
7270   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7271 	  10.000000000000000, 0.10000000000000009, 0.0 },
7272   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7273 	  10.000000000000000, 0.20000000000000018, 0.0 },
7274   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7275 	  10.000000000000000, 0.30000000000000004, 0.0 },
7276   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7277 	  10.000000000000000, 0.40000000000000013, 0.0 },
7278   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7279 	  10.000000000000000, 0.50000000000000000, 0.0 },
7280   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7281 	  10.000000000000000, 0.60000000000000009, 0.0 },
7282   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7283 	  10.000000000000000, 0.70000000000000018, 0.0 },
7284   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7285 	  10.000000000000000, 0.80000000000000004, 0.0 },
7286   { 1.0000000000000000, 5.0000000000000000, 0.0000000000000000,
7287 	  10.000000000000000, 0.90000000000000013, 0.0 },
7288 };
7289 const double toler145 = 2.5000000000000020e-13;
7290 
7291 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=2.0000000000000000.
7292 // max(|f - f_GSL|): 4.5474735088646412e-13 at index 18
7293 // max(|f - f_GSL| / |f_GSL|): 1.5124797514980592e-15
7294 // mean(f - f_GSL): 2.5336458077761468e-14
7295 // variance(f - f_GSL): 1.0813211674051158e-26
7296 // stddev(f - f_GSL): 1.0398659372270619e-13
7297 const testcase_hyperg<double>
7298 data146[19] =
7299 {
7300   { 0.52275983209457544, 5.0000000000000000, 0.50000000000000000,
7301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7302   { 0.54700336898143009, 5.0000000000000000, 0.50000000000000000,
7303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7304   { 0.57468955512602038, 5.0000000000000000, 0.50000000000000000,
7305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7306   { 0.60665490543315048, 5.0000000000000000, 0.50000000000000000,
7307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7308   { 0.64403057859056190, 5.0000000000000000, 0.50000000000000000,
7309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7310   { 0.68838183648623719, 5.0000000000000000, 0.50000000000000000,
7311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7312   { 0.74193265039311118, 5.0000000000000000, 0.50000000000000000,
7313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7314   { 0.80794095908995300, 5.0000000000000000, 0.50000000000000000,
7315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7316   { 0.89135275749639320, 5.0000000000000000, 0.50000000000000000,
7317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7318   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7320   { 1.1469266219310688, 5.0000000000000000, 0.50000000000000000,
7321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7322   { 1.3552340708357493, 5.0000000000000000, 0.50000000000000000,
7323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7324   { 1.6690840478838305, 5.0000000000000000, 0.50000000000000000,
7325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7326   { 2.1815415453174500, 5.0000000000000000, 0.50000000000000000,
7327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7328   { 3.1156892546032235, 5.0000000000000000, 0.50000000000000000,
7329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7330   { 5.1109077417760416, 5.0000000000000000, 0.50000000000000000,
7331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7332   { 10.560352936466318, 5.0000000000000000, 0.50000000000000000,
7333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7334   { 33.541019662496815, 5.0000000000000000, 0.50000000000000000,
7335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7336   { 300.66343065819723, 5.0000000000000000, 0.50000000000000000,
7337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7338 };
7339 const double toler146 = 2.5000000000000020e-13;
7340 
7341 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=4.0000000000000000.
7342 // max(|f - f_GSL|): 8.8817841970012523e-15 at index 18
7343 // max(|f - f_GSL| / |f_GSL|): 1.3217255411112292e-15
7344 // mean(f - f_GSL): 6.8950693108299193e-16
7345 // variance(f - f_GSL): 3.9356627445430313e-30
7346 // stddev(f - f_GSL): 1.9838504844224102e-15
7347 const testcase_hyperg<double>
7348 data147[19] =
7349 {
7350   { 0.68252041951139286, 5.0000000000000000, 0.50000000000000000,
7351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7352   { 0.70394732624993395, 5.0000000000000000, 0.50000000000000000,
7353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7354   { 0.72748884971552052, 5.0000000000000000, 0.50000000000000000,
7355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7356   { 0.75351147371199667, 5.0000000000000000, 0.50000000000000000,
7357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7358   { 0.78247589005573737, 5.0000000000000000, 0.50000000000000000,
7359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7360   { 0.81497017420249795, 5.0000000000000000, 0.50000000000000000,
7361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7362   { 0.85175826875009608, 5.0000000000000000, 0.50000000000000000,
7363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7364   { 0.89385278481745867, 5.0000000000000000, 0.50000000000000000,
7365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7366   { 0.94262778709507411, 5.0000000000000000, 0.50000000000000000,
7367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7368   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7370   { 1.0687327277420910, 5.0000000000000000, 0.50000000000000000,
7371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7372   { 1.1529725508983291, 5.0000000000000000, 0.50000000000000000,
7373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7374   { 1.2592587134058799, 5.0000000000000000, 0.50000000000000000,
7375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7376   { 1.3985773194637896, 5.0000000000000000, 0.50000000000000000,
7377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7378   { 1.5909902576697317, 5.0000000000000000, 0.50000000000000000,
7379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7380   { 1.8776023607249752, 5.0000000000000000, 0.50000000000000000,
7381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7382   { 2.3582499003694664, 5.0000000000000000, 0.50000000000000000,
7383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7384   { 3.3541019662496838, 5.0000000000000000, 0.50000000000000000,
7385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7386   { 6.7198400278578028, 5.0000000000000000, 0.50000000000000000,
7387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7388 };
7389 const double toler147 = 2.5000000000000020e-13;
7390 
7391 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=6.0000000000000000.
7392 // max(|f - f_GSL|): 2.6645352591003757e-15 at index 18
7393 // max(|f - f_GSL| / |f_GSL|): 1.2228264607471081e-15
7394 // mean(f - f_GSL): 2.2788788400200583e-16
7395 // variance(f - f_GSL): 3.4817209315093131e-31
7396 // stddev(f - f_GSL): 5.9006109272763554e-16
7397 const testcase_hyperg<double>
7398 data148[19] =
7399 {
7400   { 0.75755211927082600, 5.0000000000000000, 0.50000000000000000,
7401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7402   { 0.77603550233010965, 5.0000000000000000, 0.50000000000000000,
7403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7404   { 0.79596241913438504, 5.0000000000000000, 0.50000000000000000,
7405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7406   { 0.81753360792105212, 5.0000000000000000, 0.50000000000000000,
7407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7408   { 0.84099165409805532, 5.0000000000000000, 0.50000000000000000,
7409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7410   { 0.86663303852180906, 5.0000000000000000, 0.50000000000000000,
7411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7412   { 0.89482475828629915, 5.0000000000000000, 0.50000000000000000,
7413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7414   { 0.92602774279590350, 5.0000000000000000, 0.50000000000000000,
7415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7416   { 0.96083064727087386, 5.0000000000000000, 0.50000000000000000,
7417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7418   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7420   { 1.0445570841313008, 5.0000000000000000, 0.50000000000000000,
7421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7422   { 1.0959004638926033, 5.0000000000000000, 0.50000000000000000,
7423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7424   { 1.1560106261370562, 5.0000000000000000, 0.50000000000000000,
7425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7426   { 1.2278121770678148, 5.0000000000000000, 0.50000000000000000,
7427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7428   { 1.3158640214709998, 5.0000000000000000, 0.50000000000000000,
7429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7430   { 1.4278095344155000, 5.0000000000000000, 0.50000000000000000,
7431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7432   { 1.5778700502946617, 5.0000000000000000, 0.50000000000000000,
7433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7434   { 1.7972173289196469, 5.0000000000000000, 0.50000000000000000,
7435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7436   { 2.1789970569269732, 5.0000000000000000, 0.50000000000000000,
7437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7438 };
7439 const double toler148 = 2.5000000000000020e-13;
7440 
7441 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=8.0000000000000000.
7442 // max(|f - f_GSL|): 8.8817841970012523e-16 at index 18
7443 // max(|f - f_GSL| / |f_GSL|): 5.6109827053892650e-16
7444 // mean(f - f_GSL): 7.5962628000668607e-17
7445 // variance(f - f_GSL): 3.8685788127881258e-32
7446 // stddev(f - f_GSL): 1.9668703090921186e-16
7447 const testcase_hyperg<double>
7448 data149[19] =
7449 {
7450   { 0.80270093579329460, 5.0000000000000000, 0.50000000000000000,
7451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7452   { 0.81884974572462765, 5.0000000000000000, 0.50000000000000000,
7453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7454   { 0.83605266330015260, 5.0000000000000000, 0.50000000000000000,
7455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7456   { 0.85443340762796027, 5.0000000000000000, 0.50000000000000000,
7457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7458   { 0.87413762182790711, 5.0000000000000000, 0.50000000000000000,
7459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7460   { 0.89533826626907298, 5.0000000000000000, 0.50000000000000000,
7461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7462   { 0.91824276674115313, 5.0000000000000000, 0.50000000000000000,
7463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7464   { 0.94310265050720576, 5.0000000000000000, 0.50000000000000000,
7465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7466   { 0.97022678857609712, 5.0000000000000000, 0.50000000000000000,
7467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7468   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7470   { 1.0329098673199812, 5.0000000000000000, 0.50000000000000000,
7471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7472   { 1.0695865684573389, 5.0000000000000000, 0.50000000000000000,
7473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7474   { 1.1108642103944570, 5.0000000000000000, 0.50000000000000000,
7475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7476   { 1.1578795055970506, 5.0000000000000000, 0.50000000000000000,
7477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7478   { 1.2122394794169442, 5.0000000000000000, 0.50000000000000000,
7479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7480   { 1.2763274721556934, 5.0000000000000000, 0.50000000000000000,
7481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7482   { 1.3539179650251021, 5.0000000000000000, 0.50000000000000000,
7483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7484   { 1.4515986118197148, 5.0000000000000000, 0.50000000000000000,
7485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7486   { 1.5829284571614224, 5.0000000000000000, 0.50000000000000000,
7487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7488 };
7489 const double toler149 = 2.5000000000000020e-13;
7490 
7491 // Test data for a=5.0000000000000000, b=0.50000000000000000, c=10.000000000000000.
7492 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
7493 // max(|f - f_GSL| / |f_GSL|): 3.2099086385883890e-16
7494 // mean(f - f_GSL): 5.8432790769745078e-17
7495 // variance(f - f_GSL): 8.7218722159852367e-33
7496 // stddev(f - f_GSL): 9.3390964316604188e-17
7497 const testcase_hyperg<double>
7498 data150[19] =
7499 {
7500   { 0.83322694172301981, 5.0000000000000000, 0.50000000000000000,
7501 	  10.000000000000000, -0.90000000000000002, 0.0 },
7502   { 0.84753931604765675, 5.0000000000000000, 0.50000000000000000,
7503 	  10.000000000000000, -0.80000000000000004, 0.0 },
7504   { 0.86265784532195022, 5.0000000000000000, 0.50000000000000000,
7505 	  10.000000000000000, -0.69999999999999996, 0.0 },
7506   { 0.87866479300707090, 5.0000000000000000, 0.50000000000000000,
7507 	  10.000000000000000, -0.59999999999999998, 0.0 },
7508   { 0.89565516540263501, 5.0000000000000000, 0.50000000000000000,
7509 	  10.000000000000000, -0.50000000000000000, 0.0 },
7510   { 0.91373946207610557, 5.0000000000000000, 0.50000000000000000,
7511 	  10.000000000000000, -0.39999999999999991, 0.0 },
7512   { 0.93304721345881914, 5.0000000000000000, 0.50000000000000000,
7513 	  10.000000000000000, -0.29999999999999993, 0.0 },
7514   { 0.95373159512905148, 5.0000000000000000, 0.50000000000000000,
7515 	  10.000000000000000, -0.19999999999999996, 0.0 },
7516   { 0.97597554238828121, 5.0000000000000000, 0.50000000000000000,
7517 	  10.000000000000000, -0.099999999999999978, 0.0 },
7518   { 1.0000000000000000, 5.0000000000000000, 0.50000000000000000,
7519 	  10.000000000000000, 0.0000000000000000, 0.0 },
7520   { 1.0260752851887982, 5.0000000000000000, 0.50000000000000000,
7521 	  10.000000000000000, 0.10000000000000009, 0.0 },
7522   { 1.0545371197996178, 5.0000000000000000, 0.50000000000000000,
7523 	  10.000000000000000, 0.20000000000000018, 0.0 },
7524   { 1.0858099017045830, 5.0000000000000000, 0.50000000000000000,
7525 	  10.000000000000000, 0.30000000000000004, 0.0 },
7526   { 1.1204416568688709, 5.0000000000000000, 0.50000000000000000,
7527 	  10.000000000000000, 0.40000000000000013, 0.0 },
7528   { 1.1591587835964847, 5.0000000000000000, 0.50000000000000000,
7529 	  10.000000000000000, 0.50000000000000000, 0.0 },
7530   { 1.2029564720303347, 5.0000000000000000, 0.50000000000000000,
7531 	  10.000000000000000, 0.60000000000000009, 0.0 },
7532   { 1.2532588722007874, 5.0000000000000000, 0.50000000000000000,
7533 	  10.000000000000000, 0.70000000000000018, 0.0 },
7534   { 1.3122319926925459, 5.0000000000000000, 0.50000000000000000,
7535 	  10.000000000000000, 0.80000000000000004, 0.0 },
7536   { 1.3834948587364102, 5.0000000000000000, 0.50000000000000000,
7537 	  10.000000000000000, 0.90000000000000013, 0.0 },
7538 };
7539 const double toler150 = 2.5000000000000020e-13;
7540 
7541 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=2.0000000000000000.
7542 // max(|f - f_GSL|): 4.0927261579781771e-12 at index 18
7543 // max(|f - f_GSL| / |f_GSL|): 1.4735287697491136e-15
7544 // mean(f - f_GSL): 2.2385017815981644e-13
7545 // variance(f - f_GSL): 8.7776489381819171e-25
7546 // stddev(f - f_GSL): 9.3689107895111895e-13
7547 const testcase_hyperg<double>
7548 data151[19] =
7549 {
7550   { 0.25646288779245086, 5.0000000000000000, 1.0000000000000000,
7551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7552   { 0.28273129096174376, 5.0000000000000000, 1.0000000000000000,
7553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7554   { 0.31438201170962982, 5.0000000000000000, 1.0000000000000000,
7555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7556   { 0.35308837890625017, 5.0000000000000000, 1.0000000000000000,
7557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7558   { 0.40123456790123452, 5.0000000000000000, 1.0000000000000000,
7559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7560   { 0.46230737192836352, 5.0000000000000000, 1.0000000000000000,
7561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7562   { 0.54156016946185348, 5.0000000000000000, 1.0000000000000000,
7563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7564   { 0.64718364197530875, 5.0000000000000000, 1.0000000000000000,
7565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7566   { 0.79246636158732342, 5.0000000000000000, 1.0000000000000000,
7567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7568   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7570   { 1.3103947568968148, 5.0000000000000000, 1.0000000000000000,
7571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7572   { 1.8017578125000016, 5.0000000000000000, 1.0000000000000000,
7573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7574   { 2.6374427321949185, 5.0000000000000000, 1.0000000000000000,
7575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7576   { 4.1975308641975335, 5.0000000000000000, 1.0000000000000000,
7577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7578   { 7.4999999999999964, 5.0000000000000000, 1.0000000000000000,
7579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7580   { 15.859375000000012, 5.0000000000000000, 1.0000000000000000,
7581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7582   { 43.734567901234662, 5.0000000000000000, 1.0000000000000000,
7583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7584   { 194.99999999999994, 5.0000000000000000, 1.0000000000000000,
7585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7586   { 2777.5000000000095, 5.0000000000000000, 1.0000000000000000,
7587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7588 };
7589 const double toler151 = 2.5000000000000020e-13;
7590 
7591 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=4.0000000000000000.
7592 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
7593 // max(|f - f_GSL| / |f_GSL|): 1.3117712044801870e-15
7594 // mean(f - f_GSL): 2.6879083754082736e-15
7595 // variance(f - f_GSL): 9.3567700516642700e-29
7596 // stddev(f - f_GSL): 9.6730398798228218e-15
7597 const testcase_hyperg<double>
7598 data152[19] =
7599 {
7600   { 0.46398891966759009, 5.0000000000000000, 1.0000000000000000,
7601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7602   { 0.49382716049382724, 5.0000000000000000, 1.0000000000000000,
7603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7604   { 0.52768166089965407, 5.0000000000000000, 1.0000000000000000,
7605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7606   { 0.56640625000000000, 5.0000000000000000, 1.0000000000000000,
7607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7608   { 0.61111111111111094, 5.0000000000000000, 1.0000000000000000,
7609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7610   { 0.66326530612244916, 5.0000000000000000, 1.0000000000000000,
7611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7612   { 0.72485207100591709, 5.0000000000000000, 1.0000000000000000,
7613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7614   { 0.79861111111111094, 5.0000000000000000, 1.0000000000000000,
7615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7616   { 0.88842975206611552, 5.0000000000000000, 1.0000000000000000,
7617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7618   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7620   { 1.1419753086419753, 5.0000000000000000, 1.0000000000000000,
7621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7622   { 1.3281250000000000, 5.0000000000000000, 1.0000000000000000,
7623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7624   { 1.5816326530612239, 5.0000000000000000, 1.0000000000000000,
7625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7626   { 1.9444444444444458, 5.0000000000000000, 1.0000000000000000,
7627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7628   { 2.5000000000000000, 5.0000000000000000, 1.0000000000000000,
7629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7630   { 3.4374999999999996, 5.0000000000000000, 1.0000000000000000,
7631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7632   { 5.2777777777777786, 5.0000000000000000, 1.0000000000000000,
7633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7634   { 9.9999999999999947, 5.0000000000000000, 1.0000000000000000,
7635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7636   { 32.499999999999950, 5.0000000000000000, 1.0000000000000000,
7637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7638 };
7639 const double toler152 = 2.5000000000000020e-13;
7640 
7641 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=6.0000000000000000.
7642 // max(|f - f_GSL|): 6.2172489379008766e-15 at index 18
7643 // max(|f - f_GSL| / |f_GSL|): 1.2433022037532449e-15
7644 // mean(f - f_GSL): 4.9083544246585873e-16
7645 // variance(f - f_GSL): 1.9229766015225486e-30
7646 // stddev(f - f_GSL): 1.3867143186404864e-15
7647 const testcase_hyperg<double>
7648 data153[19] =
7649 {
7650   { 0.57476744883397490, 5.0000000000000000, 1.0000000000000000,
7651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7652   { 0.60302731682513966, 5.0000000000000000, 1.0000000000000000,
7653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7654   { 0.63425708719096374, 5.0000000000000000, 1.0000000000000000,
7655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7656   { 0.66895764182970430, 5.0000000000000000, 1.0000000000000000,
7657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7658   { 0.70775063063963473, 5.0000000000000000, 1.0000000000000000,
7659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7660   { 0.75141762103495946, 5.0000000000000000, 1.0000000000000000,
7661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7662   { 0.80095569442603320, 5.0000000000000000, 1.0000000000000000,
7663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7664   { 0.85765823887436754, 5.0000000000000000, 1.0000000000000000,
7665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7666   { 0.92323549576335540, 5.0000000000000000, 1.0000000000000000,
7667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7668   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7670   { 1.0911622464839472, 5.0000000000000000, 1.0000000000000000,
7671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7672   { 1.2013226178607672, 5.0000000000000000, 1.0000000000000000,
7673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7674   { 1.3373332072682687, 5.0000000000000000, 1.0000000000000000,
7675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7676   { 1.5099074378209718, 5.0000000000000000, 1.0000000000000000,
7677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7678   { 1.7368822229245819, 5.0000000000000000, 1.0000000000000000,
7679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7680   { 2.0505871832661429, 5.0000000000000000, 1.0000000000000000,
7681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7682   { 2.5172389775867976, 5.0000000000000000, 1.0000000000000000,
7683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7684   { 3.3015631983556144, 5.0000000000000000, 1.0000000000000000,
7685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7686   { 5.0005935155044563, 5.0000000000000000, 1.0000000000000000,
7687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7688 };
7689 const double toler153 = 2.5000000000000020e-13;
7690 
7691 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=8.0000000000000000.
7692 // max(|f - f_GSL|): 3.1086244689504383e-15 at index 18
7693 // max(|f - f_GSL| / |f_GSL|): 1.1989697058841885e-15
7694 // mean(f - f_GSL): 2.4541772123292936e-16
7695 // variance(f - f_GSL): 4.8074415038063715e-31
7696 // stddev(f - f_GSL): 6.9335715932024320e-16
7697 const testcase_hyperg<double>
7698 data154[19] =
7699 {
7700   { 0.64582752605387983, 5.0000000000000000, 1.0000000000000000,
7701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7702   { 0.67184161997264191, 5.0000000000000000, 1.0000000000000000,
7703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7704   { 0.70012779922368040, 5.0000000000000000, 1.0000000000000000,
7705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7706   { 0.73100784656910278, 5.0000000000000000, 1.0000000000000000,
7707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7708   { 0.76486919089091066, 5.0000000000000000, 1.0000000000000000,
7709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7710   { 0.80218301124334590, 5.0000000000000000, 1.0000000000000000,
7711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7712   { 0.84352883533234391, 5.0000000000000000, 1.0000000000000000,
7713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7714   { 0.88962858902212572, 5.0000000000000000, 1.0000000000000000,
7715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7716   { 0.94139473468584123, 5.0000000000000000, 1.0000000000000000,
7717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7718   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7720   { 1.0669812691939897, 5.0000000000000000, 1.0000000000000000,
7721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7722   { 1.1443996012177726, 5.0000000000000000, 1.0000000000000000,
7723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7724   { 1.2350966976721314, 5.0000000000000000, 1.0000000000000000,
7725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7726   { 1.3431264370409088, 5.0000000000000000, 1.0000000000000000,
7727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7728   { 1.4745266814162399, 5.0000000000000000, 1.0000000000000000,
7729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7730   { 1.6388137104840066, 5.0000000000000000, 1.0000000000000000,
7731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7732   { 1.8522074849776522, 5.0000000000000000, 1.0000000000000000,
7733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7734   { 2.1458016978417458, 5.0000000000000000, 1.0000000000000000,
7735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7736   { 2.5927464669826348, 5.0000000000000000, 1.0000000000000000,
7737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7738 };
7739 const double toler154 = 2.5000000000000020e-13;
7740 
7741 // Test data for a=5.0000000000000000, b=1.0000000000000000, c=10.000000000000000.
7742 // max(|f - f_GSL|): 1.3322676295501878e-15 at index 18
7743 // max(|f - f_GSL| / |f_GSL|): 6.8275390424723874e-16
7744 // mean(f - f_GSL): 1.0517902338554114e-16
7745 // variance(f - f_GSL): 8.8299945988280290e-32
7746 // stddev(f - f_GSL): 2.9715306828010425e-16
7747 const testcase_hyperg<double>
7748 data155[19] =
7749 {
7750   { 0.69583236336670584, 5.0000000000000000, 1.0000000000000000,
7751 	  10.000000000000000, -0.90000000000000002, 0.0 },
7752   { 0.71968920666899716, 5.0000000000000000, 1.0000000000000000,
7753 	  10.000000000000000, -0.80000000000000004, 0.0 },
7754   { 0.74533885416044232, 5.0000000000000000, 1.0000000000000000,
7755 	  10.000000000000000, -0.69999999999999996, 0.0 },
7756   { 0.77300145361503070, 5.0000000000000000, 1.0000000000000000,
7757 	  10.000000000000000, -0.59999999999999998, 0.0 },
7758   { 0.80293630810919447, 5.0000000000000000, 1.0000000000000000,
7759 	  10.000000000000000, -0.50000000000000000, 0.0 },
7760   { 0.83545132638592057, 5.0000000000000000, 1.0000000000000000,
7761 	  10.000000000000000, -0.39999999999999991, 0.0 },
7762   { 0.87091544744412497, 5.0000000000000000, 1.0000000000000000,
7763 	  10.000000000000000, -0.29999999999999993, 0.0 },
7764   { 0.90977522877919847, 5.0000000000000000, 1.0000000000000000,
7765 	  10.000000000000000, -0.19999999999999996, 0.0 },
7766   { 0.95257738192069130, 5.0000000000000000, 1.0000000000000000,
7767 	  10.000000000000000, -0.099999999999999978, 0.0 },
7768   { 1.0000000000000000, 5.0000000000000000, 1.0000000000000000,
7769 	  10.000000000000000, 0.0000000000000000, 0.0 },
7770   { 1.0528968282789379, 5.0000000000000000, 1.0000000000000000,
7771 	  10.000000000000000, 0.10000000000000009, 0.0 },
7772   { 1.1123617169062123, 5.0000000000000000, 1.0000000000000000,
7773 	  10.000000000000000, 0.20000000000000018, 0.0 },
7774   { 1.1798254572896132, 5.0000000000000000, 1.0000000000000000,
7775 	  10.000000000000000, 0.30000000000000004, 0.0 },
7776   { 1.2572069000522701, 5.0000000000000000, 1.0000000000000000,
7777 	  10.000000000000000, 0.40000000000000013, 0.0 },
7778   { 1.3471600884974377, 5.0000000000000000, 1.0000000000000000,
7779 	  10.000000000000000, 0.50000000000000000, 0.0 },
7780   { 1.4535032279573519, 5.0000000000000000, 1.0000000000000000,
7781 	  10.000000000000000, 0.60000000000000009, 0.0 },
7782   { 1.5820245752814950, 5.0000000000000000, 1.0000000000000000,
7783 	  10.000000000000000, 0.70000000000000018, 0.0 },
7784   { 1.7421756366906538, 5.0000000000000000, 1.0000000000000000,
7785 	  10.000000000000000, 0.80000000000000004, 0.0 },
7786   { 1.9513145531098235, 5.0000000000000000, 1.0000000000000000,
7787 	  10.000000000000000, 0.90000000000000013, 0.0 },
7788 };
7789 const double toler155 = 2.5000000000000020e-13;
7790 
7791 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=2.0000000000000000.
7792 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
7793 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
7794 // mean(f - f_GSL): 5.5487040400966458e-12
7795 // variance(f - f_GSL): 5.4399356990620132e-22
7796 // stddev(f - f_GSL): 2.3323669734975269e-11
7797 const testcase_hyperg<double>
7798 data156[19] =
7799 {
7800   { 0.040386107340619273, 5.0000000000000000, 2.0000000000000000,
7801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
7802   { 0.052922149401344633, 5.0000000000000000, 2.0000000000000000,
7803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
7804   { 0.070429627772374270, 5.0000000000000000, 2.0000000000000000,
7805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
7806   { 0.095367431640624986, 5.0000000000000000, 2.0000000000000000,
7807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
7808   { 0.13168724279835389, 5.0000000000000000, 2.0000000000000000,
7809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
7810   { 0.18593443208187072, 5.0000000000000000, 2.0000000000000000,
7811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
7812   { 0.26932907434290460, 5.0000000000000000, 2.0000000000000000,
7813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
7814   { 0.40187757201646102, 5.0000000000000000, 2.0000000000000000,
7815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
7816   { 0.62092132305915493, 5.0000000000000000, 2.0000000000000000,
7817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
7818   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
7820   { 1.6935087808430296, 5.0000000000000000, 2.0000000000000000,
7821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
7822   { 3.0517578125000036, 5.0000000000000000, 2.0000000000000000,
7823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
7824   { 5.9499018266198629, 5.0000000000000000, 2.0000000000000000,
7825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
7826   { 12.860082304526767, 5.0000000000000000, 2.0000000000000000,
7827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
7828   { 32.000000000000000, 5.0000000000000000, 2.0000000000000000,
7829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
7830   { 97.656250000000114, 5.0000000000000000, 2.0000000000000000,
7831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
7832   { 411.52263374485722, 5.0000000000000000, 2.0000000000000000,
7833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
7834   { 3124.9999999999995, 5.0000000000000000, 2.0000000000000000,
7835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
7836   { 100000.00000000055, 5.0000000000000000, 2.0000000000000000,
7837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
7838 };
7839 const double toler156 = 2.5000000000000020e-13;
7840 
7841 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=4.0000000000000000.
7842 // max(|f - f_GSL|): 6.8212102632969618e-13 at index 18
7843 // max(|f - f_GSL| / |f_GSL|): 1.2402200478721734e-15
7844 // mean(f - f_GSL): 3.8828589466495609e-14
7845 // variance(f - f_GSL): 2.4267524775254640e-26
7846 // stddev(f - f_GSL): 1.5578037352392837e-13
7847 const testcase_hyperg<double>
7848 data157[19] =
7849 {
7850   { 0.21140107887447138, 5.0000000000000000, 2.0000000000000000,
7851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
7852   { 0.24005486968449927, 5.0000000000000000, 2.0000000000000000,
7853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
7854   { 0.27478119275391810, 5.0000000000000000, 2.0000000000000000,
7855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
7856   { 0.31738281250000006, 5.0000000000000000, 2.0000000000000000,
7857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
7858   { 0.37037037037037024, 5.0000000000000000, 2.0000000000000000,
7859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
7860   { 0.43731778425655982, 5.0000000000000000, 2.0000000000000000,
7861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
7862   { 0.52344105598543467, 5.0000000000000000, 2.0000000000000000,
7863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
7864   { 0.63657407407407429, 5.0000000000000000, 2.0000000000000000,
7865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
7866   { 0.78888054094665638, 5.0000000000000000, 2.0000000000000000,
7867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
7868   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
7870   { 1.3031550068587108, 5.0000000000000000, 2.0000000000000000,
7871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
7872   { 1.7578125000000011, 5.0000000000000000, 2.0000000000000000,
7873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
7874   { 2.4781341107871717, 5.0000000000000000, 2.0000000000000000,
7875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
7876   { 3.7037037037037073, 5.0000000000000000, 2.0000000000000000,
7877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
7878   { 5.9999999999999982, 5.0000000000000000, 2.0000000000000000,
7879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
7880   { 10.937500000000005, 5.0000000000000000, 2.0000000000000000,
7881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
7882   { 24.074074074074115, 5.0000000000000000, 2.0000000000000000,
7883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
7884   { 74.999999999999957, 5.0000000000000000, 2.0000000000000000,
7885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
7886   { 550.00000000000068, 5.0000000000000000, 2.0000000000000000,
7887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
7888 };
7889 const double toler157 = 2.5000000000000020e-13;
7890 
7891 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=6.0000000000000000.
7892 // max(|f - f_GSL|): 4.9737991503207013e-14 at index 18
7893 // max(|f - f_GSL| / |f_GSL|): 1.6580642616864621e-15
7894 // mean(f - f_GSL): 3.1670572597201835e-15
7895 // variance(f - f_GSL): 1.2718576052442072e-28
7896 // stddev(f - f_GSL): 1.1277666448535384e-14
7897 const testcase_hyperg<double>
7898 data158[19] =
7899 {
7900   { 0.33250915203252129, 5.0000000000000000, 2.0000000000000000,
7901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
7902   { 0.36566851047721943, 5.0000000000000000, 2.0000000000000000,
7903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
7904   { 0.40414812182437959, 5.0000000000000000, 2.0000000000000000,
7905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
7906   { 0.44916943268118498, 5.0000000000000000, 2.0000000000000000,
7907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
7908   { 0.50233081077479547, 5.0000000000000000, 2.0000000000000000,
7909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
7910   { 0.56575808728873322, 5.0000000000000000, 2.0000000000000000,
7911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
7912   { 0.64233106844971455, 5.0000000000000000, 2.0000000000000000,
7913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
7914   { 0.73603371116919514, 5.0000000000000000, 2.0000000000000000,
7915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
7916   { 0.85251256240112439, 5.0000000000000000, 2.0000000000000000,
7917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
7918   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
7920   { 1.1909065696197674, 5.0000000000000000, 2.0000000000000000,
7921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
7922   { 1.4447095285569318, 5.0000000000000000, 2.0000000000000000,
7923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
7924   { 1.7935243137840653, 5.0000000000000000, 2.0000000000000000,
7925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
7926   { 2.2937035820494467, 5.0000000000000000, 2.0000000000000000,
7927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
7928   { 3.0524711083016687, 5.0000000000000000, 2.0000000000000000,
7929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
7930   { 4.2976512669354259, 5.0000000000000000, 2.0000000000000000,
7931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
7932   { 6.5977107563194739, 5.0000000000000000, 2.0000000000000000,
7933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
7934   { 11.793747206577530, 5.0000000000000000, 2.0000000000000000,
7935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
7936   { 29.997625937982132, 5.0000000000000000, 2.0000000000000000,
7937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
7938 };
7939 const double toler158 = 2.5000000000000020e-13;
7940 
7941 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=8.0000000000000000.
7942 // max(|f - f_GSL|): 1.1546319456101628e-14 at index 18
7943 // max(|f - f_GSL| / |f_GSL|): 1.4852319937858925e-15
7944 // mean(f - f_GSL): 8.5896202431525265e-16
7945 // variance(f - f_GSL): 6.6980634833963886e-30
7946 // stddev(f - f_GSL): 2.5880617232586221e-15
7947 const testcase_hyperg<double>
7948 data159[19] =
7949 {
7950   { 0.42108197362250294, 5.0000000000000000, 2.0000000000000000,
7951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
7952   { 0.45503172013983040, 5.0000000000000000, 2.0000000000000000,
7953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
7954   { 0.49345609813624314, 5.0000000000000000, 2.0000000000000000,
7955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
7956   { 0.53720880551221295, 5.0000000000000000, 2.0000000000000000,
7957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
7958   { 0.58736431524847466, 5.0000000000000000, 2.0000000000000000,
7959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
7960   { 0.64529222467897995, 5.0000000000000000, 2.0000000000000000,
7961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
7962   { 0.71276337354393959, 5.0000000000000000, 2.0000000000000000,
7963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
7964   { 0.79210466220795306, 5.0000000000000000, 2.0000000000000000,
7965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
7966   { 0.88643063455510596, 5.0000000000000000, 2.0000000000000000,
7967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
7968   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
7969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
7970   { 1.1387832139040652, 5.0000000000000000, 2.0000000000000000,
7971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
7972   { 1.3114025920844754, 5.0000000000000000, 2.0000000000000000,
7973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
7974   { 1.5307655016768162, 5.0000000000000000, 2.0000000000000000,
7975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
7976   { 1.8170727950333352, 5.0000000000000000, 2.0000000000000000,
7977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
7978   { 2.2037865486700836, 5.0000000000000000, 2.0000000000000000,
7979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
7980   { 2.7506766056439380, 5.0000000000000000, 2.0000000000000000,
7981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
7982   { 3.5764534935716998, 5.0000000000000000, 2.0000000000000000,
7983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
7984   { 4.9587762302155403, 5.0000000000000000, 2.0000000000000000,
7985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
7986   { 7.7740847924166907, 5.0000000000000000, 2.0000000000000000,
7987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
7988 };
7989 const double toler159 = 2.5000000000000020e-13;
7990 
7991 // Test data for a=5.0000000000000000, b=2.0000000000000000, c=10.000000000000000.
7992 // max(|f - f_GSL|): 4.4408920985006262e-15 at index 18
7993 // max(|f - f_GSL| / |f_GSL|): 1.0721199711322765e-15
7994 // mean(f - f_GSL): 3.5059674461847049e-16
7995 // variance(f - f_GSL): 9.8111051098089205e-31
7996 // stddev(f - f_GSL): 9.9051022760034740e-16
7997 const testcase_hyperg<double>
7998 data160[19] =
7999 {
8000   { 0.48860241312958436, 5.0000000000000000, 2.0000000000000000,
8001 	  10.000000000000000, -0.90000000000000002, 0.0 },
8002   { 0.52193382517068487, 5.0000000000000000, 2.0000000000000000,
8003 	  10.000000000000000, -0.80000000000000004, 0.0 },
8004   { 0.55902375003954219, 5.0000000000000000, 2.0000000000000000,
8005 	  10.000000000000000, -0.69999999999999996, 0.0 },
8006   { 0.60049055150230324, 5.0000000000000000, 2.0000000000000000,
8007 	  10.000000000000000, -0.59999999999999998, 0.0 },
8008   { 0.64709127927203469, 5.0000000000000000, 2.0000000000000000,
8009 	  10.000000000000000, -0.50000000000000000, 0.0 },
8010   { 0.69976233335368998, 5.0000000000000000, 2.0000000000000000,
8011 	  10.000000000000000, -0.39999999999999991, 0.0 },
8012   { 0.75967529501080988, 5.0000000000000000, 2.0000000000000000,
8013 	  10.000000000000000, -0.29999999999999993, 0.0 },
8014   { 0.82831498895254407, 5.0000000000000000, 2.0000000000000000,
8015 	  10.000000000000000, -0.19999999999999996, 0.0 },
8016   { 0.90759090169653933, 5.0000000000000000, 2.0000000000000000,
8017 	  10.000000000000000, -0.099999999999999978, 0.0 },
8018   { 1.0000000000000000, 5.0000000000000000, 2.0000000000000000,
8019 	  10.000000000000000, 0.0000000000000000, 0.0 },
8020   { 1.1088712278667465, 5.0000000000000000, 2.0000000000000000,
8021 	  10.000000000000000, 0.10000000000000009, 0.0 },
8022   { 1.2387445478440855, 5.0000000000000000, 2.0000000000000000,
8023 	  10.000000000000000, 0.20000000000000018, 0.0 },
8024   { 1.3959812720437546, 5.0000000000000000, 2.0000000000000000,
8025 	  10.000000000000000, 0.30000000000000004, 0.0 },
8026   { 1.5897930661091169, 5.0000000000000000, 2.0000000000000000,
8027 	  10.000000000000000, 0.40000000000000013, 0.0 },
8028   { 1.8340789380307454, 5.0000000000000000, 2.0000000000000000,
8029 	  10.000000000000000, 0.50000000000000000, 0.0 },
8030   { 2.1509548085970764, 5.0000000000000000, 2.0000000000000000,
8031 	  10.000000000000000, 0.60000000000000009, 0.0 },
8032   { 2.5782406951207526, 5.0000000000000000, 2.0000000000000000,
8033 	  10.000000000000000, 0.70000000000000018, 0.0 },
8034   { 3.1877847194242737, 5.0000000000000000, 2.0000000000000000,
8035 	  10.000000000000000, 0.80000000000000004, 0.0 },
8036   { 4.1421596631676918, 5.0000000000000000, 2.0000000000000000,
8037 	  10.000000000000000, 0.90000000000000013, 0.0 },
8038 };
8039 const double toler160 = 2.5000000000000020e-13;
8040 
8041 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=2.0000000000000000.
8042 // max(|f - f_GSL|): 1.3113021850585938e-06 at index 18
8043 // max(|f - f_GSL| / |f_GSL|): 2.9699111427019355e-14
8044 // mean(f - f_GSL): 6.9091057386613658e-08
8045 // variance(f - f_GSL): 9.0489756878178256e-14
8046 // stddev(f - f_GSL): 3.0081515400354792e-07
8047 const testcase_hyperg<double>
8048 data161[19] =
8049 {
8050   { -0.0047236848832209926, 5.0000000000000000, 5.0000000000000000,
8051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8052   { -0.0073321496427104288, 5.0000000000000000, 5.0000000000000000,
8053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8054   { -0.010977302557845620, 5.0000000000000000, 5.0000000000000000,
8055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8056   { -0.015692785382270882, 5.0000000000000000, 5.0000000000000000,
8057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8058   { -0.020728547477518663, 5.0000000000000000, 5.0000000000000000,
8059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8060   { -0.022767481479412773, 5.0000000000000000, 5.0000000000000000,
8061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8062   { -0.010634636868114097, 5.0000000000000000, 5.0000000000000000,
8063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8064   { 0.050699832580781923, 5.0000000000000000, 5.0000000000000000,
8065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8066   { 0.27045765367659280, 5.0000000000000000, 5.0000000000000000,
8067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8068   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8070   { 3.4387055868901171, 5.0000000000000000, 5.0000000000000000,
8071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8072   { 12.052059173584013, 5.0000000000000000, 5.0000000000000000,
8073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8074   { 45.565319600798020, 5.0000000000000000, 5.0000000000000000,
8075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8076   { 196.23532998018635, 5.0000000000000000, 5.0000000000000000,
8077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8078   { 1032.0000000000002, 5.0000000000000000, 5.0000000000000000,
8079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8080   { 7376.0986328125073, 5.0000000000000000, 5.0000000000000000,
8081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8082   { 86964.639536656410, 5.0000000000000000, 5.0000000000000000,
8083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8084   { 2596875.0000000009, 5.0000000000000000, 5.0000000000000000,
8085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8086   { 766225000.00000668, 5.0000000000000000, 5.0000000000000000,
8087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8088 };
8089 const double toler161 = 2.5000000000000015e-12;
8090 
8091 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=4.0000000000000000.
8092 // max(|f - f_GSL|): 1.8626451492309570e-09 at index 18
8093 // max(|f - f_GSL| / |f_GSL|): 1.5205266524334267e-15
8094 // mean(f - f_GSL): 9.8838934113244577e-11
8095 // variance(f - f_GSL): 1.8243591026317757e-19
8096 // stddev(f - f_GSL): 4.2712516931594835e-10
8097 const testcase_hyperg<double>
8098 data162[19] =
8099 {
8100   { 0.016473280625778776, 5.0000000000000000, 5.0000000000000000,
8101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8102   { 0.023520955289486591, 5.0000000000000000, 5.0000000000000000,
8103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8104   { 0.034179084066005165, 5.0000000000000000, 5.0000000000000000,
8105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8106   { 0.050663948059081955, 5.0000000000000000, 5.0000000000000000,
8107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8108   { 0.076817558299039870, 5.0000000000000000, 5.0000000000000000,
8109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8110   { 0.11952927776691663, 5.0000000000000000, 5.0000000000000000,
8111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8112   { 0.19163799520552807, 5.0000000000000000, 5.0000000000000000,
8113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8114   { 0.31815307784636504, 5.0000000000000000, 5.0000000000000000,
8115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8116   { 0.55036208180243285, 5.0000000000000000, 5.0000000000000000,
8117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8118   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8120   { 1.9287183337378946, 5.0000000000000000, 5.0000000000000000,
8121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8122   { 4.0054321289062544, 5.0000000000000000, 5.0000000000000000,
8123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8124   { 9.1373492337376394, 5.0000000000000000, 5.0000000000000000,
8125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8126   { 23.576817558299062, 5.0000000000000000, 5.0000000000000000,
8127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8128   { 71.999999999999972, 5.0000000000000000, 5.0000000000000000,
8129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8130   { 280.76171875000023, 5.0000000000000000, 5.0000000000000000,
8131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8132   { 1611.7969821673578, 5.0000000000000000, 5.0000000000000000,
8133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8134   { 18749.999999999996, 5.0000000000000000, 5.0000000000000000,
8135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8136   { 1225000.0000000061, 5.0000000000000000, 5.0000000000000000,
8137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8138 };
8139 const double toler162 = 2.5000000000000020e-13;
8140 
8141 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=6.0000000000000000.
8142 // max(|f - f_GSL|): 1.8189894035458565e-11 at index 18
8143 // max(|f - f_GSL| / |f_GSL|): 1.5011259042308243e-15
8144 // mean(f - f_GSL): 9.8916196870839876e-13
8145 // variance(f - f_GSL): 1.7350118793242040e-23
8146 // stddev(f - f_GSL): 4.1653473796601937e-12
8147 const testcase_hyperg<double>
8148 data163[19] =
8149 {
8150   { 0.067462409738203527, 5.0000000000000000, 5.0000000000000000,
8151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8152   { 0.084813629887172531, 5.0000000000000000, 5.0000000000000000,
8153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8154   { 0.10799223563666395, 5.0000000000000000, 5.0000000000000000,
8155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8156   { 0.13947766136095380, 5.0000000000000000, 5.0000000000000000,
8157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8158   { 0.18305927261494301, 5.0000000000000000, 5.0000000000000000,
8159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8160   { 0.24468431546783478, 5.0000000000000000, 5.0000000000000000,
8161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8162   { 0.33397274564972962, 5.0000000000000000, 5.0000000000000000,
8163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8164   { 0.46703323887436765, 5.0000000000000000, 5.0000000000000000,
8165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8166   { 0.67194346197695642, 5.0000000000000000, 5.0000000000000000,
8167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8168   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8170   { 1.5503148146900136, 5.0000000000000000, 5.0000000000000000,
8171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8172   { 2.5278200136941025, 5.0000000000000000, 5.0000000000000000,
8173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8174   { 4.3933515329658954, 5.0000000000000000, 5.0000000000000000,
8175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8176   { 8.3000308946111048, 5.0000000000000000, 5.0000000000000000,
8177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8178   { 17.570215556257921, 5.0000000000000000, 5.0000000000000000,
8179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8180   { 43.847462183266167, 5.0000000000000000, 5.0000000000000000,
8181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8182   { 141.86909082943893, 5.0000000000000000, 5.0000000000000000,
8183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8184   { 736.63489653168926, 5.0000000000000000, 5.0000000000000000,
8185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8186   { 12117.500593515540, 5.0000000000000000, 5.0000000000000000,
8187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8188 };
8189 const double toler163 = 2.5000000000000020e-13;
8190 
8191 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=8.0000000000000000.
8192 // max(|f - f_GSL|): 6.8212102632969618e-13 at index 18
8193 // max(|f - f_GSL| / |f_GSL|): 1.3038469641917422e-15
8194 // mean(f - f_GSL): 3.9518096397578601e-14
8195 // variance(f - f_GSL): 2.4215530819720675e-26
8196 // stddev(f - f_GSL): 1.5561340179984714e-13
8197 const testcase_hyperg<double>
8198 data164[19] =
8199 {
8200   { 0.12409443806004226, 5.0000000000000000, 5.0000000000000000,
8201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8202   { 0.14886910375100415, 5.0000000000000000, 5.0000000000000000,
8203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8204   { 0.18023328876836348, 5.0000000000000000, 5.0000000000000000,
8205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8206   { 0.22044046981094723, 5.0000000000000000, 5.0000000000000000,
8207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8208   { 0.27271160690708790, 5.0000000000000000, 5.0000000000000000,
8209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8210   { 0.34174821195025845, 5.0000000000000000, 5.0000000000000000,
8211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8212   { 0.43457788826160282, 5.0000000000000000, 5.0000000000000000,
8213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8214   { 0.56199385898404552, 5.0000000000000000, 5.0000000000000000,
8215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8216   { 0.74109892753745221, 5.0000000000000000, 5.0000000000000000,
8217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8218   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8220   { 1.3869229400096228, 5.0000000000000000, 5.0000000000000000,
8221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8222   { 1.9890168748121269, 5.0000000000000000, 5.0000000000000000,
8223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8224   { 2.9741205609307424, 5.0000000000000000, 5.0000000000000000,
8225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8226   { 4.6924751038237345, 5.0000000000000000, 5.0000000000000000,
8227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8228   { 7.9555939380658254, 5.0000000000000000, 5.0000000000000000,
8229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8230   { 14.933102063314404, 5.0000000000000000, 5.0000000000000000,
8231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8232   { 32.780461638447541, 5.0000000000000000, 5.0000000000000000,
8233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8234   { 94.848124287773530, 5.0000000000000000, 5.0000000000000000,
8235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8236   { 523.16034401517709, 5.0000000000000000, 5.0000000000000000,
8237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8238 };
8239 const double toler164 = 2.5000000000000020e-13;
8240 
8241 // Test data for a=5.0000000000000000, b=5.0000000000000000, c=10.000000000000000.
8242 // max(|f - f_GSL|): 9.9475983006414026e-14 at index 18
8243 // max(|f - f_GSL| / |f_GSL|): 1.3163001721303552e-15
8244 // mean(f - f_GSL): 6.1880325425160040e-15
8245 // variance(f - f_GSL): 5.1034009979425656e-28
8246 // stddev(f - f_GSL): 2.2590708262342210e-14
8247 const testcase_hyperg<double>
8248 data165[19] =
8249 {
8250   { 0.17885405888526873, 5.0000000000000000, 5.0000000000000000,
8251 	  10.000000000000000, -0.90000000000000002, 0.0 },
8252   { 0.20861302518993391, 5.0000000000000000, 5.0000000000000000,
8253 	  10.000000000000000, -0.80000000000000004, 0.0 },
8254   { 0.24504033307244946, 5.0000000000000000, 5.0000000000000000,
8255 	  10.000000000000000, -0.69999999999999996, 0.0 },
8256   { 0.29007236051133489, 5.0000000000000000, 5.0000000000000000,
8257 	  10.000000000000000, -0.59999999999999998, 0.0 },
8258   { 0.34635542859732737, 5.0000000000000000, 5.0000000000000000,
8259 	  10.000000000000000, -0.50000000000000000, 0.0 },
8260   { 0.41756858504598410, 5.0000000000000000, 5.0000000000000000,
8261 	  10.000000000000000, -0.39999999999999991, 0.0 },
8262   { 0.50892615622124393, 5.0000000000000000, 5.0000000000000000,
8263 	  10.000000000000000, -0.29999999999999993, 0.0 },
8264   { 0.62798173270509761, 5.0000000000000000, 5.0000000000000000,
8265 	  10.000000000000000, -0.19999999999999996, 0.0 },
8266   { 0.78595487360378424, 5.0000000000000000, 5.0000000000000000,
8267 	  10.000000000000000, -0.099999999999999978, 0.0 },
8268   { 1.0000000000000000, 5.0000000000000000, 5.0000000000000000,
8269 	  10.000000000000000, 0.0000000000000000, 0.0 },
8270   { 1.2972517637384813, 5.0000000000000000, 5.0000000000000000,
8271 	  10.000000000000000, 0.10000000000000009, 0.0 },
8272   { 1.7224028197396399, 5.0000000000000000, 5.0000000000000000,
8273 	  10.000000000000000, 0.20000000000000018, 0.0 },
8274   { 2.3527690438263305, 5.0000000000000000, 5.0000000000000000,
8275 	  10.000000000000000, 0.30000000000000004, 0.0 },
8276   { 3.3305218060101147, 5.0000000000000000, 5.0000000000000000,
8277 	  10.000000000000000, 0.40000000000000013, 0.0 },
8278   { 4.9383884076775466, 5.0000000000000000, 5.0000000000000000,
8279 	  10.000000000000000, 0.50000000000000000, 0.0 },
8280   { 7.8007604680775229, 5.0000000000000000, 5.0000000000000000,
8281 	  10.000000000000000, 0.60000000000000009, 0.0 },
8282   { 13.518663719271903, 5.0000000000000000, 5.0000000000000000,
8283 	  10.000000000000000, 0.70000000000000018, 0.0 },
8284   { 27.285345906502567, 5.0000000000000000, 5.0000000000000000,
8285 	  10.000000000000000, 0.80000000000000004, 0.0 },
8286   { 75.572415101502216, 5.0000000000000000, 5.0000000000000000,
8287 	  10.000000000000000, 0.90000000000000013, 0.0 },
8288 };
8289 const double toler165 = 2.5000000000000020e-13;
8290 
8291 // Test data for a=5.0000000000000000, b=10.000000000000000, c=2.0000000000000000.
8292 // max(|f - f_GSL|): 0.81250000000000000 at index 18
8293 // max(|f - f_GSL| / |f_GSL|): 1.8182428501096257e-15
8294 // mean(f - f_GSL): 0.042765168793266639
8295 // variance(f - f_GSL): 0.034744884250260212
8296 // stddev(f - f_GSL): 0.18639979680852714
8297 const testcase_hyperg<double>
8298 data166[19] =
8299 {
8300   { 0.00063586451658060813, 5.0000000000000000, 10.000000000000000,
8301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8302   { 0.0010334743461763829, 5.0000000000000000, 10.000000000000000,
8303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8304   { 0.0015326246054669763, 5.0000000000000000, 10.000000000000000,
8305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8306   { 0.0019007018181583513, 5.0000000000000000, 10.000000000000000,
8307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8308   { 0.0012845577715431562, 5.0000000000000000, 10.000000000000000,
8309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8310   { -0.0027213806178060305, 5.0000000000000000, 10.000000000000000,
8311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8312   { -0.015121744574954044, 5.0000000000000000, 10.000000000000000,
8313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8314   { -0.036637840562974290, 5.0000000000000000, 10.000000000000000,
8315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8316   { 0.019117849062621605, 5.0000000000000000, 10.000000000000000,
8317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8318   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8320   { 9.8116901852350615, 5.0000000000000000, 10.000000000000000,
8321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8322   { 84.255589172244427, 5.0000000000000000, 10.000000000000000,
8323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8324   { 773.87517619421294, 5.0000000000000000, 10.000000000000000,
8325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8326   { 8556.9725363054076, 5.0000000000000000, 10.000000000000000,
8327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8328   { 129023.99999999996, 5.0000000000000000, 10.000000000000000,
8329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8330   { 3174543.3807373112, 5.0000000000000000, 10.000000000000000,
8331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8332   { 175133896.95814583, 5.0000000000000000, 10.000000000000000,
8333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8334   { 43564453125.000061, 5.0000000000000000, 10.000000000000000,
8335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8336   { 446860000000007.00, 5.0000000000000000, 10.000000000000000,
8337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8338 };
8339 const double toler166 = 2.5000000000000020e-13;
8340 
8341 // Test data for a=5.0000000000000000, b=10.000000000000000, c=4.0000000000000000.
8342 // max(|f - f_GSL|): 0.00039672851562500000 at index 18
8343 // max(|f - f_GSL| / |f_GSL|): 1.6882064494680641e-15
8344 // mean(f - f_GSL): 2.0884382210121993e-05
8345 // variance(f - f_GSL): 8.2836958019297269e-09
8346 // stddev(f - f_GSL): 9.1014810893226203e-05
8347 const testcase_hyperg<double>
8348 data167[19] =
8349 {
8350   { -0.00030045430691814646, 5.0000000000000000, 10.000000000000000,
8351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8352   { -0.00031119487747322054, 5.0000000000000000, 10.000000000000000,
8353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8354   { -0.00014589213141656318, 5.0000000000000000, 10.000000000000000,
8355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8356   { 0.00056843418860824636, 5.0000000000000000, 10.000000000000000,
8357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8358   { 0.0028902549859721747, 5.0000000000000000, 10.000000000000000,
8359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8360   { 0.0098776037238877245, 5.0000000000000000, 10.000000000000000,
8361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8362   { 0.030689217428863859, 5.0000000000000000, 10.000000000000000,
8363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8364   { 0.094211590019076558, 5.0000000000000000, 10.000000000000000,
8365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8366   { 0.29791981455918370, 5.0000000000000000, 10.000000000000000,
8367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8368   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8370   { 3.6646308771236793, 5.0000000000000000, 10.000000000000000,
8371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8372   { 15.133991837501567, 5.0000000000000000, 10.000000000000000,
8373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8374   { 73.331330046144089, 5.0000000000000000, 10.000000000000000,
8375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8376   { 441.01791167787303, 5.0000000000000000, 10.000000000000000,
8377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8378   { 3583.9999999999991, 5.0000000000000000, 10.000000000000000,
8379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8380   { 45299.530029296984, 5.0000000000000000, 10.000000000000000,
8381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8382   { 1157231.0002427436, 5.0000000000000000, 10.000000000000000,
8383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8384   { 107421875.00000016, 5.0000000000000000, 10.000000000000000,
8385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8386   { 235000000000.00293, 5.0000000000000000, 10.000000000000000,
8387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8388 };
8389 const double toler167 = 2.5000000000000020e-13;
8390 
8391 // Test data for a=5.0000000000000000, b=10.000000000000000, c=6.0000000000000000.
8392 // max(|f - f_GSL|): 9.5367431640625000e-07 at index 18
8393 // max(|f - f_GSL| / |f_GSL|): 1.6314276114917587e-15
8394 // mean(f - f_GSL): 5.0242811922592076e-08
8395 // variance(f - f_GSL): 4.7862904884501567e-14
8396 // stddev(f - f_GSL): 2.1877592391417655e-07
8397 const testcase_hyperg<double>
8398 data168[19] =
8399 {
8400   { 0.0058530497315413248, 5.0000000000000000, 10.000000000000000,
8401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8402   { 0.0088526869356855397, 5.0000000000000000, 10.000000000000000,
8403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8404   { 0.013770987983442959, 5.0000000000000000, 10.000000000000000,
8405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8406   { 0.022108932690960776, 5.0000000000000000, 10.000000000000000,
8407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8408   { 0.036786236450921550, 5.0000000000000000, 10.000000000000000,
8409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8410   { 0.063750669040426408, 5.0000000000000000, 10.000000000000000,
8411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8412   { 0.11577228680714466, 5.0000000000000000, 10.000000000000000,
8413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8414   { 0.22197573416125760, 5.0000000000000000, 10.000000000000000,
8415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8416   { 0.45361312968415324, 5.0000000000000000, 10.000000000000000,
8417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8418   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8420   { 2.4162889363082747, 5.0000000000000000, 10.000000000000000,
8421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8422   { 6.5381564791240541, 5.0000000000000000, 10.000000000000000,
8423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8424   { 20.415771011498428, 5.0000000000000000, 10.000000000000000,
8425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8426   { 76.870682056629448, 5.0000000000000000, 10.000000000000000,
8427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8428   { 373.58730158730162, 5.0000000000000000, 10.000000000000000,
8429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8430   { 2626.2555803571477, 5.0000000000000000, 10.000000000000000,
8431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8432   { 33060.960671081237, 5.0000000000000000, 10.000000000000000,
8433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8434   { 1203521.8253968258, 5.0000000000000000, 10.000000000000000,
8435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8436   { 584564285.71428990, 5.0000000000000000, 10.000000000000000,
8437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8438 };
8439 const double toler168 = 2.5000000000000020e-13;
8440 
8441 // Test data for a=5.0000000000000000, b=10.000000000000000, c=8.0000000000000000.
8442 // max(|f - f_GSL|): 7.4505805969238281e-09 at index 18
8443 // max(|f - f_GSL| / |f_GSL|): 1.6196914341138665e-15
8444 // mean(f - f_GSL): 3.9331532183208954e-10
8445 // variance(f - f_GSL): 2.9206631793126476e-18
8446 // stddev(f - f_GSL): 1.7089947862157589e-09
8447 const testcase_hyperg<double>
8448 data169[19] =
8449 {
8450   { 0.020248990107069573, 5.0000000000000000, 10.000000000000000,
8451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8452   { 0.027876687750502366, 5.0000000000000000, 10.000000000000000,
8453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8454   { 0.039154648888447607, 5.0000000000000000, 10.000000000000000,
8455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8456   { 0.056251883506774715, 5.0000000000000000, 10.000000000000000,
8457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8458   { 0.082914189910074473, 5.0000000000000000, 10.000000000000000,
8459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8460   { 0.12585357817786472, 5.0000000000000000, 10.000000000000000,
8461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8462   { 0.19761423206224940, 5.0000000000000000, 10.000000000000000,
8463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8464   { 0.32280443863359237, 5.0000000000000000, 10.000000000000000,
8465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8466   { 0.55250024062839420, 5.0000000000000000, 10.000000000000000,
8467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8468   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8470   { 1.9374297986599267, 5.0000000000000000, 10.000000000000000,
8471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8472   { 4.0849049886067759, 5.0000000000000000, 10.000000000000000,
8473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8474   { 9.5926988633258983, 5.0000000000000000, 10.000000000000000,
8475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8476   { 25.958314281359588, 5.0000000000000000, 10.000000000000000,
8477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8478   { 85.333333333333300, 5.0000000000000000, 10.000000000000000,
8479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8480   { 372.31445312500028, 5.0000000000000000, 10.000000000000000,
8481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8482   { 2545.3436976070780, 5.0000000000000000, 10.000000000000000,
8483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8484   { 39583.333333333343, 5.0000000000000000, 10.000000000000000,
8485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8486   { 4600000.0000000261, 5.0000000000000000, 10.000000000000000,
8487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8488 };
8489 const double toler169 = 2.5000000000000020e-13;
8490 
8491 // Test data for a=5.0000000000000000, b=10.000000000000000, c=10.000000000000000.
8492 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
8493 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
8494 // mean(f - f_GSL): 5.5487040400966458e-12
8495 // variance(f - f_GSL): 5.4399356990620132e-22
8496 // stddev(f - f_GSL): 2.3323669734975269e-11
8497 const testcase_hyperg<double>
8498 data170[19] =
8499 {
8500   { 0.040386107340619273, 5.0000000000000000, 10.000000000000000,
8501 	  10.000000000000000, -0.90000000000000002, 0.0 },
8502   { 0.052922149401344633, 5.0000000000000000, 10.000000000000000,
8503 	  10.000000000000000, -0.80000000000000004, 0.0 },
8504   { 0.070429627772374270, 5.0000000000000000, 10.000000000000000,
8505 	  10.000000000000000, -0.69999999999999996, 0.0 },
8506   { 0.095367431640624986, 5.0000000000000000, 10.000000000000000,
8507 	  10.000000000000000, -0.59999999999999998, 0.0 },
8508   { 0.13168724279835389, 5.0000000000000000, 10.000000000000000,
8509 	  10.000000000000000, -0.50000000000000000, 0.0 },
8510   { 0.18593443208187072, 5.0000000000000000, 10.000000000000000,
8511 	  10.000000000000000, -0.39999999999999991, 0.0 },
8512   { 0.26932907434290460, 5.0000000000000000, 10.000000000000000,
8513 	  10.000000000000000, -0.29999999999999993, 0.0 },
8514   { 0.40187757201646102, 5.0000000000000000, 10.000000000000000,
8515 	  10.000000000000000, -0.19999999999999996, 0.0 },
8516   { 0.62092132305915493, 5.0000000000000000, 10.000000000000000,
8517 	  10.000000000000000, -0.099999999999999978, 0.0 },
8518   { 1.0000000000000000, 5.0000000000000000, 10.000000000000000,
8519 	  10.000000000000000, 0.0000000000000000, 0.0 },
8520   { 1.6935087808430296, 5.0000000000000000, 10.000000000000000,
8521 	  10.000000000000000, 0.10000000000000009, 0.0 },
8522   { 3.0517578125000036, 5.0000000000000000, 10.000000000000000,
8523 	  10.000000000000000, 0.20000000000000018, 0.0 },
8524   { 5.9499018266198629, 5.0000000000000000, 10.000000000000000,
8525 	  10.000000000000000, 0.30000000000000004, 0.0 },
8526   { 12.860082304526767, 5.0000000000000000, 10.000000000000000,
8527 	  10.000000000000000, 0.40000000000000013, 0.0 },
8528   { 32.000000000000000, 5.0000000000000000, 10.000000000000000,
8529 	  10.000000000000000, 0.50000000000000000, 0.0 },
8530   { 97.656250000000114, 5.0000000000000000, 10.000000000000000,
8531 	  10.000000000000000, 0.60000000000000009, 0.0 },
8532   { 411.52263374485722, 5.0000000000000000, 10.000000000000000,
8533 	  10.000000000000000, 0.70000000000000018, 0.0 },
8534   { 3124.9999999999995, 5.0000000000000000, 10.000000000000000,
8535 	  10.000000000000000, 0.80000000000000004, 0.0 },
8536   { 100000.00000000055, 5.0000000000000000, 10.000000000000000,
8537 	  10.000000000000000, 0.90000000000000013, 0.0 },
8538 };
8539 const double toler170 = 2.5000000000000020e-13;
8540 
8541 // Test data for a=5.0000000000000000, b=20.000000000000000, c=2.0000000000000000.
8542 // max(|f - f_GSL|): 60129542144.000000 at index 18
8543 // max(|f - f_GSL| / |f_GSL|): 2.0181355730232468e-15
8544 // mean(f - f_GSL): 3164712852.2154636
8545 // variance(f - f_GSL): 1.9029272767041847e+20
8546 // stddev(f - f_GSL): 13794663014.021708
8547 const testcase_hyperg<double>
8548 data171[19] =
8549 {
8550   { -1.8650300348790099e-05, 5.0000000000000000, 20.000000000000000,
8551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8552   { -3.6488008415371319e-05, 5.0000000000000000, 20.000000000000000,
8553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8554   { -6.4614776410961038e-05, 5.0000000000000000, 20.000000000000000,
8555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8556   { -8.4495207102246549e-05, 5.0000000000000000, 20.000000000000000,
8557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8558   { 2.2276197023825424e-05, 5.0000000000000000, 20.000000000000000,
8559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8560   { 0.00070736115111457809, 5.0000000000000000, 20.000000000000000,
8561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8562   { 0.0027829732057272588, 5.0000000000000000, 20.000000000000000,
8563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8564   { 0.0013283545664371644, 5.0000000000000000, 20.000000000000000,
8565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8566   { -0.041767631015048774, 5.0000000000000000, 20.000000000000000,
8567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8568   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8570   { 61.311496556100003, 5.0000000000000000, 20.000000000000000,
8571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8572   { 2397.4420539085872, 5.0000000000000000, 20.000000000000000,
8573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8574   { 103687.60998586559, 5.0000000000000000, 20.000000000000000,
8575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8576   { 6247196.6451069508, 5.0000000000000000, 20.000000000000000,
8577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8578   { 656408576.00000000, 5.0000000000000000, 20.000000000000000,
8579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8580   { 165334768098.54715, 5.0000000000000000, 20.000000000000000,
8581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8582   { 175097125520819.91, 5.0000000000000000, 20.000000000000000,
8583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8584   { 2.6818275451660257e+18, 5.0000000000000000, 20.000000000000000,
8585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8586   { 2.9794600000000777e+25, 5.0000000000000000, 20.000000000000000,
8587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8588 };
8589 const double toler171 = 2.5000000000000020e-13;
8590 
8591 // Test data for a=5.0000000000000000, b=20.000000000000000, c=4.0000000000000000.
8592 // max(|f - f_GSL|): 9437184.0000000000 at index 18
8593 // max(|f - f_GSL| / |f_GSL|): 2.0515617391303805e-15
8594 // mean(f - f_GSL): 496693.97369064158
8595 // variance(f - f_GSL): 4687391593519.1660
8596 // stddev(f - f_GSL): 2165038.4739119918
8597 const testcase_hyperg<double>
8598 data172[19] =
8599 {
8600   { -3.6403884516313627e-06, 5.0000000000000000, 20.000000000000000,
8601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8602   { -9.5873829246491408e-06, 5.0000000000000000, 20.000000000000000,
8603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8604   { -2.6052245147200097e-05, 5.0000000000000000, 20.000000000000000,
8605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8606   { -7.2378303598384501e-05, 5.0000000000000000, 20.000000000000000,
8607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8608   { -0.00020048577321417379, 5.0000000000000000, 20.000000000000000,
8609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8610   { -0.00051222704046234439, 5.0000000000000000, 20.000000000000000,
8611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8612   { -0.00080950511491888959, 5.0000000000000000, 20.000000000000000,
8613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8614   { 0.0043473422174314250, 5.0000000000000000, 20.000000000000000,
8615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8616   { 0.081078342558623853, 5.0000000000000000, 20.000000000000000,
8617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8618   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8620   { 12.794854084397739, 5.0000000000000000, 20.000000000000000,
8621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8622   { 195.15639104739174, 5.0000000000000000, 20.000000000000000,
8623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8624   { 3938.7991953190131, 5.0000000000000000, 20.000000000000000,
8625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8626   { 118521.48653762160, 5.0000000000000000, 20.000000000000000,
8627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8628   { 6291455.9999999972, 5.0000000000000000, 20.000000000000000,
8629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8630   { 773070496.50699198, 5.0000000000000000, 20.000000000000000,
8631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8632   { 363276452167.04718, 5.0000000000000000, 20.000000000000000,
8633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8634   { 2002716064453133.0, 5.0000000000000000, 20.000000000000000,
8635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8636   { 4.6000000000001222e+21, 5.0000000000000000, 20.000000000000000,
8637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8638 };
8639 const double toler172 = 2.5000000000000020e-13;
8640 
8641 // Test data for a=5.0000000000000000, b=20.000000000000000, c=6.0000000000000000.
8642 // max(|f - f_GSL|): 5120.0000000000000 at index 18
8643 // max(|f - f_GSL| / |f_GSL|): 1.7944916193878173e-15
8644 // mean(f - f_GSL): 269.47388985302263
8645 // variance(f - f_GSL): 1379705.1461701661
8646 // stddev(f - f_GSL): 1174.6085076186730
8647 const testcase_hyperg<double>
8648 data173[19] =
8649 {
8650   { 0.00014313323624053599, 5.0000000000000000, 20.000000000000000,
8651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8652   { 0.00025426183473118769, 5.0000000000000000, 20.000000000000000,
8653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8654   { 0.00048255612836437054, 5.0000000000000000, 20.000000000000000,
8655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8656   { 0.00099096904674794185, 5.0000000000000000, 20.000000000000000,
8657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8658   { 0.0022347805521915616, 5.0000000000000000, 20.000000000000000,
8659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8660   { 0.0056271390060294354, 5.0000000000000000, 20.000000000000000,
8661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8662   { 0.016109059519227351, 5.0000000000000000, 20.000000000000000,
8663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8664   { 0.053453465775609076, 5.0000000000000000, 20.000000000000000,
8665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8666   { 0.20995202901839263, 5.0000000000000000, 20.000000000000000,
8667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8668   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8670   { 5.9534372167648799, 5.0000000000000000, 20.000000000000000,
8671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8672   { 46.157632071206095, 5.0000000000000000, 20.000000000000000,
8673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8674   { 494.32074431164915, 5.0000000000000000, 20.000000000000000,
8675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8676   { 7989.5277611776519, 5.0000000000000000, 20.000000000000000,
8677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8678   { 224179.55830753347, 5.0000000000000000, 20.000000000000000,
8679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8680   { 13848144.485282511, 5.0000000000000000, 20.000000000000000,
8681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8682   { 2948587692.8892150, 5.0000000000000000, 20.000000000000000,
8683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8684   { 5940513286161.6602, 5.0000000000000000, 20.000000000000000,
8685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8686   { 2.8531757655946394e+18, 5.0000000000000000, 20.000000000000000,
8687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8688 };
8689 const double toler173 = 2.5000000000000020e-13;
8690 
8691 // Test data for a=5.0000000000000000, b=20.000000000000000, c=8.0000000000000000.
8692 // max(|f - f_GSL|): 7.0000000000000000 at index 18
8693 // max(|f - f_GSL| / |f_GSL|): 1.5351977183413728e-15
8694 // mean(f - f_GSL): 0.36842306154970872
8695 // variance(f - f_GSL): 2.5789458059294108
8696 // stddev(f - f_GSL): 1.6059096506122039
8697 const testcase_hyperg<double>
8698 data174[19] =
8699 {
8700   { 0.0012492049968744917, 5.0000000000000000, 20.000000000000000,
8701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8702   { 0.0019931241968014200, 5.0000000000000000, 20.000000000000000,
8703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8704   { 0.0033203386861410844, 5.0000000000000000, 20.000000000000000,
8705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8706   { 0.0058191894509856774, 5.0000000000000000, 20.000000000000000,
8707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8708   { 0.010830090368313864, 5.0000000000000000, 20.000000000000000,
8709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8710   { 0.021653062305193541, 5.0000000000000000, 20.000000000000000,
8711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8712   { 0.047180821280919195, 5.0000000000000000, 20.000000000000000,
8713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8714   { 0.11405637279736212, 5.0000000000000000, 20.000000000000000,
8715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8716   { 0.31275468794721017, 5.0000000000000000, 20.000000000000000,
8717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8718   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8720   { 3.8598904658643969, 5.0000000000000000, 20.000000000000000,
8721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8722   { 18.806301417906734, 5.0000000000000000, 20.000000000000000,
8723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8724   { 122.77054465017432, 5.0000000000000000, 20.000000000000000,
8725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8726   { 1168.4762146809012, 5.0000000000000000, 20.000000000000000,
8727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8728   { 18437.511788521082, 5.0000000000000000, 20.000000000000000,
8729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8730   { 597441.79669264762, 5.0000000000000000, 20.000000000000000,
8731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8732   { 59390411.369228527, 5.0000000000000000, 20.000000000000000,
8733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8734   { 44681668993.361603, 5.0000000000000000, 20.000000000000000,
8735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8736   { 4559673269683333.0, 5.0000000000000000, 20.000000000000000,
8737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8738 };
8739 const double toler174 = 2.5000000000000020e-13;
8740 
8741 // Test data for a=5.0000000000000000, b=20.000000000000000, c=10.000000000000000.
8742 // max(|f - f_GSL|): 0.029296875000000000 at index 18
8743 // max(|f - f_GSL| / |f_GSL|): 1.8717083246628342e-15
8744 // mean(f - f_GSL): 0.0015419659355661440
8745 // variance(f - f_GSL): 4.5173964710879197e-05
8746 // stddev(f - f_GSL): 0.0067211579888348996
8747 const testcase_hyperg<double>
8748 data175[19] =
8749 {
8750   { 0.0038867957051370739, 5.0000000000000000, 20.000000000000000,
8751 	  10.000000000000000, -0.90000000000000002, 0.0 },
8752   { 0.0058484892597364235, 5.0000000000000000, 20.000000000000000,
8753 	  10.000000000000000, -0.80000000000000004, 0.0 },
8754   { 0.0090987656053758189, 5.0000000000000000, 20.000000000000000,
8755 	  10.000000000000000, -0.69999999999999996, 0.0 },
8756   { 0.014714392537270657, 5.0000000000000000, 20.000000000000000,
8757 	  10.000000000000000, -0.59999999999999998, 0.0 },
8758   { 0.024900404542056772, 5.0000000000000000, 20.000000000000000,
8759 	  10.000000000000000, -0.50000000000000000, 0.0 },
8760   { 0.044460184663785055, 5.0000000000000000, 20.000000000000000,
8761 	  10.000000000000000, -0.39999999999999991, 0.0 },
8762   { 0.084638849196357113, 5.0000000000000000, 20.000000000000000,
8763 	  10.000000000000000, -0.29999999999999993, 0.0 },
8764   { 0.17409058241291026, 5.0000000000000000, 20.000000000000000,
8765 	  10.000000000000000, -0.19999999999999996, 0.0 },
8766   { 0.39357055823580767, 5.0000000000000000, 20.000000000000000,
8767 	  10.000000000000000, -0.099999999999999978, 0.0 },
8768   { 1.0000000000000000, 5.0000000000000000, 20.000000000000000,
8769 	  10.000000000000000, 0.0000000000000000, 0.0 },
8770   { 2.9410794636226596, 5.0000000000000000, 20.000000000000000,
8771 	  10.000000000000000, 0.10000000000000009, 0.0 },
8772   { 10.417226071414374, 5.0000000000000000, 20.000000000000000,
8773 	  10.000000000000000, 0.20000000000000018, 0.0 },
8774   { 46.930585873140835, 5.0000000000000000, 20.000000000000000,
8775 	  10.000000000000000, 0.30000000000000004, 0.0 },
8776   { 290.76717121814988, 5.0000000000000000, 20.000000000000000,
8777 	  10.000000000000000, 0.40000000000000013, 0.0 },
8778   { 2788.1641083374830, 5.0000000000000000, 20.000000000000000,
8779 	  10.000000000000000, 0.50000000000000000, 0.0 },
8780   { 50228.117718560752, 5.0000000000000000, 20.000000000000000,
8781 	  10.000000000000000, 0.60000000000000009, 0.0 },
8782   { 2433042.3476752895, 5.0000000000000000, 20.000000000000000,
8783 	  10.000000000000000, 0.70000000000000018, 0.0 },
8784   { 705345246.77141762, 5.0000000000000000, 20.000000000000000,
8785 	  10.000000000000000, 0.80000000000000004, 0.0 },
8786   { 15652478868617.246, 5.0000000000000000, 20.000000000000000,
8787 	  10.000000000000000, 0.90000000000000013, 0.0 },
8788 };
8789 const double toler175 = 2.5000000000000020e-13;
8790 
8791 // Test data for a=10.000000000000000, b=0.0000000000000000, c=2.0000000000000000.
8792 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8793 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8794 // mean(f - f_GSL): 0.0000000000000000
8795 // variance(f - f_GSL): 0.0000000000000000
8796 // stddev(f - f_GSL): 0.0000000000000000
8797 const testcase_hyperg<double>
8798 data176[19] =
8799 {
8800   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
8802   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
8804   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
8806   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
8808   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
8810   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
8812   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
8814   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
8816   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
8818   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
8820   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
8822   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
8824   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
8826   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
8828   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
8830   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
8832   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
8834   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
8836   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
8838 };
8839 const double toler176 = 2.5000000000000020e-13;
8840 
8841 // Test data for a=10.000000000000000, b=0.0000000000000000, c=4.0000000000000000.
8842 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8843 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8844 // mean(f - f_GSL): 0.0000000000000000
8845 // variance(f - f_GSL): 0.0000000000000000
8846 // stddev(f - f_GSL): 0.0000000000000000
8847 const testcase_hyperg<double>
8848 data177[19] =
8849 {
8850   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
8852   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
8854   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
8856   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
8858   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
8860   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
8862   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
8864   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
8866   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
8868   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
8870   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
8872   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
8874   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
8876   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
8878   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
8880   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
8882   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
8884   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
8886   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
8888 };
8889 const double toler177 = 2.5000000000000020e-13;
8890 
8891 // Test data for a=10.000000000000000, b=0.0000000000000000, c=6.0000000000000000.
8892 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8893 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8894 // mean(f - f_GSL): 0.0000000000000000
8895 // variance(f - f_GSL): 0.0000000000000000
8896 // stddev(f - f_GSL): 0.0000000000000000
8897 const testcase_hyperg<double>
8898 data178[19] =
8899 {
8900   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
8902   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
8904   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
8906   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
8908   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
8910   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
8912   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
8914   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
8916   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
8918   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
8920   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
8922   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
8924   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
8926   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
8928   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
8930   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
8932   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
8934   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
8936   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
8938 };
8939 const double toler178 = 2.5000000000000020e-13;
8940 
8941 // Test data for a=10.000000000000000, b=0.0000000000000000, c=8.0000000000000000.
8942 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8943 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8944 // mean(f - f_GSL): 0.0000000000000000
8945 // variance(f - f_GSL): 0.0000000000000000
8946 // stddev(f - f_GSL): 0.0000000000000000
8947 const testcase_hyperg<double>
8948 data179[19] =
8949 {
8950   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
8952   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
8954   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
8956   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
8958   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
8960   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
8962   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
8964   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
8966   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
8968   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
8970   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
8972   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
8974   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
8976   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
8978   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
8980   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
8982   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
8984   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
8986   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
8987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
8988 };
8989 const double toler179 = 2.5000000000000020e-13;
8990 
8991 // Test data for a=10.000000000000000, b=0.0000000000000000, c=10.000000000000000.
8992 // max(|f - f_GSL|): 0.0000000000000000 at index 0
8993 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
8994 // mean(f - f_GSL): 0.0000000000000000
8995 // variance(f - f_GSL): 0.0000000000000000
8996 // stddev(f - f_GSL): 0.0000000000000000
8997 const testcase_hyperg<double>
8998 data180[19] =
8999 {
9000   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9001 	  10.000000000000000, -0.90000000000000002, 0.0 },
9002   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9003 	  10.000000000000000, -0.80000000000000004, 0.0 },
9004   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9005 	  10.000000000000000, -0.69999999999999996, 0.0 },
9006   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9007 	  10.000000000000000, -0.59999999999999998, 0.0 },
9008   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9009 	  10.000000000000000, -0.50000000000000000, 0.0 },
9010   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9011 	  10.000000000000000, -0.39999999999999991, 0.0 },
9012   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9013 	  10.000000000000000, -0.29999999999999993, 0.0 },
9014   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9015 	  10.000000000000000, -0.19999999999999996, 0.0 },
9016   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9017 	  10.000000000000000, -0.099999999999999978, 0.0 },
9018   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9019 	  10.000000000000000, 0.0000000000000000, 0.0 },
9020   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9021 	  10.000000000000000, 0.10000000000000009, 0.0 },
9022   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9023 	  10.000000000000000, 0.20000000000000018, 0.0 },
9024   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9025 	  10.000000000000000, 0.30000000000000004, 0.0 },
9026   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9027 	  10.000000000000000, 0.40000000000000013, 0.0 },
9028   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9029 	  10.000000000000000, 0.50000000000000000, 0.0 },
9030   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9031 	  10.000000000000000, 0.60000000000000009, 0.0 },
9032   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9033 	  10.000000000000000, 0.70000000000000018, 0.0 },
9034   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9035 	  10.000000000000000, 0.80000000000000004, 0.0 },
9036   { 1.0000000000000000, 10.000000000000000, 0.0000000000000000,
9037 	  10.000000000000000, 0.90000000000000013, 0.0 },
9038 };
9039 const double toler180 = 2.5000000000000020e-13;
9040 
9041 // Test data for a=10.000000000000000, b=0.50000000000000000, c=2.0000000000000000.
9042 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
9043 // max(|f - f_GSL| / |f_GSL|): 1.8229127098647768e-15
9044 // mean(f - f_GSL): 7.8543415046726153e-10
9045 // variance(f - f_GSL): 1.1684633485497506e-17
9046 // stddev(f - f_GSL): 3.4182793164832956e-09
9047 const testcase_hyperg<double>
9048 data181[19] =
9049 {
9050   { 0.37727530159464628, 10.000000000000000, 0.50000000000000000,
9051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9052   { 0.39816010922169059, 10.000000000000000, 0.50000000000000000,
9053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9054   { 0.42283703041362447, 10.000000000000000, 0.50000000000000000,
9055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9056   { 0.45255640448730527, 10.000000000000000, 0.50000000000000000,
9057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9058   { 0.48919507154431119, 10.000000000000000, 0.50000000000000000,
9059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9060   { 0.53569358917731902, 10.000000000000000, 0.50000000000000000,
9061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9062   { 0.59689778897029577, 10.000000000000000, 0.50000000000000000,
9063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9064   { 0.68128587569875765, 10.000000000000000, 0.50000000000000000,
9065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9066   { 0.80478739308790359, 10.000000000000000, 0.50000000000000000,
9067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9068   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9070   { 1.3408664196153621, 10.000000000000000, 0.50000000000000000,
9071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9072   { 2.0175364359923882, 10.000000000000000, 0.50000000000000000,
9073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9074   { 3.6011214553736646, 10.000000000000000, 0.50000000000000000,
9075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9076   { 8.1799429939495489, 10.000000000000000, 0.50000000000000000,
9077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9078   { 25.644834637536000, 10.000000000000000, 0.50000000000000000,
9079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9080   { 123.13738891597615, 10.000000000000000, 0.50000000000000000,
9081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9082   { 1088.7122410321385, 10.000000000000000, 0.50000000000000000,
9083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9084   { 27358.291704709951, 10.000000000000000, 0.50000000000000000,
9085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9086   { 8174369.0266732639, 10.000000000000000, 0.50000000000000000,
9087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9088 };
9089 const double toler181 = 2.5000000000000020e-13;
9090 
9091 // Test data for a=10.000000000000000, b=0.50000000000000000, c=4.0000000000000000.
9092 // max(|f - f_GSL|): 2.0008883439004421e-11 at index 18
9093 // max(|f - f_GSL| / |f_GSL|): 1.5684473872214445e-15
9094 // mean(f - f_GSL): 1.0626587329385841e-12
9095 // variance(f - f_GSL): 2.1050090066796454e-23
9096 // stddev(f - f_GSL): 4.5880377141863658e-12
9097 const testcase_hyperg<double>
9098 data182[19] =
9099 {
9100   { 0.53905528308450823, 10.000000000000000, 0.50000000000000000,
9101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9102   { 0.56235533974376162, 10.000000000000000, 0.50000000000000000,
9103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9104   { 0.58887657983263575, 10.000000000000000, 0.50000000000000000,
9105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9106   { 0.61941227047262937, 10.000000000000000, 0.50000000000000000,
9107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9108   { 0.65504896640793864, 10.000000000000000, 0.50000000000000000,
9109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9110   { 0.69731666644529977, 10.000000000000000, 0.50000000000000000,
9111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9112   { 0.74844073299399116, 10.000000000000000, 0.50000000000000000,
9113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9114   { 0.81178446800105830, 10.000000000000000, 0.50000000000000000,
9115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9116   { 0.89266981277598045, 10.000000000000000, 0.50000000000000000,
9117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9118   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9120   { 1.1497248473106778, 10.000000000000000, 0.50000000000000000,
9121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9122   { 1.3729717112654578, 10.000000000000000, 0.50000000000000000,
9123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9124   { 1.7374982340374392, 10.000000000000000, 0.50000000000000000,
9125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9126   { 2.4134479340960602, 10.000000000000000, 0.50000000000000000,
9127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9128   { 3.9191255240471192, 10.000000000000000, 0.50000000000000000,
9129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9130   { 8.3316373077761270, 10.000000000000000, 0.50000000000000000,
9131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9132   { 28.323020339843417, 10.000000000000000, 0.50000000000000000,
9133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9134   { 225.84286572747891, 10.000000000000000, 0.50000000000000000,
9135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9136   { 12757.127591286826, 10.000000000000000, 0.50000000000000000,
9137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9138 };
9139 const double toler182 = 2.5000000000000020e-13;
9140 
9141 // Test data for a=10.000000000000000, b=0.50000000000000000, c=6.0000000000000000.
9142 // max(|f - f_GSL|): 1.9895196601282805e-13 at index 18
9143 // max(|f - f_GSL| / |f_GSL|): 1.4567107859209851e-15
9144 // mean(f - f_GSL): 1.1043797455481820e-14
9145 // variance(f - f_GSL): 2.0706176432127926e-27
9146 // stddev(f - f_GSL): 4.5504039855959963e-14
9147 const testcase_hyperg<double>
9148 data183[19] =
9149 {
9150   { 0.62672622092226027, 10.000000000000000, 0.50000000000000000,
9151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9152   { 0.64931010269769840, 10.000000000000000, 0.50000000000000000,
9153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9154   { 0.67448067519076293, 10.000000000000000, 0.50000000000000000,
9155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9156   { 0.70276306239803643, 10.000000000000000, 0.50000000000000000,
9157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9158   { 0.73484179773087521, 10.000000000000000, 0.50000000000000000,
9159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9160   { 0.77162761412743874, 10.000000000000000, 0.50000000000000000,
9161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9162   { 0.81436116844816553, 10.000000000000000, 0.50000000000000000,
9163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9164   { 0.86477994787944579, 10.000000000000000, 0.50000000000000000,
9165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9166   { 0.92539820516603888, 10.000000000000000, 0.50000000000000000,
9167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9168   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9170   { 1.0945599448210315, 10.000000000000000, 0.50000000000000000,
9171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9172   { 1.2190897395597269, 10.000000000000000, 0.50000000000000000,
9173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9174   { 1.3916844336856475, 10.000000000000000, 0.50000000000000000,
9175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9176   { 1.6484497630432020, 10.000000000000000, 0.50000000000000000,
9177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9178   { 2.0717772717131155, 10.000000000000000, 0.50000000000000000,
9179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9180   { 2.8893613630810924, 10.000000000000000, 0.50000000000000000,
9181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9182   { 4.9459404075413573, 10.000000000000000, 0.50000000000000000,
9183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9184   { 13.487394149998716, 10.000000000000000, 0.50000000000000000,
9185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9186   { 136.57616044014080, 10.000000000000000, 0.50000000000000000,
9187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9188 };
9189 const double toler183 = 2.5000000000000020e-13;
9190 
9191 // Test data for a=10.000000000000000, b=0.50000000000000000, c=8.0000000000000000.
9192 // max(|f - f_GSL|): 1.2434497875801753e-14 at index 18
9193 // max(|f - f_GSL| / |f_GSL|): 1.3245081211977792e-15
9194 // mean(f - f_GSL): 8.5311874523827817e-16
9195 // variance(f - f_GSL): 7.8655509529357183e-30
9196 // stddev(f - f_GSL): 2.8045589587198410e-15
9197 const testcase_hyperg<double>
9198 data184[19] =
9199 {
9200   { 0.68421604440344319, 10.000000000000000, 0.50000000000000000,
9201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9202   { 0.70548098055548925, 10.000000000000000, 0.50000000000000000,
9203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9204   { 0.72884342311710337, 10.000000000000000, 0.50000000000000000,
9205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9206   { 0.75466953437856232, 10.000000000000000, 0.50000000000000000,
9207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9208   { 0.78342090924662589, 10.000000000000000, 0.50000000000000000,
9209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9210   { 0.81568884278645115, 10.000000000000000, 0.50000000000000000,
9211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9212   { 0.85224480241465261, 10.000000000000000, 0.50000000000000000,
9213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9214   { 0.89411692571131685, 10.000000000000000, 0.50000000000000000,
9215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9216   { 0.94270986892954811, 10.000000000000000, 0.50000000000000000,
9217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9218   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9220   { 1.0688682849120232, 10.000000000000000, 0.50000000000000000,
9221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9222   { 1.1537004376097553, 10.000000000000000, 0.50000000000000000,
9223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9224   { 1.2615455028370031, 10.000000000000000, 0.50000000000000000,
9225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9226   { 1.4045541456153443, 10.000000000000000, 0.50000000000000000,
9227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9228   { 1.6057216489444517, 10.000000000000000, 0.50000000000000000,
9229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9230   { 1.9146603020550739, 10.000000000000000, 0.50000000000000000,
9231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9232   { 2.4617931307620307, 10.000000000000000, 0.50000000000000000,
9233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9234   { 3.7267799624996498, 10.000000000000000, 0.50000000000000000,
9235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9236   { 9.3880118036248721, 10.000000000000000, 0.50000000000000000,
9237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9238 };
9239 const double toler184 = 2.5000000000000020e-13;
9240 
9241 // Test data for a=10.000000000000000, b=0.50000000000000000, c=10.000000000000000.
9242 // max(|f - f_GSL|): 4.4408920985006262e-16 at index 18
9243 // max(|f - f_GSL| / |f_GSL|): 1.8577584504832499e-16
9244 // mean(f - f_GSL): 5.8432790769745078e-18
9245 // variance(f - f_GSL): 1.1262748212790853e-32
9246 // stddev(f - f_GSL): 1.0612609581432294e-16
9247 const testcase_hyperg<double>
9248 data185[19] =
9249 {
9250   { 0.72547625011001160, 10.000000000000000, 0.50000000000000000,
9251 	  10.000000000000000, -0.90000000000000002, 0.0 },
9252   { 0.74535599249992990, 10.000000000000000, 0.50000000000000000,
9253 	  10.000000000000000, -0.80000000000000004, 0.0 },
9254   { 0.76696498884737041, 10.000000000000000, 0.50000000000000000,
9255 	  10.000000000000000, -0.69999999999999996, 0.0 },
9256   { 0.79056941504209477, 10.000000000000000, 0.50000000000000000,
9257 	  10.000000000000000, -0.59999999999999998, 0.0 },
9258   { 0.81649658092772603, 10.000000000000000, 0.50000000000000000,
9259 	  10.000000000000000, -0.50000000000000000, 0.0 },
9260   { 0.84515425472851669, 10.000000000000000, 0.50000000000000000,
9261 	  10.000000000000000, -0.39999999999999991, 0.0 },
9262   { 0.87705801930702931, 10.000000000000000, 0.50000000000000000,
9263 	  10.000000000000000, -0.29999999999999993, 0.0 },
9264   { 0.91287092917527690, 10.000000000000000, 0.50000000000000000,
9265 	  10.000000000000000, -0.19999999999999996, 0.0 },
9266   { 0.95346258924559224, 10.000000000000000, 0.50000000000000000,
9267 	  10.000000000000000, -0.099999999999999978, 0.0 },
9268   { 1.0000000000000000, 10.000000000000000, 0.50000000000000000,
9269 	  10.000000000000000, 0.0000000000000000, 0.0 },
9270   { 1.0540925533894598, 10.000000000000000, 0.50000000000000000,
9271 	  10.000000000000000, 0.10000000000000009, 0.0 },
9272   { 1.1180339887498949, 10.000000000000000, 0.50000000000000000,
9273 	  10.000000000000000, 0.20000000000000018, 0.0 },
9274   { 1.1952286093343938, 10.000000000000000, 0.50000000000000000,
9275 	  10.000000000000000, 0.30000000000000004, 0.0 },
9276   { 1.2909944487358058, 10.000000000000000, 0.50000000000000000,
9277 	  10.000000000000000, 0.40000000000000013, 0.0 },
9278   { 1.4142135623730951, 10.000000000000000, 0.50000000000000000,
9279 	  10.000000000000000, 0.50000000000000000, 0.0 },
9280   { 1.5811388300841900, 10.000000000000000, 0.50000000000000000,
9281 	  10.000000000000000, 0.60000000000000009, 0.0 },
9282   { 1.8257418583505542, 10.000000000000000, 0.50000000000000000,
9283 	  10.000000000000000, 0.70000000000000018, 0.0 },
9284   { 2.2360679774997898, 10.000000000000000, 0.50000000000000000,
9285 	  10.000000000000000, 0.80000000000000004, 0.0 },
9286   { 3.1622776601683809, 10.000000000000000, 0.50000000000000000,
9287 	  10.000000000000000, 0.90000000000000013, 0.0 },
9288 };
9289 const double toler185 = 2.5000000000000020e-13;
9290 
9291 // Test data for a=10.000000000000000, b=1.0000000000000000, c=2.0000000000000000.
9292 // max(|f - f_GSL|): 2.0861625671386719e-07 at index 18
9293 // max(|f - f_GSL| / |f_GSL|): 1.6897916810721003e-15
9294 // mean(f - f_GSL): 1.0989192059253727e-08
9295 // variance(f - f_GSL): 2.2903477685061008e-15
9296 // stddev(f - f_GSL): 4.7857577963224392e-08
9297 const testcase_hyperg<double>
9298 data186[19] =
9299 {
9300   { 0.12307420104127866, 10.000000000000000, 1.0000000000000000,
9301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9302   { 0.13818870041457434, 10.000000000000000, 1.0000000000000000,
9303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9304   { 0.15739165631811705, 10.000000000000000, 1.0000000000000000,
9305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9306   { 0.18249038606882081, 10.000000000000000, 1.0000000000000000,
9307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9308   { 0.21644171225027795, 10.000000000000000, 1.0000000000000000,
9309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9310   { 0.26433326159804149, 10.000000000000000, 1.0000000000000000,
9311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9312   { 0.33544459430654527, 10.000000000000000, 1.0000000000000000,
9313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9314   { 0.44788516696232511, 10.000000000000000, 1.0000000000000000,
9315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9316   { 0.63989153514168373, 10.000000000000000, 1.0000000000000000,
9317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9318   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9320   { 1.7568608796813312, 10.000000000000000, 1.0000000000000000,
9321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9322   { 3.5836558871799102, 10.000000000000000, 1.0000000000000000,
9323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9324   { 8.8077526749963226, 10.000000000000000, 1.0000000000000000,
9325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9326   { 27.285841702089265, 10.000000000000000, 1.0000000000000000,
9327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9328   { 113.55555555555557, 10.000000000000000, 1.0000000000000000,
9329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9330   { 706.24023437500091, 10.000000000000000, 1.0000000000000000,
9331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9332   { 8064.1687976652511, 10.000000000000000, 1.0000000000000000,
9333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9334   { 271267.22222222196, 10.000000000000000, 1.0000000000000000,
9335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9336   { 123456790.00000113, 10.000000000000000, 1.0000000000000000,
9337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9338 };
9339 const double toler186 = 2.5000000000000020e-13;
9340 
9341 // Test data for a=10.000000000000000, b=1.0000000000000000, c=4.0000000000000000.
9342 // max(|f - f_GSL|): 2.6193447411060333e-10 at index 18
9343 // max(|f - f_GSL| / |f_GSL|): 1.6039867544159698e-15
9344 // mean(f - f_GSL): 1.3861192895235850e-11
9345 // variance(f - f_GSL): 3.6088478524883243e-21
9346 // stddev(f - f_GSL): 6.0073686856129647e-11
9347 const testcase_hyperg<double>
9348 data187[19] =
9349 {
9350   { 0.28363728383055781, 10.000000000000000, 1.0000000000000000,
9351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9352   { 0.30933003169808387, 10.000000000000000, 1.0000000000000000,
9353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9354   { 0.33998437757128797, 10.000000000000000, 1.0000000000000000,
9355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9356   { 0.37713553224291113, 10.000000000000000, 1.0000000000000000,
9357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9358   { 0.42299736538419669, 10.000000000000000, 1.0000000000000000,
9359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9360   { 0.48086597727600089, 10.000000000000000, 1.0000000000000000,
9361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9362   { 0.55583495759293033, 10.000000000000000, 1.0000000000000000,
9363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9364   { 0.65612850114039678, 10.000000000000000, 1.0000000000000000,
9365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9366   { 0.79573668772968142, 10.000000000000000, 1.0000000000000000,
9367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9368   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9370   { 1.3184712058058303, 10.000000000000000, 1.0000000000000000,
9371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9372   { 1.8576958065941236, 10.000000000000000, 1.0000000000000000,
9373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9374   { 2.8759509651764228, 10.000000000000000, 1.0000000000000000,
9375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9376   { 5.1046225531822289, 10.000000000000000, 1.0000000000000000,
9377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9378   { 11.095238095238095, 10.000000000000000, 1.0000000000000000,
9379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9380   { 32.797154017857174, 10.000000000000000, 1.0000000000000000,
9381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9382   { 158.01935680536548, 10.000000000000000, 1.0000000000000000,
9383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9384   { 1815.9523809523814, 10.000000000000000, 1.0000000000000000,
9385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9386   { 163302.14285714392, 10.000000000000000, 1.0000000000000000,
9387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9388 };
9389 const double toler187 = 2.5000000000000020e-13;
9390 
9391 // Test data for a=10.000000000000000, b=1.0000000000000000, c=6.0000000000000000.
9392 // max(|f - f_GSL|): 2.0463630789890885e-12 at index 18
9393 // max(|f - f_GSL| / |f_GSL|): 1.5238873992471854e-15
9394 // mean(f - f_GSL): 1.1029773585697082e-13
9395 // variance(f - f_GSL): 2.1981059026132227e-25
9396 // stddev(f - f_GSL): 4.6883962104468326e-13
9397 const testcase_hyperg<double>
9398 data188[19] =
9399 {
9400   { 0.39006633302741811, 10.000000000000000, 1.0000000000000000,
9401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9402   { 0.41898885698103278, 10.000000000000000, 1.0000000000000000,
9403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9404   { 0.45245557983812590, 10.000000000000000, 1.0000000000000000,
9405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9406   { 0.49160548618861627, 10.000000000000000, 1.0000000000000000,
9407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9408   { 0.53798419230517991, 10.000000000000000, 1.0000000000000000,
9409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9410   { 0.59373881442067322, 10.000000000000000, 1.0000000000000000,
9411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9412   { 0.66193391357076092, 10.000000000000000, 1.0000000000000000,
9413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9414   { 0.74708402736952118, 10.000000000000000, 1.0000000000000000,
9415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9416   { 0.85609281019430605, 10.000000000000000, 1.0000000000000000,
9417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9418   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9420   { 1.1974451135148187, 10.000000000000000, 1.0000000000000000,
9421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9422   { 1.4820886036706358, 10.000000000000000, 1.0000000000000000,
9423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9424   { 1.9201183180477521, 10.000000000000000, 1.0000000000000000,
9425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9426   { 2.6569338297733367, 10.000000000000000, 1.0000000000000000,
9427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9428   { 4.0634920634920650, 10.000000000000000, 1.0000000000000000,
9429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9430   { 7.3102678571428568, 10.000000000000000, 1.0000000000000000,
9431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9432   { 17.512574302697782, 10.000000000000000, 1.0000000000000000,
9433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9434   { 74.206349206349131, 10.000000000000000, 1.0000000000000000,
9435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9436   { 1342.8571428571502, 10.000000000000000, 1.0000000000000000,
9437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9438 };
9439 const double toler188 = 2.5000000000000020e-13;
9440 
9441 // Test data for a=10.000000000000000, b=1.0000000000000000, c=8.0000000000000000.
9442 // max(|f - f_GSL|): 7.8159700933611020e-14 at index 18
9443 // max(|f - f_GSL| / |f_GSL|): 1.4210854715201975e-15
9444 // mean(f - f_GSL): 4.6629367034256575e-15
9445 // variance(f - f_GSL): 3.1677071819086927e-28
9446 // stddev(f - f_GSL): 1.7798053775367387e-14
9447 const testcase_hyperg<double>
9448 data189[19] =
9449 {
9450   { 0.46726928123633210, 10.000000000000000, 1.0000000000000000,
9451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9452   { 0.49687547629934464, 10.000000000000000, 1.0000000000000000,
9453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9454   { 0.53045208856322223, 10.000000000000000, 1.0000000000000000,
9455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9456   { 0.56884765624999989, 10.000000000000000, 1.0000000000000000,
9457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9458   { 0.61316872427983504, 10.000000000000000, 1.0000000000000000,
9459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9460   { 0.66488500161969544, 10.000000000000000, 1.0000000000000000,
9461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9462   { 0.72598998634501621, 10.000000000000000, 1.0000000000000000,
9463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9464   { 0.79925411522633760, 10.000000000000000, 1.0000000000000000,
9465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9466   { 0.88863845062192182, 10.000000000000000, 1.0000000000000000,
9467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9468   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9470   { 1.1423563481176653, 10.000000000000000, 1.0000000000000000,
9471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9472   { 1.3302951388888891, 10.000000000000000, 1.0000000000000000,
9473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9474   { 1.5889212827988335, 10.000000000000000, 1.0000000000000000,
9475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9476   { 1.9650205761316886, 10.000000000000000, 1.0000000000000000,
9477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9478   { 2.5555555555555549, 10.000000000000000, 1.0000000000000000,
9479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9480   { 3.5937500000000013, 10.000000000000000, 1.0000000000000000,
9481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9482   { 5.7818930041152274, 10.000000000000000, 1.0000000000000000,
9483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9484   { 12.222222222222220, 10.000000000000000, 1.0000000000000000,
9485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9486   { 55.000000000000114, 10.000000000000000, 1.0000000000000000,
9487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9488 };
9489 const double toler189 = 2.5000000000000020e-13;
9490 
9491 // Test data for a=10.000000000000000, b=1.0000000000000000, c=10.000000000000000.
9492 // max(|f - f_GSL|): 1.7763568394002505e-15 at index 18
9493 // max(|f - f_GSL| / |f_GSL|): 1.9984014443252816e-16
9494 // mean(f - f_GSL): 7.5962628000668607e-17
9495 // variance(f - f_GSL): 1.6955391669463862e-31
9496 // stddev(f - f_GSL): 4.1176925175957300e-16
9497 const testcase_hyperg<double>
9498 data190[19] =
9499 {
9500   { 0.52631578947368429, 10.000000000000000, 1.0000000000000000,
9501 	  10.000000000000000, -0.90000000000000002, 0.0 },
9502   { 0.55555555555555558, 10.000000000000000, 1.0000000000000000,
9503 	  10.000000000000000, -0.80000000000000004, 0.0 },
9504   { 0.58823529411764708, 10.000000000000000, 1.0000000000000000,
9505 	  10.000000000000000, -0.69999999999999996, 0.0 },
9506   { 0.62500000000000000, 10.000000000000000, 1.0000000000000000,
9507 	  10.000000000000000, -0.59999999999999998, 0.0 },
9508   { 0.66666666666666663, 10.000000000000000, 1.0000000000000000,
9509 	  10.000000000000000, -0.50000000000000000, 0.0 },
9510   { 0.71428571428571430, 10.000000000000000, 1.0000000000000000,
9511 	  10.000000000000000, -0.39999999999999991, 0.0 },
9512   { 0.76923076923076938, 10.000000000000000, 1.0000000000000000,
9513 	  10.000000000000000, -0.29999999999999993, 0.0 },
9514   { 0.83333333333333337, 10.000000000000000, 1.0000000000000000,
9515 	  10.000000000000000, -0.19999999999999996, 0.0 },
9516   { 0.90909090909090906, 10.000000000000000, 1.0000000000000000,
9517 	  10.000000000000000, -0.099999999999999978, 0.0 },
9518   { 1.0000000000000000, 10.000000000000000, 1.0000000000000000,
9519 	  10.000000000000000, 0.0000000000000000, 0.0 },
9520   { 1.1111111111111112, 10.000000000000000, 1.0000000000000000,
9521 	  10.000000000000000, 0.10000000000000009, 0.0 },
9522   { 1.2500000000000002, 10.000000000000000, 1.0000000000000000,
9523 	  10.000000000000000, 0.20000000000000018, 0.0 },
9524   { 1.4285714285714286, 10.000000000000000, 1.0000000000000000,
9525 	  10.000000000000000, 0.30000000000000004, 0.0 },
9526   { 1.6666666666666670, 10.000000000000000, 1.0000000000000000,
9527 	  10.000000000000000, 0.40000000000000013, 0.0 },
9528   { 2.0000000000000000, 10.000000000000000, 1.0000000000000000,
9529 	  10.000000000000000, 0.50000000000000000, 0.0 },
9530   { 2.5000000000000009, 10.000000000000000, 1.0000000000000000,
9531 	  10.000000000000000, 0.60000000000000009, 0.0 },
9532   { 3.3333333333333348, 10.000000000000000, 1.0000000000000000,
9533 	  10.000000000000000, 0.70000000000000018, 0.0 },
9534   { 5.0000000000000009, 10.000000000000000, 1.0000000000000000,
9535 	  10.000000000000000, 0.80000000000000004, 0.0 },
9536   { 10.000000000000011, 10.000000000000000, 1.0000000000000000,
9537 	  10.000000000000000, 0.90000000000000013, 0.0 },
9538 };
9539 const double toler190 = 2.5000000000000020e-13;
9540 
9541 // Test data for a=10.000000000000000, b=2.0000000000000000, c=2.0000000000000000.
9542 // max(|f - f_GSL|): 2.2888183593750000e-05 at index 18
9543 // max(|f - f_GSL| / |f_GSL|): 2.4795532226562509e-15
9544 // mean(f - f_GSL): 1.2059140510950354e-06
9545 // variance(f - f_GSL): 2.7568813079896666e-11
9546 // stddev(f - f_GSL): 5.2506012112801583e-06
9547 const testcase_hyperg<double>
9548 data191[19] =
9549 {
9550   { 0.0016310376661280216, 10.000000000000000, 2.0000000000000000,
9551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9552   { 0.0028007538972582421, 10.000000000000000, 2.0000000000000000,
9553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9554   { 0.0049603324681551939, 10.000000000000000, 2.0000000000000000,
9555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9556   { 0.0090949470177292789, 10.000000000000000, 2.0000000000000000,
9557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9558   { 0.017341529915832606, 10.000000000000000, 2.0000000000000000,
9559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9560   { 0.034571613033607791, 10.000000000000000, 2.0000000000000000,
9561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9562   { 0.072538150286405839, 10.000000000000000, 2.0000000000000000,
9563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9564   { 0.16150558288984579, 10.000000000000000, 2.0000000000000000,
9565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9566   { 0.38554328942953142, 10.000000000000000, 2.0000000000000000,
9567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9568   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9570   { 2.8679719907924444, 10.000000000000000, 2.0000000000000000,
9571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9572   { 9.3132257461548065, 10.000000000000000, 2.0000000000000000,
9573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9574   { 35.401331746414378, 10.000000000000000, 2.0000000000000000,
9575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9576   { 165.38171687920246, 10.000000000000000, 2.0000000000000000,
9577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9578   { 1024.0000000000000, 10.000000000000000, 2.0000000000000000,
9579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9580   { 9536.7431640625218, 10.000000000000000, 2.0000000000000000,
9581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9582   { 169350.87808430390, 10.000000000000000, 2.0000000000000000,
9583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9584   { 9765624.9999999963, 10.000000000000000, 2.0000000000000000,
9585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9586   { 10000000000.000111, 10.000000000000000, 2.0000000000000000,
9587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9588 };
9589 const double toler191 = 2.5000000000000020e-13;
9590 
9591 // Test data for a=10.000000000000000, b=2.0000000000000000, c=4.0000000000000000.
9592 // max(|f - f_GSL|): 1.4901161193847656e-08 at index 18
9593 // max(|f - f_GSL| / |f_GSL|): 1.4958811384436608e-15
9594 // mean(f - f_GSL): 7.8582773037277017e-10
9595 // variance(f - f_GSL): 1.1683981904064149e-17
9596 // stddev(f - f_GSL): 3.4181840067591665e-09
9597 const testcase_hyperg<double>
9598 data192[19] =
9599 {
9600   { 0.071191280690193537, 10.000000000000000, 2.0000000000000000,
9601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9602   { 0.085646504654238384, 10.000000000000000, 2.0000000000000000,
9603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9604   { 0.10478215656371109, 10.000000000000000, 2.0000000000000000,
9605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9606   { 0.13074816337653578, 10.000000000000000, 2.0000000000000000,
9607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9608   { 0.16701141666848118, 10.000000000000000, 2.0000000000000000,
9609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9610   { 0.21939323375313963, 10.000000000000000, 2.0000000000000000,
9611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9612   { 0.29813515331786639, 10.000000000000000, 2.0000000000000000,
9613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9614   { 0.42225974638874397, 10.000000000000000, 2.0000000000000000,
9615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9616   { 0.62942145962174878, 10.000000000000000, 2.0000000000000000,
9617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9618   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9620   { 1.7218685262373197, 10.000000000000000, 2.0000000000000000,
9621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9622   { 3.2855760483514738, 10.000000000000000, 2.0000000000000000,
9623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9624   { 7.1616652508907093, 10.000000000000000, 2.0000000000000000,
9625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9626   { 18.612326808485950, 10.000000000000000, 2.0000000000000000,
9627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9628   { 61.476190476190474, 10.000000000000000, 2.0000000000000000,
9629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9630   { 286.27580915178623, 10.000000000000000, 2.0000000000000000,
9631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9632   { 2274.9441142102414, 10.000000000000000, 2.0000000000000000,
9633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9634   { 47229.761904761865, 10.000000000000000, 2.0000000000000000,
9635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9636   { 9961460.7142858077, 10.000000000000000, 2.0000000000000000,
9637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9638 };
9639 const double toler192 = 2.5000000000000020e-13;
9640 
9641 // Test data for a=10.000000000000000, b=2.0000000000000000, c=6.0000000000000000.
9642 // max(|f - f_GSL|): 8.7311491370201111e-11 at index 18
9643 // max(|f - f_GSL| / |f_GSL|): 1.5843951771650161e-15
9644 // mean(f - f_GSL): 4.6467391338242840e-12
9645 // variance(f - f_GSL): 4.0072766661644994e-22
9646 // stddev(f - f_GSL): 2.0018183399510804e-11
9647 const testcase_hyperg<double>
9648 data193[19] =
9649 {
9650   { 0.14747230019381058, 10.000000000000000, 2.0000000000000000,
9651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9652   { 0.17073600100690609, 10.000000000000000, 2.0000000000000000,
9653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9654   { 0.19982795745135354, 10.000000000000000, 2.0000000000000000,
9655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9656   { 0.23681776864188053, 10.000000000000000, 2.0000000000000000,
9657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9658   { 0.28475624360398011, 10.000000000000000, 2.0000000000000000,
9659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9660   { 0.34827500743063161, 10.000000000000000, 2.0000000000000000,
9661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9662   { 0.43464829159684687, 10.000000000000000, 2.0000000000000000,
9663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9664   { 0.55576053438064787, 10.000000000000000, 2.0000000000000000,
9665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9666   { 0.73195020913445530, 10.000000000000000, 2.0000000000000000,
9667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9668   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9670   { 1.4310223867822929, 10.000000000000000, 2.0000000000000000,
9671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9672   { 2.1742563399057566, 10.000000000000000, 2.0000000000000000,
9673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9674   { 3.5769231236256043, 10.000000000000000, 2.0000000000000000,
9675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9676   { 6.5620441134844469, 10.000000000000000, 2.0000000000000000,
9677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9678   { 14.063492063492063, 10.000000000000000, 2.0000000000000000,
9679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9680   { 38.085937500000036, 10.000000000000000, 2.0000000000000000,
9681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9682   { 150.92973632068330, 10.000000000000000, 2.0000000000000000,
9683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9684   { 1212.3015873015852, 10.000000000000000, 2.0000000000000000,
9685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9686   { 55107.142857143110, 10.000000000000000, 2.0000000000000000,
9687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9688 };
9689 const double toler193 = 2.5000000000000020e-13;
9690 
9691 // Test data for a=10.000000000000000, b=2.0000000000000000, c=8.0000000000000000.
9692 // max(|f - f_GSL|): 1.8189894035458565e-12 at index 18
9693 // max(|f - f_GSL| / |f_GSL|): 1.4848893090170230e-15
9694 // mean(f - f_GSL): 1.0027066896088256e-13
9695 // variance(f - f_GSL): 1.7322804840633983e-25
9696 // stddev(f - f_GSL): 4.1620673757922257e-13
9697 const testcase_hyperg<double>
9698 data194[19] =
9699 {
9700   { 0.21658059714090577, 10.000000000000000, 2.0000000000000000,
9701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9702   { 0.24513539602702861, 10.000000000000000, 2.0000000000000000,
9703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9704   { 0.27967018274845046, 10.000000000000000, 2.0000000000000000,
9705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9706   { 0.32196044921875022, 10.000000000000000, 2.0000000000000000,
9707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9708   { 0.37448559670781911, 10.000000000000000, 2.0000000000000000,
9709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9710   { 0.44078856032208802, 10.000000000000000, 2.0000000000000000,
9711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9712   { 0.52606701446027793, 10.000000000000000, 2.0000000000000000,
9713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9714   { 0.63818158436213956, 10.000000000000000, 2.0000000000000000,
9715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9716   { 0.78944971882612769, 10.000000000000000, 2.0000000000000000,
9717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9718   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9720   { 1.3044251384443430, 10.000000000000000, 2.0000000000000000,
9721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9722   { 1.7659505208333344, 10.000000000000000, 2.0000000000000000,
9723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9724   { 2.5093710953769270, 10.000000000000000, 2.0000000000000000,
9725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9726   { 3.8065843621399202, 10.000000000000000, 2.0000000000000000,
9727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9728   { 6.3333333333333313, 10.000000000000000, 2.0000000000000000,
9729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9730   { 12.109375000000004, 10.000000000000000, 2.0000000000000000,
9731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9732   { 29.115226337448608, 10.000000000000000, 2.0000000000000000,
9733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9734   { 108.33333333333330, 10.000000000000000, 2.0000000000000000,
9735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9736   { 1225.0000000000023, 10.000000000000000, 2.0000000000000000,
9737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9738 };
9739 const double toler194 = 2.5000000000000020e-13;
9740 
9741 // Test data for a=10.000000000000000, b=2.0000000000000000, c=10.000000000000000.
9742 // max(|f - f_GSL|): 4.2632564145606011e-14 at index 18
9743 // max(|f - f_GSL| / |f_GSL|): 4.2632564145605916e-16
9744 // mean(f - f_GSL): 2.3636063866361887e-15
9745 // variance(f - f_GSL): 9.5093179694074762e-29
9746 // stddev(f - f_GSL): 9.7515731907254209e-15
9747 const testcase_hyperg<double>
9748 data195[19] =
9749 {
9750   { 0.27700831024930750, 10.000000000000000, 2.0000000000000000,
9751 	  10.000000000000000, -0.90000000000000002, 0.0 },
9752   { 0.30864197530864196, 10.000000000000000, 2.0000000000000000,
9753 	  10.000000000000000, -0.80000000000000004, 0.0 },
9754   { 0.34602076124567477, 10.000000000000000, 2.0000000000000000,
9755 	  10.000000000000000, -0.69999999999999996, 0.0 },
9756   { 0.39062500000000000, 10.000000000000000, 2.0000000000000000,
9757 	  10.000000000000000, -0.59999999999999998, 0.0 },
9758   { 0.44444444444444442, 10.000000000000000, 2.0000000000000000,
9759 	  10.000000000000000, -0.50000000000000000, 0.0 },
9760   { 0.51020408163265318, 10.000000000000000, 2.0000000000000000,
9761 	  10.000000000000000, -0.39999999999999991, 0.0 },
9762   { 0.59171597633136108, 10.000000000000000, 2.0000000000000000,
9763 	  10.000000000000000, -0.29999999999999993, 0.0 },
9764   { 0.69444444444444442, 10.000000000000000, 2.0000000000000000,
9765 	  10.000000000000000, -0.19999999999999996, 0.0 },
9766   { 0.82644628099173545, 10.000000000000000, 2.0000000000000000,
9767 	  10.000000000000000, -0.099999999999999978, 0.0 },
9768   { 1.0000000000000000, 10.000000000000000, 2.0000000000000000,
9769 	  10.000000000000000, 0.0000000000000000, 0.0 },
9770   { 1.2345679012345683, 10.000000000000000, 2.0000000000000000,
9771 	  10.000000000000000, 0.10000000000000009, 0.0 },
9772   { 1.5625000000000007, 10.000000000000000, 2.0000000000000000,
9773 	  10.000000000000000, 0.20000000000000018, 0.0 },
9774   { 2.0408163265306127, 10.000000000000000, 2.0000000000000000,
9775 	  10.000000000000000, 0.30000000000000004, 0.0 },
9776   { 2.7777777777777795, 10.000000000000000, 2.0000000000000000,
9777 	  10.000000000000000, 0.40000000000000013, 0.0 },
9778   { 4.0000000000000000, 10.000000000000000, 2.0000000000000000,
9779 	  10.000000000000000, 0.50000000000000000, 0.0 },
9780   { 6.2500000000000027, 10.000000000000000, 2.0000000000000000,
9781 	  10.000000000000000, 0.60000000000000009, 0.0 },
9782   { 11.111111111111125, 10.000000000000000, 2.0000000000000000,
9783 	  10.000000000000000, 0.70000000000000018, 0.0 },
9784   { 25.000000000000007, 10.000000000000000, 2.0000000000000000,
9785 	  10.000000000000000, 0.80000000000000004, 0.0 },
9786   { 100.00000000000023, 10.000000000000000, 2.0000000000000000,
9787 	  10.000000000000000, 0.90000000000000013, 0.0 },
9788 };
9789 const double toler195 = 2.5000000000000020e-13;
9790 
9791 // Test data for a=10.000000000000000, b=5.0000000000000000, c=2.0000000000000000.
9792 // max(|f - f_GSL|): 0.81250000000000000 at index 18
9793 // max(|f - f_GSL| / |f_GSL|): 1.8182428501096257e-15
9794 // mean(f - f_GSL): 0.042765168793266639
9795 // variance(f - f_GSL): 0.034744884250260212
9796 // stddev(f - f_GSL): 0.18639979680852714
9797 const testcase_hyperg<double>
9798 data196[19] =
9799 {
9800   { 0.00063586451658060813, 10.000000000000000, 5.0000000000000000,
9801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
9802   { 0.0010334743461763829, 10.000000000000000, 5.0000000000000000,
9803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
9804   { 0.0015326246054669763, 10.000000000000000, 5.0000000000000000,
9805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
9806   { 0.0019007018181583513, 10.000000000000000, 5.0000000000000000,
9807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
9808   { 0.0012845577715431562, 10.000000000000000, 5.0000000000000000,
9809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
9810   { -0.0027213806178060305, 10.000000000000000, 5.0000000000000000,
9811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
9812   { -0.015121744574954044, 10.000000000000000, 5.0000000000000000,
9813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
9814   { -0.036637840562974290, 10.000000000000000, 5.0000000000000000,
9815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
9816   { 0.019117849062621605, 10.000000000000000, 5.0000000000000000,
9817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
9818   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
9820   { 9.8116901852350615, 10.000000000000000, 5.0000000000000000,
9821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
9822   { 84.255589172244427, 10.000000000000000, 5.0000000000000000,
9823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
9824   { 773.87517619421294, 10.000000000000000, 5.0000000000000000,
9825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
9826   { 8556.9725363054076, 10.000000000000000, 5.0000000000000000,
9827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
9828   { 129023.99999999996, 10.000000000000000, 5.0000000000000000,
9829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
9830   { 3174543.3807373112, 10.000000000000000, 5.0000000000000000,
9831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
9832   { 175133896.95814583, 10.000000000000000, 5.0000000000000000,
9833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
9834   { 43564453125.000061, 10.000000000000000, 5.0000000000000000,
9835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
9836   { 446860000000007.00, 10.000000000000000, 5.0000000000000000,
9837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
9838 };
9839 const double toler196 = 2.5000000000000020e-13;
9840 
9841 // Test data for a=10.000000000000000, b=5.0000000000000000, c=4.0000000000000000.
9842 // max(|f - f_GSL|): 0.00039672851562500000 at index 18
9843 // max(|f - f_GSL| / |f_GSL|): 1.6882064494680641e-15
9844 // mean(f - f_GSL): 2.0884382210121993e-05
9845 // variance(f - f_GSL): 8.2836958019297269e-09
9846 // stddev(f - f_GSL): 9.1014810893226203e-05
9847 const testcase_hyperg<double>
9848 data197[19] =
9849 {
9850   { -0.00030045430691814646, 10.000000000000000, 5.0000000000000000,
9851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
9852   { -0.00031119487747322054, 10.000000000000000, 5.0000000000000000,
9853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
9854   { -0.00014589213141656318, 10.000000000000000, 5.0000000000000000,
9855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
9856   { 0.00056843418860824636, 10.000000000000000, 5.0000000000000000,
9857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
9858   { 0.0028902549859721747, 10.000000000000000, 5.0000000000000000,
9859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
9860   { 0.0098776037238877245, 10.000000000000000, 5.0000000000000000,
9861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
9862   { 0.030689217428863859, 10.000000000000000, 5.0000000000000000,
9863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
9864   { 0.094211590019076558, 10.000000000000000, 5.0000000000000000,
9865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
9866   { 0.29791981455918370, 10.000000000000000, 5.0000000000000000,
9867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
9868   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
9870   { 3.6646308771236793, 10.000000000000000, 5.0000000000000000,
9871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
9872   { 15.133991837501567, 10.000000000000000, 5.0000000000000000,
9873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
9874   { 73.331330046144089, 10.000000000000000, 5.0000000000000000,
9875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
9876   { 441.01791167787303, 10.000000000000000, 5.0000000000000000,
9877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
9878   { 3583.9999999999991, 10.000000000000000, 5.0000000000000000,
9879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
9880   { 45299.530029296984, 10.000000000000000, 5.0000000000000000,
9881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
9882   { 1157231.0002427436, 10.000000000000000, 5.0000000000000000,
9883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
9884   { 107421875.00000016, 10.000000000000000, 5.0000000000000000,
9885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
9886   { 235000000000.00293, 10.000000000000000, 5.0000000000000000,
9887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
9888 };
9889 const double toler197 = 2.5000000000000020e-13;
9890 
9891 // Test data for a=10.000000000000000, b=5.0000000000000000, c=6.0000000000000000.
9892 // max(|f - f_GSL|): 9.5367431640625000e-07 at index 18
9893 // max(|f - f_GSL| / |f_GSL|): 1.6314276114917587e-15
9894 // mean(f - f_GSL): 5.0242811922592076e-08
9895 // variance(f - f_GSL): 4.7862904884501567e-14
9896 // stddev(f - f_GSL): 2.1877592391417655e-07
9897 const testcase_hyperg<double>
9898 data198[19] =
9899 {
9900   { 0.0058530497315413248, 10.000000000000000, 5.0000000000000000,
9901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
9902   { 0.0088526869356855397, 10.000000000000000, 5.0000000000000000,
9903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
9904   { 0.013770987983442959, 10.000000000000000, 5.0000000000000000,
9905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
9906   { 0.022108932690960776, 10.000000000000000, 5.0000000000000000,
9907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
9908   { 0.036786236450921550, 10.000000000000000, 5.0000000000000000,
9909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
9910   { 0.063750669040426408, 10.000000000000000, 5.0000000000000000,
9911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
9912   { 0.11577228680714466, 10.000000000000000, 5.0000000000000000,
9913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
9914   { 0.22197573416125760, 10.000000000000000, 5.0000000000000000,
9915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
9916   { 0.45361312968415324, 10.000000000000000, 5.0000000000000000,
9917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
9918   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
9920   { 2.4162889363082747, 10.000000000000000, 5.0000000000000000,
9921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
9922   { 6.5381564791240541, 10.000000000000000, 5.0000000000000000,
9923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
9924   { 20.415771011498428, 10.000000000000000, 5.0000000000000000,
9925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
9926   { 76.870682056629448, 10.000000000000000, 5.0000000000000000,
9927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
9928   { 373.58730158730162, 10.000000000000000, 5.0000000000000000,
9929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
9930   { 2626.2555803571477, 10.000000000000000, 5.0000000000000000,
9931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
9932   { 33060.960671081237, 10.000000000000000, 5.0000000000000000,
9933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
9934   { 1203521.8253968258, 10.000000000000000, 5.0000000000000000,
9935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
9936   { 584564285.71428990, 10.000000000000000, 5.0000000000000000,
9937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
9938 };
9939 const double toler198 = 2.5000000000000020e-13;
9940 
9941 // Test data for a=10.000000000000000, b=5.0000000000000000, c=8.0000000000000000.
9942 // max(|f - f_GSL|): 7.4505805969238281e-09 at index 18
9943 // max(|f - f_GSL| / |f_GSL|): 1.6196914341138665e-15
9944 // mean(f - f_GSL): 3.9331532183208954e-10
9945 // variance(f - f_GSL): 2.9206631793126476e-18
9946 // stddev(f - f_GSL): 1.7089947862157589e-09
9947 const testcase_hyperg<double>
9948 data199[19] =
9949 {
9950   { 0.020248990107069573, 10.000000000000000, 5.0000000000000000,
9951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
9952   { 0.027876687750502366, 10.000000000000000, 5.0000000000000000,
9953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
9954   { 0.039154648888447607, 10.000000000000000, 5.0000000000000000,
9955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
9956   { 0.056251883506774715, 10.000000000000000, 5.0000000000000000,
9957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
9958   { 0.082914189910074473, 10.000000000000000, 5.0000000000000000,
9959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
9960   { 0.12585357817786472, 10.000000000000000, 5.0000000000000000,
9961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
9962   { 0.19761423206224940, 10.000000000000000, 5.0000000000000000,
9963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
9964   { 0.32280443863359237, 10.000000000000000, 5.0000000000000000,
9965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
9966   { 0.55250024062839420, 10.000000000000000, 5.0000000000000000,
9967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
9968   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
9969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
9970   { 1.9374297986599267, 10.000000000000000, 5.0000000000000000,
9971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
9972   { 4.0849049886067759, 10.000000000000000, 5.0000000000000000,
9973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
9974   { 9.5926988633258983, 10.000000000000000, 5.0000000000000000,
9975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
9976   { 25.958314281359588, 10.000000000000000, 5.0000000000000000,
9977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
9978   { 85.333333333333300, 10.000000000000000, 5.0000000000000000,
9979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
9980   { 372.31445312500028, 10.000000000000000, 5.0000000000000000,
9981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
9982   { 2545.3436976070780, 10.000000000000000, 5.0000000000000000,
9983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
9984   { 39583.333333333343, 10.000000000000000, 5.0000000000000000,
9985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
9986   { 4600000.0000000261, 10.000000000000000, 5.0000000000000000,
9987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
9988 };
9989 const double toler199 = 2.5000000000000020e-13;
9990 
9991 // Test data for a=10.000000000000000, b=5.0000000000000000, c=10.000000000000000.
9992 // max(|f - f_GSL|): 1.0186340659856796e-10 at index 18
9993 // max(|f - f_GSL| / |f_GSL|): 1.1641532182693482e-15
9994 // mean(f - f_GSL): 5.5487040400966458e-12
9995 // variance(f - f_GSL): 5.4399356990620132e-22
9996 // stddev(f - f_GSL): 2.3323669734975269e-11
9997 const testcase_hyperg<double>
9998 data200[19] =
9999 {
10000   { 0.040386107340619273, 10.000000000000000, 5.0000000000000000,
10001 	  10.000000000000000, -0.90000000000000002, 0.0 },
10002   { 0.052922149401344633, 10.000000000000000, 5.0000000000000000,
10003 	  10.000000000000000, -0.80000000000000004, 0.0 },
10004   { 0.070429627772374270, 10.000000000000000, 5.0000000000000000,
10005 	  10.000000000000000, -0.69999999999999996, 0.0 },
10006   { 0.095367431640624986, 10.000000000000000, 5.0000000000000000,
10007 	  10.000000000000000, -0.59999999999999998, 0.0 },
10008   { 0.13168724279835389, 10.000000000000000, 5.0000000000000000,
10009 	  10.000000000000000, -0.50000000000000000, 0.0 },
10010   { 0.18593443208187072, 10.000000000000000, 5.0000000000000000,
10011 	  10.000000000000000, -0.39999999999999991, 0.0 },
10012   { 0.26932907434290460, 10.000000000000000, 5.0000000000000000,
10013 	  10.000000000000000, -0.29999999999999993, 0.0 },
10014   { 0.40187757201646102, 10.000000000000000, 5.0000000000000000,
10015 	  10.000000000000000, -0.19999999999999996, 0.0 },
10016   { 0.62092132305915493, 10.000000000000000, 5.0000000000000000,
10017 	  10.000000000000000, -0.099999999999999978, 0.0 },
10018   { 1.0000000000000000, 10.000000000000000, 5.0000000000000000,
10019 	  10.000000000000000, 0.0000000000000000, 0.0 },
10020   { 1.6935087808430296, 10.000000000000000, 5.0000000000000000,
10021 	  10.000000000000000, 0.10000000000000009, 0.0 },
10022   { 3.0517578125000036, 10.000000000000000, 5.0000000000000000,
10023 	  10.000000000000000, 0.20000000000000018, 0.0 },
10024   { 5.9499018266198629, 10.000000000000000, 5.0000000000000000,
10025 	  10.000000000000000, 0.30000000000000004, 0.0 },
10026   { 12.860082304526767, 10.000000000000000, 5.0000000000000000,
10027 	  10.000000000000000, 0.40000000000000013, 0.0 },
10028   { 32.000000000000000, 10.000000000000000, 5.0000000000000000,
10029 	  10.000000000000000, 0.50000000000000000, 0.0 },
10030   { 97.656250000000114, 10.000000000000000, 5.0000000000000000,
10031 	  10.000000000000000, 0.60000000000000009, 0.0 },
10032   { 411.52263374485722, 10.000000000000000, 5.0000000000000000,
10033 	  10.000000000000000, 0.70000000000000018, 0.0 },
10034   { 3124.9999999999995, 10.000000000000000, 5.0000000000000000,
10035 	  10.000000000000000, 0.80000000000000004, 0.0 },
10036   { 100000.00000000055, 10.000000000000000, 5.0000000000000000,
10037 	  10.000000000000000, 0.90000000000000013, 0.0 },
10038 };
10039 const double toler200 = 2.5000000000000020e-13;
10040 
10041 // Test data for a=10.000000000000000, b=10.000000000000000, c=2.0000000000000000.
10042 // max(|f - f_GSL|): 3407872.0000000000 at index 18
10043 // max(|f - f_GSL| / |f_GSL|): 1.8642431677285562e-15
10044 // mean(f - f_GSL): 179361.84215676156
10045 // variance(f - f_GSL): 611241601687.40417
10046 // stddev(f - f_GSL): 781819.41756866348
10047 const testcase_hyperg<double>
10048 data201[19] =
10049 {
10050   { 2.3388730079478156e-05, 10.000000000000000, 10.000000000000000,
10051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10052   { -2.3204970759764180e-05, 10.000000000000000, 10.000000000000000,
10053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10054   { -0.00016219730505521665, 10.000000000000000, 10.000000000000000,
10055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10056   { -0.00044366962360922366, 10.000000000000000, 10.000000000000000,
10057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10058   { -0.00071863577205453773, 10.000000000000000, 10.000000000000000,
10059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10060   { 4.4378596544482927e-05, 10.000000000000000, 10.000000000000000,
10061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10062   { 0.0044446568070621991, 10.000000000000000, 10.000000000000000,
10063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10064   { 0.0071045155183571615, 10.000000000000000, 10.000000000000000,
10065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10066   { -0.049961558159890306, 10.000000000000000, 10.000000000000000,
10067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10068   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10070   { 51.305449964107403, 10.000000000000000, 10.000000000000000,
10071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10072   { 1435.9545414461415, 10.000000000000000, 10.000000000000000,
10073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10074   { 39657.913058984115, 10.000000000000000, 10.000000000000000,
10075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10076   { 1346016.4468570619, 10.000000000000000, 10.000000000000000,
10077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10078   { 68086556.444444403, 10.000000000000000, 10.000000000000000,
10079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10080   { 6646235808.7301531, 10.000000000000000, 10.000000000000000,
10081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10082   { 1954852335479.9958, 10.000000000000000, 10.000000000000000,
10083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10084   { 4573796225043418.0, 10.000000000000000, 10.000000000000000,
10085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10086   { 1.8280190368900440e+21, 10.000000000000000, 10.000000000000000,
10087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10088 };
10089 const double toler201 = 2.5000000000000020e-13;
10090 
10091 // Test data for a=10.000000000000000, b=10.000000000000000, c=4.0000000000000000.
10092 // max(|f - f_GSL|): 832.00000000000000 at index 18
10093 // max(|f - f_GSL| / |f_GSL|): 1.7889121078953330e-15
10094 // mean(f - f_GSL): 43.789679427686345
10095 // variance(f - f_GSL): 36432.823085424323
10096 // stddev(f - f_GSL): 190.87384075725075
10097 const testcase_hyperg<double>
10098 data202[19] =
10099 {
10100   { 1.3504013648914116e-05, 10.000000000000000, 10.000000000000000,
10101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10102   { 3.1753432098506483e-05, 10.000000000000000, 10.000000000000000,
10103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10104   { 6.2032098207654132e-05, 10.000000000000000, 10.000000000000000,
10105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10106   { 8.8747213942816339e-05, 10.000000000000000, 10.000000000000000,
10107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10108   { 1.0478094697613739e-05, 10.000000000000000, 10.000000000000000,
10109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10110   { -0.00055998751006022351, 10.000000000000000, 10.000000000000000,
10111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10112   { -0.0024718654966575221, 10.000000000000000, 10.000000000000000,
10113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10114   { -0.0027000264053620069, 10.000000000000000, 10.000000000000000,
10115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10116   { 0.066515394406810743, 10.000000000000000, 10.000000000000000,
10117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10118   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10120   { 11.579200866389527, 10.000000000000000, 10.000000000000000,
10121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10122   { 137.50750548795330, 10.000000000000000, 10.000000000000000,
10123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10124   { 1901.3196072993419, 10.000000000000000, 10.000000000000000,
10125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10126   { 34210.659507138007, 10.000000000000000, 10.000000000000000,
10127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10128   { 920588.19047619053, 10.000000000000000, 10.000000000000000,
10129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10130   { 45876220.933028772, 10.000000000000000, 10.000000000000000,
10131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10132   { 6234608574.0964050, 10.000000000000000, 10.000000000000000,
10133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10134   { 5445391090029.7783, 10.000000000000000, 10.000000000000000,
10135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10136   { 4.6508713107143840e+17, 10.000000000000000, 10.000000000000000,
10137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10138 };
10139 const double toler202 = 2.5000000000000020e-13;
10140 
10141 // Test data for a=10.000000000000000, b=10.000000000000000, c=6.0000000000000000.
10142 // max(|f - f_GSL|): 0.93750000000000000 at index 18
10143 // max(|f - f_GSL| / |f_GSL|): 1.8742262123208804e-15
10144 // mean(f - f_GSL): 0.049343110712039846
10145 // variance(f - f_GSL): 0.046258118950011272
10146 // stddev(f - f_GSL): 0.21507700702309224
10147 const testcase_hyperg<double>
10148 data203[19] =
10149 {
10150   { -2.6846726901509877e-05, 10.000000000000000, 10.000000000000000,
10151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10152   { -4.7817237144298244e-05, 10.000000000000000, 10.000000000000000,
10153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10154   { -7.2908121941826117e-05, 10.000000000000000, 10.000000000000000,
10155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10156   { -6.0427853197636777e-05, 10.000000000000000, 10.000000000000000,
10157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10158   { 0.00020559720946644960, 10.000000000000000, 10.000000000000000,
10159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10160   { 0.0017056910683365867, 10.000000000000000, 10.000000000000000,
10161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10162   { 0.0088037230970524228, 10.000000000000000, 10.000000000000000,
10163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10164   { 0.041510819735141528, 10.000000000000000, 10.000000000000000,
10165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10166   { 0.19754880805677244, 10.000000000000000, 10.000000000000000,
10167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10168   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10170   { 5.6130947302779246, 10.000000000000000, 10.000000000000000,
10171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10172   { 36.475357196722619, 10.000000000000000, 10.000000000000000,
10173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10174   { 289.29483001400672, 10.000000000000000, 10.000000000000000,
10175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10176   { 3010.8676549536667, 10.000000000000000, 10.000000000000000,
10177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10178   { 45844.317460317419, 10.000000000000000, 10.000000000000000,
10179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10180   { 1221852.6431492427, 10.000000000000000, 10.000000000000000,
10181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10182   { 79585968.928969592, 10.000000000000000, 10.000000000000000,
10183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10184   { 26733475942.460335, 10.000000000000000, 10.000000000000000,
10185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10186   { 500206428571437.38, 10.000000000000000, 10.000000000000000,
10187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10188 };
10189 const double toler203 = 2.5000000000000020e-13;
10190 
10191 // Test data for a=10.000000000000000, b=10.000000000000000, c=8.0000000000000000.
10192 // max(|f - f_GSL|): 0.0024414062500000000 at index 18
10193 // max(|f - f_GSL| / |f_GSL|): 1.6580008488964090e-15
10194 // mean(f - f_GSL): 0.00012850766473236850
10195 // variance(f - f_GSL): 3.1370523903989881e-07
10196 // stddev(f - f_GSL): 0.00056009395554665537
10197 const testcase_hyperg<double>
10198 data204[19] =
10199 {
10200   { 0.00025866179054283083, 10.000000000000000, 10.000000000000000,
10201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10202   { 0.00053402577739226583, 10.000000000000000, 10.000000000000000,
10203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10204   { 0.0011390075227239291, 10.000000000000000, 10.000000000000000,
10205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10206   { 0.0025224267119482941, 10.000000000000000, 10.000000000000000,
10207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10208   { 0.0058340332124251458, 10.000000000000000, 10.000000000000000,
10209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10210   { 0.014189256143045212, 10.000000000000000, 10.000000000000000,
10211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10212   { 0.036590990011337789, 10.000000000000000, 10.000000000000000,
10213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10214   { 0.10106560781146991, 10.000000000000000, 10.000000000000000,
10215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10216   { 0.30278778538531392, 10.000000000000000, 10.000000000000000,
10217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10218   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10220   { 3.7187249990350599, 10.000000000000000, 10.000000000000000,
10221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10222   { 16.023275545901761, 10.000000000000000, 10.000000000000000,
10223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10224   { 83.265377219882822, 10.000000000000000, 10.000000000000000,
10225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10226   { 553.31413918844225, 10.000000000000000, 10.000000000000000,
10227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10228   { 5148.4444444444416, 10.000000000000000, 10.000000000000000,
10229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10230   { 78082.084655761908, 10.000000000000000, 10.000000000000000,
10231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10232   { 2565874.8781353347, 10.000000000000000, 10.000000000000000,
10233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10234   { 346137152.77777809, 10.000000000000000, 10.000000000000000,
10235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10236   { 1472500000000.0227, 10.000000000000000, 10.000000000000000,
10237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10238 };
10239 const double toler204 = 2.5000000000000020e-13;
10240 
10241 // Test data for a=10.000000000000000, b=10.000000000000000, c=10.000000000000000.
10242 // max(|f - f_GSL|): 2.2888183593750000e-05 at index 18
10243 // max(|f - f_GSL| / |f_GSL|): 2.4795532226562509e-15
10244 // mean(f - f_GSL): 1.2059140510950354e-06
10245 // variance(f - f_GSL): 2.7568813079896666e-11
10246 // stddev(f - f_GSL): 5.2506012112801583e-06
10247 const testcase_hyperg<double>
10248 data205[19] =
10249 {
10250   { 0.0016310376661280216, 10.000000000000000, 10.000000000000000,
10251 	  10.000000000000000, -0.90000000000000002, 0.0 },
10252   { 0.0028007538972582421, 10.000000000000000, 10.000000000000000,
10253 	  10.000000000000000, -0.80000000000000004, 0.0 },
10254   { 0.0049603324681551939, 10.000000000000000, 10.000000000000000,
10255 	  10.000000000000000, -0.69999999999999996, 0.0 },
10256   { 0.0090949470177292789, 10.000000000000000, 10.000000000000000,
10257 	  10.000000000000000, -0.59999999999999998, 0.0 },
10258   { 0.017341529915832606, 10.000000000000000, 10.000000000000000,
10259 	  10.000000000000000, -0.50000000000000000, 0.0 },
10260   { 0.034571613033607791, 10.000000000000000, 10.000000000000000,
10261 	  10.000000000000000, -0.39999999999999991, 0.0 },
10262   { 0.072538150286405839, 10.000000000000000, 10.000000000000000,
10263 	  10.000000000000000, -0.29999999999999993, 0.0 },
10264   { 0.16150558288984579, 10.000000000000000, 10.000000000000000,
10265 	  10.000000000000000, -0.19999999999999996, 0.0 },
10266   { 0.38554328942953142, 10.000000000000000, 10.000000000000000,
10267 	  10.000000000000000, -0.099999999999999978, 0.0 },
10268   { 1.0000000000000000, 10.000000000000000, 10.000000000000000,
10269 	  10.000000000000000, 0.0000000000000000, 0.0 },
10270   { 2.8679719907924444, 10.000000000000000, 10.000000000000000,
10271 	  10.000000000000000, 0.10000000000000009, 0.0 },
10272   { 9.3132257461548065, 10.000000000000000, 10.000000000000000,
10273 	  10.000000000000000, 0.20000000000000018, 0.0 },
10274   { 35.401331746414378, 10.000000000000000, 10.000000000000000,
10275 	  10.000000000000000, 0.30000000000000004, 0.0 },
10276   { 165.38171687920246, 10.000000000000000, 10.000000000000000,
10277 	  10.000000000000000, 0.40000000000000013, 0.0 },
10278   { 1024.0000000000000, 10.000000000000000, 10.000000000000000,
10279 	  10.000000000000000, 0.50000000000000000, 0.0 },
10280   { 9536.7431640625218, 10.000000000000000, 10.000000000000000,
10281 	  10.000000000000000, 0.60000000000000009, 0.0 },
10282   { 169350.87808430390, 10.000000000000000, 10.000000000000000,
10283 	  10.000000000000000, 0.70000000000000018, 0.0 },
10284   { 9765624.9999999963, 10.000000000000000, 10.000000000000000,
10285 	  10.000000000000000, 0.80000000000000004, 0.0 },
10286   { 10000000000.000111, 10.000000000000000, 10.000000000000000,
10287 	  10.000000000000000, 0.90000000000000013, 0.0 },
10288 };
10289 const double toler205 = 2.5000000000000020e-13;
10290 
10291 // Test data for a=10.000000000000000, b=20.000000000000000, c=2.0000000000000000.
10292 // max(|f - f_GSL|): 2.5940733853654057e+18 at index 18
10293 // max(|f - f_GSL| / |f_GSL|): 1.8312596334404269e-15
10294 // mean(f - f_GSL): 1.3653017829015250e+17
10295 // variance(f - f_GSL): 4.1617051640949032e+35
10296 // stddev(f - f_GSL): 6.4511279355589466e+17
10297 const testcase_hyperg<double>
10298 data206[19] =
10299 {
10300   { -2.1776535312781759e-07, 10.000000000000000, 20.000000000000000,
10301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10302   { -2.9128833151630439e-06, 10.000000000000000, 20.000000000000000,
10303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10304   { -9.4755553429932710e-06, 10.000000000000000, 20.000000000000000,
10305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10306   { -1.2844297353852837e-05, 10.000000000000000, 20.000000000000000,
10307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10308   { 3.6576965483549205e-05, 10.000000000000000, 20.000000000000000,
10309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10310   { 0.00020847453890703339, 10.000000000000000, 20.000000000000000,
10311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10312   { -0.00022868510398194936, 10.000000000000000, 20.000000000000000,
10313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10314   { -0.0021855513841943421, 10.000000000000000, 20.000000000000000,
10315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10316   { 0.014662111759334568, 10.000000000000000, 20.000000000000000,
10317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10318   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10320   { 746.44776348798098, 10.000000000000000, 20.000000000000000,
10321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10322   { 136080.48445225772, 10.000000000000000, 20.000000000000000,
10323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10324   { 23094279.597826406, 10.000000000000000, 20.000000000000000,
10325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10326   { 5315913395.5545979, 10.000000000000000, 20.000000000000000,
10327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10328   { 2261935718399.9990, 10.000000000000000, 20.000000000000000,
10329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10330   { 2669150854828235.0, 10.000000000000000, 20.000000000000000,
10331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10332   { 1.7499363099366351e+19, 10.000000000000000, 20.000000000000000,
10333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10334   { 2.8881518494606140e+24, 10.000000000000000, 20.000000000000000,
10335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10336   { 1.4165513933662505e+33, 10.000000000000000, 20.000000000000000,
10337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10338 };
10339 const double toler206 = 2.5000000000000020e-13;
10340 
10341 // Test data for a=10.000000000000000, b=20.000000000000000, c=4.0000000000000000.
10342 // max(|f - f_GSL|): 299067162755072.00 at index 18
10343 // max(|f - f_GSL| / |f_GSL|): 2.1129345912023457e-15
10344 // mean(f - f_GSL): 15740377042297.895
10345 // variance(f - f_GSL): 4.7074334083472640e+27
10346 // stddev(f - f_GSL): 68610738287437.656
10347 const testcase_hyperg<double>
10348 data207[19] =
10349 {
10350   { 1.7149006966334498e-07, 10.000000000000000, 20.000000000000000,
10351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10352   { 3.2399324906563845e-07, 10.000000000000000, 20.000000000000000,
10353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10354   { 1.6015317699713284e-07, 10.000000000000000, 20.000000000000000,
10355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10356   { -2.0500917201273337e-06, 10.000000000000000, 20.000000000000000,
10357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10358   { -1.0175546788592665e-05, 10.000000000000000, 20.000000000000000,
10359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10360   { -1.1720101988188077e-05, 10.000000000000000, 20.000000000000000,
10361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10362   { 0.00014199637113982382, 10.000000000000000, 20.000000000000000,
10363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10364   { 0.00021263363640641769, 10.000000000000000, 20.000000000000000,
10365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10366   { -0.0072649256698439626, 10.000000000000000, 20.000000000000000,
10367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10368   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10370   { 90.430293772869618, 10.000000000000000, 20.000000000000000,
10371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10372   { 6248.1455940292872, 10.000000000000000, 20.000000000000000,
10373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10374   { 501143.39852548984, 10.000000000000000, 20.000000000000000,
10375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10376   { 58852027.356440276, 10.000000000000000, 20.000000000000000,
10377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10378   { 12942923093.333330, 10.000000000000000, 20.000000000000000,
10379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10380   { 7618073993853.6592, 10.000000000000000, 20.000000000000000,
10381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10382   { 22630251562549772., 10.000000000000000, 20.000000000000000,
10383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10384   { 1.3708372433980356e+21, 10.000000000000000, 20.000000000000000,
10385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10386   { 1.4154113620000448e+29, 10.000000000000000, 20.000000000000000,
10387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10388 };
10389 const double toler207 = 2.5000000000000020e-13;
10390 
10391 // Test data for a=10.000000000000000, b=20.000000000000000, c=6.0000000000000000.
10392 // max(|f - f_GSL|): 103079215104.00000 at index 18
10393 // max(|f - f_GSL| / |f_GSL|): 1.8869870511941024e-15
10394 // mean(f - f_GSL): 5425221928.4235201
10395 // variance(f - f_GSL): 5.5922760890380314e+20
10396 // stddev(f - f_GSL): 23647993760.651306
10397 const testcase_hyperg<double>
10398 data208[19] =
10399 {
10400   { -1.6667473284194196e-08, 10.000000000000000, 20.000000000000000,
10401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10402   { 8.6214843496406671e-08, 10.000000000000000, 20.000000000000000,
10403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10404   { 5.7778331275185146e-07, 10.000000000000000, 20.000000000000000,
10405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10406   { 2.1911400502042259e-06, 10.000000000000000, 20.000000000000000,
10407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10408   { 4.7440049217199358e-06, 10.000000000000000, 20.000000000000000,
10409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10410   { -1.0564233314712615e-05, 10.000000000000000, 20.000000000000000,
10411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10412   { -0.00017990026051847404, 10.000000000000000, 20.000000000000000,
10413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10414   { -0.00027618146288724629, 10.000000000000000, 20.000000000000000,
10415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10416   { 0.030606019577723666, 10.000000000000000, 20.000000000000000,
10417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10418   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10420   { 27.832854169493341, 10.000000000000000, 20.000000000000000,
10421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10422   { 874.00624088575910, 10.000000000000000, 20.000000000000000,
10423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10424   { 36049.199340831554, 10.000000000000000, 20.000000000000000,
10425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10426   { 2270967.7298625209, 10.000000000000000, 20.000000000000000,
10427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10428   { 266979100.44444439, 10.000000000000000, 20.000000000000000,
10429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10430   { 80311224337.493027, 10.000000000000000, 20.000000000000000,
10431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10432   { 110111693103801.77, 10.000000000000000, 20.000000000000000,
10433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10434   { 2.4838871426052618e+18, 10.000000000000000, 20.000000000000000,
10435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10436   { 5.4626350000001618e+25, 10.000000000000000, 20.000000000000000,
10437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10438 };
10439 const double toler208 = 2.5000000000000020e-13;
10440 
10441 // Test data for a=10.000000000000000, b=20.000000000000000, c=8.0000000000000000.
10442 // max(|f - f_GSL|): 100663296.00000000 at index 18
10443 // max(|f - f_GSL| / |f_GSL|): 1.9414329026036117e-15
10444 // mean(f - f_GSL): 5298068.6316046715
10445 // variance(f - f_GSL): 533321003794731.12
10446 // stddev(f - f_GSL): 23093743.823701065
10447 const testcase_hyperg<double>
10448 data209[19] =
10449 {
10450   { -1.5843795889906876e-07, 10.000000000000000, 20.000000000000000,
10451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10452   { -5.4877276002864784e-07, 10.000000000000000, 20.000000000000000,
10453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10454   { -1.7169507967699695e-06, 10.000000000000000, 20.000000000000000,
10455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10456   { -4.5236439749819329e-06, 10.000000000000000, 20.000000000000000,
10457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10458   { -5.5690492560381956e-06, 10.000000000000000, 20.000000000000000,
10459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10460   { 5.6914115606653561e-05, 10.000000000000000, 20.000000000000000,
10461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10462   { 0.00082507252097489250, 10.000000000000000, 20.000000000000000,
10463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10464   { 0.0085739249288230429, 10.000000000000000, 20.000000000000000,
10465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10466   { 0.088244357683754687, 10.000000000000000, 20.000000000000000,
10467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10468   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10470   { 13.387208440156897, 10.000000000000000, 20.000000000000000,
10471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10472   { 226.77895441155252, 10.000000000000000, 20.000000000000000,
10473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10474   { 5281.5716482686785, 10.000000000000000, 20.000000000000000,
10475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10476   { 189431.77762850633, 10.000000000000000, 20.000000000000000,
10477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10478   { 12408149.333333332, 10.000000000000000, 20.000000000000000,
10479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10480   { 1966782292.5839682, 10.000000000000000, 20.000000000000000,
10481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10482   { 1274123112205.7700, 10.000000000000000, 20.000000000000000,
10483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10484   { 10903676350911508., 10.000000000000000, 20.000000000000000,
10485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10486   { 5.1850000000001411e+22, 10.000000000000000, 20.000000000000000,
10487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10488 };
10489 const double toler209 = 2.5000000000000020e-13;
10490 
10491 // Test data for a=10.000000000000000, b=20.000000000000000, c=10.000000000000000.
10492 // max(|f - f_GSL|): 475136.00000000000 at index 18
10493 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
10494 // mean(f - f_GSL): 25007.185032091642
10495 // variance(f - f_GSL): 11881799540.814577
10496 // stddev(f - f_GSL): 109003.66755671379
10497 const testcase_hyperg<double>
10498 data210[19] =
10499 {
10500   { 2.6602838683283435e-06, 10.000000000000000, 20.000000000000000,
10501 	  10.000000000000000, -0.90000000000000002, 0.0 },
10502   { 7.8442223930072316e-06, 10.000000000000000, 20.000000000000000,
10503 	  10.000000000000000, -0.80000000000000004, 0.0 },
10504   { 2.4604898194634598e-05, 10.000000000000000, 20.000000000000000,
10505 	  10.000000000000000, -0.69999999999999996, 0.0 },
10506   { 8.2718061255302686e-05, 10.000000000000000, 20.000000000000000,
10507 	  10.000000000000000, -0.59999999999999998, 0.0 },
10508   { 0.00030072865982171723, 10.000000000000000, 20.000000000000000,
10509 	  10.000000000000000, -0.50000000000000000, 0.0 },
10510   { 0.0011951964277455204, 10.000000000000000, 20.000000000000000,
10511 	  10.000000000000000, -0.39999999999999991, 0.0 },
10512   { 0.0052617832469731996, 10.000000000000000, 20.000000000000000,
10513 	  10.000000000000000, -0.29999999999999993, 0.0 },
10514   { 0.026084053304588850, 10.000000000000000, 20.000000000000000,
10515 	  10.000000000000000, -0.19999999999999996, 0.0 },
10516   { 0.14864362802414346, 10.000000000000000, 20.000000000000000,
10517 	  10.000000000000000, -0.099999999999999978, 0.0 },
10518   { 1.0000000000000000, 10.000000000000000, 20.000000000000000,
10519 	  10.000000000000000, 0.0000000000000000, 0.0 },
10520   { 8.2252633399699757, 10.000000000000000, 20.000000000000000,
10521 	  10.000000000000000, 0.10000000000000009, 0.0 },
10522   { 86.736173798840738, 10.000000000000000, 20.000000000000000,
10523 	  10.000000000000000, 0.20000000000000018, 0.0 },
10524   { 1253.2542894196868, 10.000000000000000, 20.000000000000000,
10525 	  10.000000000000000, 0.30000000000000004, 0.0 },
10526   { 27351.112277912678, 10.000000000000000, 20.000000000000000,
10527 	  10.000000000000000, 0.40000000000000013, 0.0 },
10528   { 1048576.0000000000, 10.000000000000000, 20.000000000000000,
10529 	  10.000000000000000, 0.50000000000000000, 0.0 },
10530   { 90949470.177293226, 10.000000000000000, 20.000000000000000,
10531 	  10.000000000000000, 0.60000000000000009, 0.0 },
10532   { 28679719907.924767, 10.000000000000000, 20.000000000000000,
10533 	  10.000000000000000, 0.70000000000000018, 0.0 },
10534   { 95367431640624.906, 10.000000000000000, 20.000000000000000,
10535 	  10.000000000000000, 0.80000000000000004, 0.0 },
10536   { 1.0000000000000220e+20, 10.000000000000000, 20.000000000000000,
10537 	  10.000000000000000, 0.90000000000000013, 0.0 },
10538 };
10539 const double toler210 = 5.0000000000000039e-13;
10540 
10541 // Test data for a=20.000000000000000, b=0.0000000000000000, c=2.0000000000000000.
10542 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10543 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10544 // mean(f - f_GSL): 0.0000000000000000
10545 // variance(f - f_GSL): 0.0000000000000000
10546 // stddev(f - f_GSL): 0.0000000000000000
10547 const testcase_hyperg<double>
10548 data211[19] =
10549 {
10550   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10552   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10554   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10556   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10558   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10560   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10562   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10564   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10566   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10568   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10570   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10572   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10574   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10576   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10578   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10580   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10582   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10584   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10586   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10588 };
10589 const double toler211 = 2.5000000000000020e-13;
10590 
10591 // Test data for a=20.000000000000000, b=0.0000000000000000, c=4.0000000000000000.
10592 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10593 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10594 // mean(f - f_GSL): 0.0000000000000000
10595 // variance(f - f_GSL): 0.0000000000000000
10596 // stddev(f - f_GSL): 0.0000000000000000
10597 const testcase_hyperg<double>
10598 data212[19] =
10599 {
10600   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10602   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10604   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10606   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10608   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10610   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10612   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10614   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10616   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10618   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10620   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10622   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10624   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10626   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10628   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10630   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10632   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10634   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10636   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10638 };
10639 const double toler212 = 2.5000000000000020e-13;
10640 
10641 // Test data for a=20.000000000000000, b=0.0000000000000000, c=6.0000000000000000.
10642 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10643 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10644 // mean(f - f_GSL): 0.0000000000000000
10645 // variance(f - f_GSL): 0.0000000000000000
10646 // stddev(f - f_GSL): 0.0000000000000000
10647 const testcase_hyperg<double>
10648 data213[19] =
10649 {
10650   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10652   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10654   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10656   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10658   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10660   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10662   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10664   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10666   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10668   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10670   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10672   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10674   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10676   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10678   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10680   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10682   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10684   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10686   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10688 };
10689 const double toler213 = 2.5000000000000020e-13;
10690 
10691 // Test data for a=20.000000000000000, b=0.0000000000000000, c=8.0000000000000000.
10692 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10693 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10694 // mean(f - f_GSL): 0.0000000000000000
10695 // variance(f - f_GSL): 0.0000000000000000
10696 // stddev(f - f_GSL): 0.0000000000000000
10697 const testcase_hyperg<double>
10698 data214[19] =
10699 {
10700   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10702   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10704   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10706   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10708   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10710   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10712   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10714   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10716   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10718   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10720   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10722   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10724   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10726   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10728   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10730   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10732   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10734   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10736   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10738 };
10739 const double toler214 = 2.5000000000000020e-13;
10740 
10741 // Test data for a=20.000000000000000, b=0.0000000000000000, c=10.000000000000000.
10742 // max(|f - f_GSL|): 0.0000000000000000 at index 0
10743 // max(|f - f_GSL| / |f_GSL|): 0.0000000000000000
10744 // mean(f - f_GSL): 0.0000000000000000
10745 // variance(f - f_GSL): 0.0000000000000000
10746 // stddev(f - f_GSL): 0.0000000000000000
10747 const testcase_hyperg<double>
10748 data215[19] =
10749 {
10750   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10751 	  10.000000000000000, -0.90000000000000002, 0.0 },
10752   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10753 	  10.000000000000000, -0.80000000000000004, 0.0 },
10754   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10755 	  10.000000000000000, -0.69999999999999996, 0.0 },
10756   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10757 	  10.000000000000000, -0.59999999999999998, 0.0 },
10758   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10759 	  10.000000000000000, -0.50000000000000000, 0.0 },
10760   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10761 	  10.000000000000000, -0.39999999999999991, 0.0 },
10762   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10763 	  10.000000000000000, -0.29999999999999993, 0.0 },
10764   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10765 	  10.000000000000000, -0.19999999999999996, 0.0 },
10766   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10767 	  10.000000000000000, -0.099999999999999978, 0.0 },
10768   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10769 	  10.000000000000000, 0.0000000000000000, 0.0 },
10770   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10771 	  10.000000000000000, 0.10000000000000009, 0.0 },
10772   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10773 	  10.000000000000000, 0.20000000000000018, 0.0 },
10774   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10775 	  10.000000000000000, 0.30000000000000004, 0.0 },
10776   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10777 	  10.000000000000000, 0.40000000000000013, 0.0 },
10778   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10779 	  10.000000000000000, 0.50000000000000000, 0.0 },
10780   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10781 	  10.000000000000000, 0.60000000000000009, 0.0 },
10782   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10783 	  10.000000000000000, 0.70000000000000018, 0.0 },
10784   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10785 	  10.000000000000000, 0.80000000000000004, 0.0 },
10786   { 1.0000000000000000, 20.000000000000000, 0.0000000000000000,
10787 	  10.000000000000000, 0.90000000000000013, 0.0 },
10788 };
10789 const double toler215 = 2.5000000000000020e-13;
10790 
10791 // Test data for a=20.000000000000000, b=0.50000000000000000, c=2.0000000000000000.
10792 // max(|f - f_GSL|): 48.000000000000000 at index 18
10793 // max(|f - f_GSL| / |f_GSL|): 1.8556481344874416e-15
10794 // mean(f - f_GSL): 2.5263190030329112
10795 // variance(f - f_GSL): 121.26314075575490
10796 // stddev(f - f_GSL): 11.011954447588080
10797 const testcase_hyperg<double>
10798 data216[19] =
10799 {
10800   { 0.26690449940521549, 20.000000000000000, 0.50000000000000000,
10801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
10802   { 0.28252302866181833, 20.000000000000000, 0.50000000000000000,
10803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
10804   { 0.30123616141153836, 20.000000000000000, 0.50000000000000000,
10805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
10806   { 0.32421384687602633, 20.000000000000000, 0.50000000000000000,
10807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
10808   { 0.35334630811776774, 20.000000000000000, 0.50000000000000000,
10809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
10810   { 0.39191793127466995, 20.000000000000000, 0.50000000000000000,
10811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
10812   { 0.44620488618129212, 20.000000000000000, 0.50000000000000000,
10813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
10814   { 0.52980896919265719, 20.000000000000000, 0.50000000000000000,
10815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
10816   { 0.67754711477562324, 20.000000000000000, 0.50000000000000000,
10817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
10818   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
10820   { 1.9567557771780317, 20.000000000000000, 0.50000000000000000,
10821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
10822   { 6.1816042148333272, 20.000000000000000, 0.50000000000000000,
10823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
10824   { 35.653088618561227, 20.000000000000000, 0.50000000000000000,
10825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
10826   { 377.51482843180133, 20.000000000000000, 0.50000000000000000,
10827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
10828   { 7645.8816551195359, 20.000000000000000, 0.50000000000000000,
10829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
10830   { 354791.74537980522, 20.000000000000000, 0.50000000000000000,
10831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
10832   { 57009889.966639392, 20.000000000000000, 0.50000000000000000,
10833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
10834   { 83771357024.863937, 20.000000000000000, 0.50000000000000000,
10835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
10836   { 25866972896377436., 20.000000000000000, 0.50000000000000000,
10837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
10838 };
10839 const double toler216 = 2.5000000000000020e-13;
10840 
10841 // Test data for a=20.000000000000000, b=0.50000000000000000, c=4.0000000000000000.
10842 // max(|f - f_GSL|): 0.011718750000000000 at index 18
10843 // max(|f - f_GSL| / |f_GSL|): 1.7519521419033478e-15
10844 // mean(f - f_GSL): 0.00061678102606403001
10845 // variance(f - f_GSL): 7.2278413174892008e-06
10846 // stddev(f - f_GSL): 0.0026884644906506020
10847 const testcase_hyperg<double>
10848 data217[19] =
10849 {
10850   { 0.40342659436153389, 20.000000000000000, 0.50000000000000000,
10851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
10852   { 0.42420571192034318, 20.000000000000000, 0.50000000000000000,
10853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
10854   { 0.44852768286073041, 20.000000000000000, 0.50000000000000000,
10855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
10856   { 0.47751245808592863, 20.000000000000000, 0.50000000000000000,
10857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
10858   { 0.51283632632707765, 20.000000000000000, 0.50000000000000000,
10859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
10860   { 0.55713468814894329, 20.000000000000000, 0.50000000000000000,
10861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
10862   { 0.61481320817757346, 20.000000000000000, 0.50000000000000000,
10863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
10864   { 0.69383483410097213, 20.000000000000000, 0.50000000000000000,
10865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
10866   { 0.81012002526006044, 20.000000000000000, 0.50000000000000000,
10867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
10868   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
10870   { 1.3622225506603911, 20.000000000000000, 0.50000000000000000,
10871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
10872   { 2.2349513086109027, 20.000000000000000, 0.50000000000000000,
10873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
10874   { 5.1864917536761723, 20.000000000000000, 0.50000000000000000,
10875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
10876   { 21.020560423779497, 20.000000000000000, 0.50000000000000000,
10877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
10878   { 175.19649997100612, 20.000000000000000, 0.50000000000000000,
10879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
10880   { 3467.1587803688708, 20.000000000000000, 0.50000000000000000,
10881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
10882   { 225003.88683446089, 20.000000000000000, 0.50000000000000000,
10883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
10884   { 110837674.65652709, 20.000000000000000, 0.50000000000000000,
10885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
10886   { 6688966964170.9326, 20.000000000000000, 0.50000000000000000,
10887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
10888 };
10889 const double toler217 = 2.5000000000000020e-13;
10890 
10891 // Test data for a=20.000000000000000, b=0.50000000000000000, c=6.0000000000000000.
10892 // max(|f - f_GSL|): 1.4305114746093750e-05 at index 18
10893 // max(|f - f_GSL| / |f_GSL|): 1.9261147266353426e-15
10894 // mean(f - f_GSL): 7.5292535813082699e-07
10895 // variance(f - f_GSL): 1.0770292922645316e-11
10896 // stddev(f - f_GSL): 3.2818124447697064e-06
10897 const testcase_hyperg<double>
10898 data218[19] =
10899 {
10900   { 0.48716309885816822, 20.000000000000000, 0.50000000000000000,
10901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
10902   { 0.50965859152542337, 20.000000000000000, 0.50000000000000000,
10903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
10904   { 0.53554809210658938, 20.000000000000000, 0.50000000000000000,
10905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
10906   { 0.56576689207507136, 20.000000000000000, 0.50000000000000000,
10907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
10908   { 0.60164849637133655, 20.000000000000000, 0.50000000000000000,
10909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
10910   { 0.64516711595404408, 20.000000000000000, 0.50000000000000000,
10911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
10912   { 0.69938278735493553, 20.000000000000000, 0.50000000000000000,
10913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
10914   { 0.76931621518401860, 20.000000000000000, 0.50000000000000000,
10915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
10916   { 0.86381808725530662, 20.000000000000000, 0.50000000000000000,
10917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
10918   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
10920   { 1.2152051956815531, 20.000000000000000, 0.50000000000000000,
10921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
10922   { 1.6052546785425557, 20.000000000000000, 0.50000000000000000,
10923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
10924   { 2.4765586046012635, 20.000000000000000, 0.50000000000000000,
10925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
10926   { 5.1564492216997611, 20.000000000000000, 0.50000000000000000,
10927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
10928   { 18.446158392136365, 20.000000000000000, 0.50000000000000000,
10929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
10930   { 150.44577670123971, 20.000000000000000, 0.50000000000000000,
10931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
10932   { 3862.6317400116104, 20.000000000000000, 0.50000000000000000,
10933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
10934   { 632428.34833625401, 20.000000000000000, 0.50000000000000000,
10935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
10936   { 7426927663.3810987, 20.000000000000000, 0.50000000000000000,
10937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
10938 };
10939 const double toler218 = 2.5000000000000020e-13;
10940 
10941 // Test data for a=20.000000000000000, b=0.50000000000000000, c=8.0000000000000000.
10942 // max(|f - f_GSL|): 4.0978193283081055e-08 at index 18
10943 // max(|f - f_GSL| / |f_GSL|): 1.7692881266931270e-15
10944 // mean(f - f_GSL): 2.1571346930926438e-09
10945 // variance(f - f_GSL): 8.8377830897836260e-17
10946 // stddev(f - f_GSL): 9.4009484041683924e-09
10947 const testcase_hyperg<double>
10948 data219[19] =
10949 {
10950   { 0.54703266209548373, 20.000000000000000, 0.50000000000000000,
10951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
10952   { 0.56997321774144960, 20.000000000000000, 0.50000000000000000,
10953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
10954   { 0.59603026159654982, 20.000000000000000, 0.50000000000000000,
10955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
10956   { 0.62596978851120511, 20.000000000000000, 0.50000000000000000,
10957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
10958   { 0.66084565876898915, 20.000000000000000, 0.50000000000000000,
10959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
10960   { 0.70215256667232862, 20.000000000000000, 0.50000000000000000,
10961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
10962   { 0.75208916592008568, 20.000000000000000, 0.50000000000000000,
10963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
10964   { 0.81403631111658625, 20.000000000000000, 0.50000000000000000,
10965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
10966   { 0.89348608489854597, 20.000000000000000, 0.50000000000000000,
10967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
10968   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
10969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
10970   { 1.1517793185139173, 20.000000000000000, 0.50000000000000000,
10971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
10972   { 1.3878110313656606, 20.000000000000000, 0.50000000000000000,
10973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
10974   { 1.8061071794572381, 20.000000000000000, 0.50000000000000000,
10975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
10976   { 2.7148594517859612, 20.000000000000000, 0.50000000000000000,
10977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
10978   { 5.4529435709049361, 20.000000000000000, 0.50000000000000000,
10979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
10980   { 19.487310275377109, 20.000000000000000, 0.50000000000000000,
10981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
10982   { 191.69079165937592, 20.000000000000000, 0.50000000000000000,
10983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
10984   { 10218.543981792311, 20.000000000000000, 0.50000000000000000,
10985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
10986   { 23160836.646584522, 20.000000000000000, 0.50000000000000000,
10987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
10988 };
10989 const double toler219 = 2.5000000000000020e-13;
10990 
10991 // Test data for a=20.000000000000000, b=0.50000000000000000, c=10.000000000000000.
10992 // max(|f - f_GSL|): 2.9103830456733704e-10 at index 18
10993 // max(|f - f_GSL| / |f_GSL|): 1.6694673196526424e-15
10994 // mean(f - f_GSL): 1.5333453804912193e-11
10995 // variance(f - f_GSL): 4.4575621294589140e-21
10996 // stddev(f - f_GSL): 6.6764976817631821e-11
10997 const testcase_hyperg<double>
10998 data220[19] =
10999 {
11000   { 0.59292067298616025, 20.000000000000000, 0.50000000000000000,
11001 	  10.000000000000000, -0.90000000000000002, 0.0 },
11002   { 0.61572496720679892, 20.000000000000000, 0.50000000000000000,
11003 	  10.000000000000000, -0.80000000000000004, 0.0 },
11004   { 0.64135339122875590, 20.000000000000000, 0.50000000000000000,
11005 	  10.000000000000000, -0.69999999999999996, 0.0 },
11006   { 0.67043457419280461, 20.000000000000000, 0.50000000000000000,
11007 	  10.000000000000000, -0.59999999999999998, 0.0 },
11008   { 0.70380956268170969, 20.000000000000000, 0.50000000000000000,
11009 	  10.000000000000000, -0.50000000000000000, 0.0 },
11010   { 0.74263251901495264, 20.000000000000000, 0.50000000000000000,
11011 	  10.000000000000000, -0.39999999999999991, 0.0 },
11012   { 0.78853555445528289, 20.000000000000000, 0.50000000000000000,
11013 	  10.000000000000000, -0.29999999999999993, 0.0 },
11014   { 0.84391122775673755, 20.000000000000000, 0.50000000000000000,
11015 	  10.000000000000000, -0.19999999999999996, 0.0 },
11016   { 0.91242401018807373, 20.000000000000000, 0.50000000000000000,
11017 	  10.000000000000000, -0.099999999999999978, 0.0 },
11018   { 1.0000000000000000, 20.000000000000000, 0.50000000000000000,
11019 	  10.000000000000000, 0.0000000000000000, 0.0 },
11020   { 1.1169059681274873, 20.000000000000000, 0.50000000000000000,
11021 	  10.000000000000000, 0.10000000000000009, 0.0 },
11022   { 1.2825928301302669, 20.000000000000000, 0.50000000000000000,
11023 	  10.000000000000000, 0.20000000000000018, 0.0 },
11024   { 1.5385937789924939, 20.000000000000000, 0.50000000000000000,
11025 	  10.000000000000000, 0.30000000000000004, 0.0 },
11026   { 1.9895771187893914, 20.000000000000000, 0.50000000000000000,
11027 	  10.000000000000000, 0.40000000000000013, 0.0 },
11028   { 2.9707335806970168, 20.000000000000000, 0.50000000000000000,
11029 	  10.000000000000000, 0.50000000000000000, 0.0 },
11030   { 6.0299506157180467, 20.000000000000000, 0.50000000000000000,
11031 	  10.000000000000000, 0.60000000000000009, 0.0 },
11032   { 24.259090336955669, 20.000000000000000, 0.50000000000000000,
11033 	  10.000000000000000, 0.70000000000000018, 0.0 },
11034   { 406.27267173257223, 20.000000000000000, 0.50000000000000000,
11035 	  10.000000000000000, 0.80000000000000004, 0.0 },
11036   { 174330.03997220617, 20.000000000000000, 0.50000000000000000,
11037 	  10.000000000000000, 0.90000000000000013, 0.0 },
11038 };
11039 const double toler220 = 2.5000000000000020e-13;
11040 
11041 // Test data for a=20.000000000000000, b=1.0000000000000000, c=2.0000000000000000.
11042 // max(|f - f_GSL|): 1024.0000000000000 at index 18
11043 // max(|f - f_GSL| / |f_GSL|): 1.7510399999999635e-15
11044 // mean(f - f_GSL): 53.894788252704814
11045 // variance(f - f_GSL): 55188.204676932175
11046 // stddev(f - f_GSL): 234.92169903381034
11047 const testcase_hyperg<double>
11048 data221[19] =
11049 {
11050   { 0.058479236576646311, 20.000000000000000, 1.0000000000000000,
11051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11052   { 0.065788544763137821, 20.000000000000000, 1.0000000000000000,
11053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11054   { 0.075184824937824482, 20.000000000000000, 1.0000000000000000,
11055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11056   { 0.087707688693157121, 20.000000000000000, 1.0000000000000000,
11057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11058   { 0.10521567442213345, 20.000000000000000, 1.0000000000000000,
11059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11060   { 0.13135877960541509, 20.000000000000000, 1.0000000000000000,
11061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11062   { 0.17423854066297137, 20.000000000000000, 1.0000000000000000,
11063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11064   { 0.25492082527223520, 20.000000000000000, 1.0000000000000000,
11065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11066   { 0.44025895219654843, 20.000000000000000, 1.0000000000000000,
11067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11068   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11070   { 3.3698615820910360, 20.000000000000000, 1.0000000000000000,
11071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11072   { 17.997089220808562, 20.000000000000000, 1.0000000000000000,
11073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11074   { 153.73298291118951, 20.000000000000000, 1.0000000000000000,
11075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11076   { 2159.1667587825768, 20.000000000000000, 1.0000000000000000,
11077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11078   { 55188.105263157879, 20.000000000000000, 1.0000000000000000,
11079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11080   { 3191209.3921857267, 20.000000000000000, 1.0000000000000000,
11081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11082   { 646910975.29153574, 20.000000000000000, 1.0000000000000000,
11083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11084   { 1254834626850.2659, 20.000000000000000, 1.0000000000000000,
11085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11086   { 5.8479532163743910e+17, 20.000000000000000, 1.0000000000000000,
11087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11088 };
11089 const double toler221 = 2.5000000000000020e-13;
11090 
11091 // Test data for a=20.000000000000000, b=1.0000000000000000, c=4.0000000000000000.
11092 // max(|f - f_GSL|): 0.21875000000000000 at index 18
11093 // max(|f - f_GSL| / |f_GSL|): 1.5452521874999694e-15
11094 // mean(f - f_GSL): 0.011513220685868108
11095 // variance(f - f_GSL): 0.0025185017633005862
11096 // stddev(f - f_GSL): 0.050184676578618956
11097 const testcase_hyperg<double>
11098 data222[19] =
11099 {
11100   { 0.15519511120894958, 20.000000000000000, 1.0000000000000000,
11101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11102   { 0.17197165701692893, 20.000000000000000, 1.0000000000000000,
11103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11104   { 0.19276847315207329, 20.000000000000000, 1.0000000000000000,
11105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11106   { 0.21920107206179093, 20.000000000000000, 1.0000000000000000,
11107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11108   { 0.25386158960390576, 20.000000000000000, 1.0000000000000000,
11109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11110   { 0.30115970686600663, 20.000000000000000, 1.0000000000000000,
11111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11112   { 0.36916408142057128, 20.000000000000000, 1.0000000000000000,
11113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11114   { 0.47406175901569547, 20.000000000000000, 1.0000000000000000,
11115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11116   { 0.65237908266239919, 20.000000000000000, 1.0000000000000000,
11117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11118   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11120   { 1.8227213362622299, 20.000000000000000, 1.0000000000000000,
11121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11122   { 4.3716358339791430, 20.000000000000000, 1.0000000000000000,
11123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11124   { 15.670841312959222, 20.000000000000000, 1.0000000000000000,
11125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11126   { 94.742651122760662, 20.000000000000000, 1.0000000000000000,
11127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11128   { 1081.7275541795671, 20.000000000000000, 1.0000000000000000,
11129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11130   { 27809.787731465960, 20.000000000000000, 1.0000000000000000,
11131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11132   { 2329811.1715181284, 20.000000000000000, 1.0000000000000000,
11133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11134   { 1537787532.6780224, 20.000000000000000, 1.0000000000000000,
11135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11136   { 141562653507005.19, 20.000000000000000, 1.0000000000000000,
11137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11138 };
11139 const double toler222 = 2.5000000000000020e-13;
11140 
11141 // Test data for a=20.000000000000000, b=1.0000000000000000, c=6.0000000000000000.
11142 // max(|f - f_GSL|): 0.00024414062500000000 at index 18
11143 // max(|f - f_GSL| / |f_GSL|): 1.6763226855512285e-15
11144 // mean(f - f_GSL): 1.2849899481406474e-05
11145 // variance(f - f_GSL): 3.1370759089735494e-09
11146 // stddev(f - f_GSL): 5.6009605506319623e-05
11147 const testcase_hyperg<double>
11148 data223[19] =
11149 {
11150   { 0.23253645591196551, 20.000000000000000, 1.0000000000000000,
11151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11152   { 0.25484220947068342, 20.000000000000000, 1.0000000000000000,
11153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11154   { 0.28181987881113812, 20.000000000000000, 1.0000000000000000,
11155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11156   { 0.31508211677735770, 20.000000000000000, 1.0000000000000000,
11157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11158   { 0.35706285886959610, 20.000000000000000, 1.0000000000000000,
11159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11160   { 0.41160053409238190, 20.000000000000000, 1.0000000000000000,
11161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11162   { 0.48508083111181938, 20.000000000000000, 1.0000000000000000,
11163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11164   { 0.58885194371375260, 20.000000000000000, 1.0000000000000000,
11165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11166   { 0.74482241684585782, 20.000000000000000, 1.0000000000000000,
11167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11168   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11170   { 1.4700356864367146, 20.000000000000000, 1.0000000000000000,
11171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11172   { 2.4955144453055174, 20.000000000000000, 1.0000000000000000,
11173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11174   { 5.3506594845833471, 20.000000000000000, 1.0000000000000000,
11175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11176   { 16.618413752184267, 20.000000000000000, 1.0000000000000000,
11177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11178   { 89.310629514963878, 20.000000000000000, 1.0000000000000000,
11179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11180   { 1029.3439900542960, 20.000000000000000, 1.0000000000000000,
11181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11182   { 35659.847863372670, 20.000000000000000, 1.0000000000000000,
11183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11184   { 8009309.6233230168, 20.000000000000000, 1.0000000000000000,
11185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11186   { 145640590027.40201, 20.000000000000000, 1.0000000000000000,
11187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11188 };
11189 const double toler223 = 2.5000000000000020e-13;
11190 
11191 // Test data for a=20.000000000000000, b=1.0000000000000000, c=8.0000000000000000.
11192 // max(|f - f_GSL|): 7.1525573730468750e-07 at index 18
11193 // max(|f - f_GSL| / |f_GSL|): 1.7237966704607975e-15
11194 // mean(f - f_GSL): 3.7648905700618082e-08
11195 // variance(f - f_GSL): 2.6925522674362989e-14
11196 // stddev(f - f_GSL): 1.6408998346749562e-07
11197 const testcase_hyperg<double>
11198 data224[19] =
11199 {
11200   { 0.29614148314592509, 20.000000000000000, 1.0000000000000000,
11201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11202   { 0.32176277356430805, 20.000000000000000, 1.0000000000000000,
11203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11204   { 0.35217870475550511, 20.000000000000000, 1.0000000000000000,
11205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11206   { 0.38885270445515113, 20.000000000000000, 1.0000000000000000,
11207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11208   { 0.43389978380608418, 20.000000000000000, 1.0000000000000000,
11209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11210   { 0.49048612522269414, 20.000000000000000, 1.0000000000000000,
11211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11212   { 0.56355539635634599, 20.000000000000000, 1.0000000000000000,
11213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11214   { 0.66123153239117671, 20.000000000000000, 1.0000000000000000,
11215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11216   { 0.79773363961895416, 20.000000000000000, 1.0000000000000000,
11217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11218   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11220   { 1.3245132157016595, 20.000000000000000, 1.0000000000000000,
11221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11222   { 1.9065148749742094, 20.000000000000000, 1.0000000000000000,
11223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11224   { 3.1328798652457452, 20.000000000000000, 1.0000000000000000,
11225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11226   { 6.4172532944033636, 20.000000000000000, 1.0000000000000000,
11227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11228   { 19.071683734222436, 20.000000000000000, 1.0000000000000000,
11229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11230   { 104.41989641582512, 20.000000000000000, 1.0000000000000000,
11231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11232   { 1510.5743992324351, 20.000000000000000, 1.0000000000000000,
11233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11234   { 115518.14360562043, 20.000000000000000, 1.0000000000000000,
11235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11236   { 414930455.29174191, 20.000000000000000, 1.0000000000000000,
11237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11238 };
11239 const double toler224 = 2.5000000000000020e-13;
11240 
11241 // Test data for a=20.000000000000000, b=1.0000000000000000, c=10.000000000000000.
11242 // max(|f - f_GSL|): 4.6566128730773926e-09 at index 18
11243 // max(|f - f_GSL| / |f_GSL|): 1.6665618165271877e-15
11244 // mean(f - f_GSL): 2.4523176471958370e-10
11245 // variance(f - f_GSL): 1.1411894517911952e-18
11246 // stddev(f - f_GSL): 1.0682646918208967e-09
11247 const testcase_hyperg<double>
11248 data225[19] =
11249 {
11250   { 0.34954259539177701, 20.000000000000000, 1.0000000000000000,
11251 	  10.000000000000000, -0.90000000000000002, 0.0 },
11252   { 0.37714038609235134, 20.000000000000000, 1.0000000000000000,
11253 	  10.000000000000000, -0.80000000000000004, 0.0 },
11254   { 0.40942091659748781, 20.000000000000000, 1.0000000000000000,
11255 	  10.000000000000000, -0.69999999999999996, 0.0 },
11256   { 0.44767109606846422, 20.000000000000000, 1.0000000000000000,
11257 	  10.000000000000000, -0.59999999999999998, 0.0 },
11258   { 0.49368984777532227, 20.000000000000000, 1.0000000000000000,
11259 	  10.000000000000000, -0.50000000000000000, 0.0 },
11260   { 0.55006638216982318, 20.000000000000000, 1.0000000000000000,
11261 	  10.000000000000000, -0.39999999999999991, 0.0 },
11262   { 0.62065830207408901, 20.000000000000000, 1.0000000000000000,
11263 	  10.000000000000000, -0.29999999999999993, 0.0 },
11264   { 0.71145554513583764, 20.000000000000000, 1.0000000000000000,
11265 	  10.000000000000000, -0.19999999999999996, 0.0 },
11266   { 0.83223839666914623, 20.000000000000000, 1.0000000000000000,
11267 	  10.000000000000000, -0.099999999999999978, 0.0 },
11268   { 1.0000000000000000, 20.000000000000000, 1.0000000000000000,
11269 	  10.000000000000000, 0.0000000000000000, 0.0 },
11270   { 1.2466748028187731, 20.000000000000000, 1.0000000000000000,
11271 	  10.000000000000000, 0.10000000000000009, 0.0 },
11272   { 1.6386752725021760, 20.000000000000000, 1.0000000000000000,
11273 	  10.000000000000000, 0.20000000000000018, 0.0 },
11274   { 2.3340068725479681, 20.000000000000000, 1.0000000000000000,
11275 	  10.000000000000000, 0.30000000000000004, 0.0 },
11276   { 3.7848108613132099, 20.000000000000000, 1.0000000000000000,
11277 	  10.000000000000000, 0.40000000000000013, 0.0 },
11278   { 7.6754638550304133, 20.000000000000000, 1.0000000000000000,
11279 	  10.000000000000000, 0.50000000000000000, 0.0 },
11280   { 23.344217312927277, 20.000000000000000, 1.0000000000000000,
11281 	  10.000000000000000, 0.60000000000000009, 0.0 },
11282   { 149.83491198246998, 20.000000000000000, 1.0000000000000000,
11283 	  10.000000000000000, 0.70000000000000018, 0.0 },
11284   { 3936.9253501916060, 20.000000000000000, 1.0000000000000000,
11285 	  10.000000000000000, 0.80000000000000004, 0.0 },
11286   { 2794143.5036480846, 20.000000000000000, 1.0000000000000000,
11287 	  10.000000000000000, 0.90000000000000013, 0.0 },
11288 };
11289 const double toler225 = 2.5000000000000020e-13;
11290 
11291 // Test data for a=20.000000000000000, b=2.0000000000000000, c=2.0000000000000000.
11292 // max(|f - f_GSL|): 475136.00000000000 at index 18
11293 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
11294 // mean(f - f_GSL): 25007.185032091642
11295 // variance(f - f_GSL): 11881799540.814577
11296 // stddev(f - f_GSL): 109003.66755671379
11297 const testcase_hyperg<double>
11298 data226[19] =
11299 {
11300   { 2.6602838683283435e-06, 20.000000000000000, 2.0000000000000000,
11301 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11302   { 7.8442223930072316e-06, 20.000000000000000, 2.0000000000000000,
11303 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11304   { 2.4604898194634598e-05, 20.000000000000000, 2.0000000000000000,
11305 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11306   { 8.2718061255302686e-05, 20.000000000000000, 2.0000000000000000,
11307 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11308   { 0.00030072865982171723, 20.000000000000000, 2.0000000000000000,
11309 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11310   { 0.0011951964277455204, 20.000000000000000, 2.0000000000000000,
11311 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11312   { 0.0052617832469731996, 20.000000000000000, 2.0000000000000000,
11313 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11314   { 0.026084053304588850, 20.000000000000000, 2.0000000000000000,
11315 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11316   { 0.14864362802414346, 20.000000000000000, 2.0000000000000000,
11317 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11318   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11319 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11320   { 8.2252633399699757, 20.000000000000000, 2.0000000000000000,
11321 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11322   { 86.736173798840738, 20.000000000000000, 2.0000000000000000,
11323 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11324   { 1253.2542894196868, 20.000000000000000, 2.0000000000000000,
11325 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11326   { 27351.112277912678, 20.000000000000000, 2.0000000000000000,
11327 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11328   { 1048576.0000000000, 20.000000000000000, 2.0000000000000000,
11329 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11330   { 90949470.177293226, 20.000000000000000, 2.0000000000000000,
11331 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11332   { 28679719907.924767, 20.000000000000000, 2.0000000000000000,
11333 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11334   { 95367431640624.906, 20.000000000000000, 2.0000000000000000,
11335 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11336   { 1.0000000000000220e+20, 20.000000000000000, 2.0000000000000000,
11337 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11338 };
11339 const double toler226 = 5.0000000000000039e-13;
11340 
11341 // Test data for a=20.000000000000000, b=2.0000000000000000, c=4.0000000000000000.
11342 // max(|f - f_GSL|): 40.000000000000000 at index 18
11343 // max(|f - f_GSL| / |f_GSL|): 1.8712609271522778e-15
11344 // mean(f - f_GSL): 2.1052671749403089
11345 // variance(f - f_GSL): 84.210508462254538
11346 // stddev(f - f_GSL): 9.1766283820504881
11347 const testcase_hyperg<double>
11348 data227[19] =
11349 {
11350   { 0.018828092583720632, 20.000000000000000, 2.0000000000000000,
11351 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11352   { 0.023381944060455365, 20.000000000000000, 2.0000000000000000,
11353 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11354   { 0.029789623984280887, 20.000000000000000, 2.0000000000000000,
11355 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11356   { 0.039191021482500567, 20.000000000000000, 2.0000000000000000,
11357 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11358   { 0.053727813036721528, 20.000000000000000, 2.0000000000000000,
11359 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11360   { 0.077762010061668857, 20.000000000000000, 2.0000000000000000,
11361 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11362   { 0.12110505620123323, 20.000000000000000, 2.0000000000000000,
11363 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11364   { 0.20870149809080582, 20.000000000000000, 2.0000000000000000,
11365 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11366   { 0.41429234328785763, 20.000000000000000, 2.0000000000000000,
11367 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11368   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11369 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11370   { 3.1308087404153113, 20.000000000000000, 2.0000000000000000,
11371 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11372   { 13.586180626453100, 20.000000000000000, 2.0000000000000000,
11373 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11374   { 87.117304082784415, 20.000000000000000, 2.0000000000000000,
11375 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11376   { 889.26474381243384, 20.000000000000000, 2.0000000000000000,
11377 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11378   { 16231.913312693494, 20.000000000000000, 2.0000000000000000,
11379 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11380   { 653537.51168945129, 20.000000000000000, 2.0000000000000000,
11381 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11382   { 87756230.793849647, 20.000000000000000, 2.0000000000000000,
11383 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11384   { 101493977171.74945, 20.000000000000000, 2.0000000000000000,
11385 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11386   { 21375960679557820., 20.000000000000000, 2.0000000000000000,
11387 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11388 };
11389 const double toler227 = 2.5000000000000020e-13;
11390 
11391 // Test data for a=20.000000000000000, b=2.0000000000000000, c=6.0000000000000000.
11392 // max(|f - f_GSL|): 0.031250000000000000 at index 18
11393 // max(|f - f_GSL| / |f_GSL|): 1.6379336164121759e-15
11394 // mean(f - f_GSL): 0.0016447556893365942
11395 // variance(f - f_GSL): 5.1397960874034849e-05
11396 // stddev(f - f_GSL): 0.0071692371193896806
11397 const testcase_hyperg<double>
11398 data228[19] =
11399 {
11400   { 0.049200410661854238, 20.000000000000000, 2.0000000000000000,
11401 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11402   { 0.059460876757152607, 20.000000000000000, 2.0000000000000000,
11403 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11404   { 0.073244762686653225, 20.000000000000000, 2.0000000000000000,
11405 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11406   { 0.092334626017932769, 20.000000000000000, 2.0000000000000000,
11407 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11408   { 0.11976760350696856, 20.000000000000000, 2.0000000000000000,
11409 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11410   { 0.16102414609169405, 20.000000000000000, 2.0000000000000000,
11411 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11412   { 0.22670456785796236, 20.000000000000000, 2.0000000000000000,
11413 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11414   { 0.33912903252727361, 20.000000000000000, 2.0000000000000000,
11415 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11416   { 0.55049794600858049, 20.000000000000000, 2.0000000000000000,
11417 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11418   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11419 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11420   { 2.1254722872032232, 20.000000000000000, 2.0000000000000000,
11421 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11422   { 5.6261213886736314, 20.000000000000000, 2.0000000000000000,
11423 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11424   { 20.137315891130996, 20.000000000000000, 2.0000000000000000,
11425 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11426   { 108.04381584643900, 20.000000000000000, 2.0000000000000000,
11427 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11428   { 992.41692466460245, 20.000000000000000, 2.0000000000000000,
11429 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11430   { 19055.363816004465, 20.000000000000000, 2.0000000000000000,
11431 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11432   { 1105471.9504312191, 20.000000000000000, 2.0000000000000000,
11433 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11434   { 448521363.90608919, 20.000000000000000, 2.0000000000000000,
11435 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11436   { 19078917293639.652, 20.000000000000000, 2.0000000000000000,
11437 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11438 };
11439 const double toler228 = 2.5000000000000020e-13;
11440 
11441 // Test data for a=20.000000000000000, b=2.0000000000000000, c=8.0000000000000000.
11442 // max(|f - f_GSL|): 8.3923339843750000e-05 at index 18
11443 // max(|f - f_GSL| / |f_GSL|): 1.8221514326726564e-15
11444 // mean(f - f_GSL): 4.4172143495227617e-06
11445 // variance(f - f_GSL): 3.7068906120670492e-10
11446 // stddev(f - f_GSL): 1.9253287023433297e-05
11447 const testcase_hyperg<double>
11448 data229[19] =
11449 {
11450   { 0.083753547015334884, 20.000000000000000, 2.0000000000000000,
11451 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11452   { 0.099238444687035743, 20.000000000000000, 2.0000000000000000,
11453 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11454   { 0.11938294012867748, 20.000000000000000, 2.0000000000000000,
11455 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11456   { 0.14622683905023329, 20.000000000000000, 2.0000000000000000,
11457 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11458   { 0.18303556733713028, 20.000000000000000, 2.0000000000000000,
11459 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11460   { 0.23527764069382415, 20.000000000000000, 2.0000000000000000,
11461 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11462   { 0.31261681740827069, 20.000000000000000, 2.0000000000000000,
11463 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11464   { 0.43327581880538862, 20.000000000000000, 2.0000000000000000,
11465 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11466   { 0.63445840637296680, 20.000000000000000, 2.0000000000000000,
11467 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11468   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11469 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11470   { 1.7438842395813297, 20.000000000000000, 2.0000000000000000,
11471 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11472   { 3.5070840938209331, 20.000000000000000, 2.0000000000000000,
11473 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11474   { 8.6573372006089713, 20.000000000000000, 2.0000000000000000,
11475 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11476   { 28.779342118408998, 20.000000000000000, 2.0000000000000000,
11477 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11478   { 147.50178613955714, 20.000000000000000, 2.0000000000000000,
11479 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11480   { 1427.1686016136398, 20.000000000000000, 2.0000000000000000,
11481 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11482   { 36780.643714655955, 20.000000000000000, 2.0000000000000000,
11483 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11484   { 5313869.6058585485, 20.000000000000000, 2.0000000000000000,
11485 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11486   { 46057280607.383286, 20.000000000000000, 2.0000000000000000,
11487 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11488 };
11489 const double toler229 = 2.5000000000000020e-13;
11490 
11491 // Test data for a=20.000000000000000, b=2.0000000000000000, c=10.000000000000000.
11492 // max(|f - f_GSL|): 5.0663948059082031e-07 at index 18
11493 // max(|f - f_GSL| / |f_GSL|): 1.9925479281069681e-15
11494 // mean(f - f_GSL): 2.6669880993704522e-08
11495 // variance(f - f_GSL): 1.3509399735218820e-14
11496 // stddev(f - f_GSL): 1.1622994336752823e-07
11497 const testcase_hyperg<double>
11498 data230[19] =
11499 {
11500   { 0.11920045035073676, 20.000000000000000, 2.0000000000000000,
11501 	  10.000000000000000, -0.90000000000000002, 0.0 },
11502   { 0.13907946814302777, 20.000000000000000, 2.0000000000000000,
11503 	  10.000000000000000, -0.80000000000000004, 0.0 },
11504   { 0.16431439792559696, 20.000000000000000, 2.0000000000000000,
11505 	  10.000000000000000, -0.69999999999999996, 0.0 },
11506   { 0.19698796016986989, 20.000000000000000, 2.0000000000000000,
11507 	  10.000000000000000, -0.59999999999999998, 0.0 },
11508   { 0.24028510928790547, 20.000000000000000, 2.0000000000000000,
11509 	  10.000000000000000, -0.50000000000000000, 0.0 },
11510   { 0.29926031296483130, 20.000000000000000, 2.0000000000000000,
11511 	  10.000000000000000, -0.39999999999999991, 0.0 },
11512   { 0.38229327814229175, 20.000000000000000, 2.0000000000000000,
11513 	  10.000000000000000, -0.29999999999999993, 0.0 },
11514   { 0.50402047283093132, 20.000000000000000, 2.0000000000000000,
11515 	  10.000000000000000, -0.19999999999999996, 0.0 },
11516   { 0.69167261179586526, 20.000000000000000, 2.0000000000000000,
11517 	  10.000000000000000, -0.099999999999999978, 0.0 },
11518   { 1.0000000000000000, 20.000000000000000, 2.0000000000000000,
11519 	  10.000000000000000, 0.0000000000000000, 0.0 },
11520   { 1.5503152253394308, 20.000000000000000, 2.0000000000000000,
11521 	  10.000000000000000, 0.10000000000000009, 0.0 },
11522   { 2.6469548193635828, 20.000000000000000, 2.0000000000000000,
11523 	  10.000000000000000, 0.20000000000000018, 0.0 },
11524   { 5.1882631330566813, 20.000000000000000, 2.0000000000000000,
11525 	  10.000000000000000, 0.30000000000000004, 0.0 },
11526   { 12.476792759124546, 20.000000000000000, 2.0000000000000000,
11527 	  10.000000000000000, 0.40000000000000013, 0.0 },
11528   { 41.026391565091259, 20.000000000000000, 2.0000000000000000,
11529 	  10.000000000000000, 0.50000000000000000, 0.0 },
11530   { 220.92584715988204, 20.000000000000000, 2.0000000000000000,
11531 	  10.000000000000000, 0.60000000000000009, 0.0 },
11532   { 2677.0834450236389, 20.000000000000000, 2.0000000000000000,
11533 	  10.000000000000000, 0.70000000000000018, 0.0 },
11534   { 141774.31260689779, 20.000000000000000, 2.0000000000000000,
11535 	  10.000000000000000, 0.80000000000000004, 0.0 },
11536   { 254267148.83197621, 20.000000000000000, 2.0000000000000000,
11537 	  10.000000000000000, 0.90000000000000013, 0.0 },
11538 };
11539 const double toler230 = 2.5000000000000020e-13;
11540 
11541 // Test data for a=20.000000000000000, b=5.0000000000000000, c=2.0000000000000000.
11542 // max(|f - f_GSL|): 60129542144.000000 at index 18
11543 // max(|f - f_GSL| / |f_GSL|): 2.0181355730232468e-15
11544 // mean(f - f_GSL): 3164712852.2154636
11545 // variance(f - f_GSL): 1.9029272767041847e+20
11546 // stddev(f - f_GSL): 13794663014.021708
11547 const testcase_hyperg<double>
11548 data231[19] =
11549 {
11550   { -1.8650300348790099e-05, 20.000000000000000, 5.0000000000000000,
11551 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11552   { -3.6488008415371319e-05, 20.000000000000000, 5.0000000000000000,
11553 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11554   { -6.4614776410961038e-05, 20.000000000000000, 5.0000000000000000,
11555 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11556   { -8.4495207102246549e-05, 20.000000000000000, 5.0000000000000000,
11557 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11558   { 2.2276197023825424e-05, 20.000000000000000, 5.0000000000000000,
11559 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11560   { 0.00070736115111457809, 20.000000000000000, 5.0000000000000000,
11561 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11562   { 0.0027829732057272588, 20.000000000000000, 5.0000000000000000,
11563 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11564   { 0.0013283545664371644, 20.000000000000000, 5.0000000000000000,
11565 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11566   { -0.041767631015048774, 20.000000000000000, 5.0000000000000000,
11567 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11568   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11569 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11570   { 61.311496556100003, 20.000000000000000, 5.0000000000000000,
11571 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11572   { 2397.4420539085872, 20.000000000000000, 5.0000000000000000,
11573 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11574   { 103687.60998586559, 20.000000000000000, 5.0000000000000000,
11575 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11576   { 6247196.6451069508, 20.000000000000000, 5.0000000000000000,
11577 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11578   { 656408576.00000000, 20.000000000000000, 5.0000000000000000,
11579 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11580   { 165334768098.54715, 20.000000000000000, 5.0000000000000000,
11581 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11582   { 175097125520819.91, 20.000000000000000, 5.0000000000000000,
11583 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11584   { 2.6818275451660257e+18, 20.000000000000000, 5.0000000000000000,
11585 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11586   { 2.9794600000000777e+25, 20.000000000000000, 5.0000000000000000,
11587 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11588 };
11589 const double toler231 = 2.5000000000000020e-13;
11590 
11591 // Test data for a=20.000000000000000, b=5.0000000000000000, c=4.0000000000000000.
11592 // max(|f - f_GSL|): 9437184.0000000000 at index 18
11593 // max(|f - f_GSL| / |f_GSL|): 2.0515617391303805e-15
11594 // mean(f - f_GSL): 496693.97369064158
11595 // variance(f - f_GSL): 4687391593519.1660
11596 // stddev(f - f_GSL): 2165038.4739119918
11597 const testcase_hyperg<double>
11598 data232[19] =
11599 {
11600   { -3.6403884516313627e-06, 20.000000000000000, 5.0000000000000000,
11601 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11602   { -9.5873829246491408e-06, 20.000000000000000, 5.0000000000000000,
11603 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11604   { -2.6052245147200097e-05, 20.000000000000000, 5.0000000000000000,
11605 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11606   { -7.2378303598384501e-05, 20.000000000000000, 5.0000000000000000,
11607 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11608   { -0.00020048577321417379, 20.000000000000000, 5.0000000000000000,
11609 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11610   { -0.00051222704046234439, 20.000000000000000, 5.0000000000000000,
11611 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11612   { -0.00080950511491888959, 20.000000000000000, 5.0000000000000000,
11613 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11614   { 0.0043473422174314250, 20.000000000000000, 5.0000000000000000,
11615 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11616   { 0.081078342558623853, 20.000000000000000, 5.0000000000000000,
11617 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11618   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11619 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11620   { 12.794854084397739, 20.000000000000000, 5.0000000000000000,
11621 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11622   { 195.15639104739174, 20.000000000000000, 5.0000000000000000,
11623 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11624   { 3938.7991953190131, 20.000000000000000, 5.0000000000000000,
11625 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11626   { 118521.48653762160, 20.000000000000000, 5.0000000000000000,
11627 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11628   { 6291455.9999999972, 20.000000000000000, 5.0000000000000000,
11629 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11630   { 773070496.50699198, 20.000000000000000, 5.0000000000000000,
11631 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11632   { 363276452167.04718, 20.000000000000000, 5.0000000000000000,
11633 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11634   { 2002716064453133.0, 20.000000000000000, 5.0000000000000000,
11635 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11636   { 4.6000000000001222e+21, 20.000000000000000, 5.0000000000000000,
11637 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11638 };
11639 const double toler232 = 2.5000000000000020e-13;
11640 
11641 // Test data for a=20.000000000000000, b=5.0000000000000000, c=6.0000000000000000.
11642 // max(|f - f_GSL|): 5120.0000000000000 at index 18
11643 // max(|f - f_GSL| / |f_GSL|): 1.7944916193878173e-15
11644 // mean(f - f_GSL): 269.47388985302263
11645 // variance(f - f_GSL): 1379705.1461701661
11646 // stddev(f - f_GSL): 1174.6085076186730
11647 const testcase_hyperg<double>
11648 data233[19] =
11649 {
11650   { 0.00014313323624053599, 20.000000000000000, 5.0000000000000000,
11651 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11652   { 0.00025426183473118769, 20.000000000000000, 5.0000000000000000,
11653 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11654   { 0.00048255612836437054, 20.000000000000000, 5.0000000000000000,
11655 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11656   { 0.00099096904674794185, 20.000000000000000, 5.0000000000000000,
11657 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11658   { 0.0022347805521915616, 20.000000000000000, 5.0000000000000000,
11659 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11660   { 0.0056271390060294354, 20.000000000000000, 5.0000000000000000,
11661 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11662   { 0.016109059519227351, 20.000000000000000, 5.0000000000000000,
11663 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11664   { 0.053453465775609076, 20.000000000000000, 5.0000000000000000,
11665 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11666   { 0.20995202901839263, 20.000000000000000, 5.0000000000000000,
11667 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11668   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11669 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11670   { 5.9534372167648799, 20.000000000000000, 5.0000000000000000,
11671 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11672   { 46.157632071206095, 20.000000000000000, 5.0000000000000000,
11673 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11674   { 494.32074431164915, 20.000000000000000, 5.0000000000000000,
11675 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11676   { 7989.5277611776519, 20.000000000000000, 5.0000000000000000,
11677 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11678   { 224179.55830753347, 20.000000000000000, 5.0000000000000000,
11679 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11680   { 13848144.485282511, 20.000000000000000, 5.0000000000000000,
11681 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11682   { 2948587692.8892150, 20.000000000000000, 5.0000000000000000,
11683 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11684   { 5940513286161.6602, 20.000000000000000, 5.0000000000000000,
11685 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11686   { 2.8531757655946394e+18, 20.000000000000000, 5.0000000000000000,
11687 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11688 };
11689 const double toler233 = 2.5000000000000020e-13;
11690 
11691 // Test data for a=20.000000000000000, b=5.0000000000000000, c=8.0000000000000000.
11692 // max(|f - f_GSL|): 7.0000000000000000 at index 18
11693 // max(|f - f_GSL| / |f_GSL|): 1.5351977183413728e-15
11694 // mean(f - f_GSL): 0.36842306154970872
11695 // variance(f - f_GSL): 2.5789458059294108
11696 // stddev(f - f_GSL): 1.6059096506122039
11697 const testcase_hyperg<double>
11698 data234[19] =
11699 {
11700   { 0.0012492049968744917, 20.000000000000000, 5.0000000000000000,
11701 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11702   { 0.0019931241968014200, 20.000000000000000, 5.0000000000000000,
11703 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11704   { 0.0033203386861410844, 20.000000000000000, 5.0000000000000000,
11705 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11706   { 0.0058191894509856774, 20.000000000000000, 5.0000000000000000,
11707 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11708   { 0.010830090368313864, 20.000000000000000, 5.0000000000000000,
11709 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11710   { 0.021653062305193541, 20.000000000000000, 5.0000000000000000,
11711 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11712   { 0.047180821280919195, 20.000000000000000, 5.0000000000000000,
11713 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11714   { 0.11405637279736212, 20.000000000000000, 5.0000000000000000,
11715 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11716   { 0.31275468794721017, 20.000000000000000, 5.0000000000000000,
11717 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11718   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11719 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11720   { 3.8598904658643969, 20.000000000000000, 5.0000000000000000,
11721 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11722   { 18.806301417906734, 20.000000000000000, 5.0000000000000000,
11723 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11724   { 122.77054465017432, 20.000000000000000, 5.0000000000000000,
11725 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11726   { 1168.4762146809012, 20.000000000000000, 5.0000000000000000,
11727 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11728   { 18437.511788521082, 20.000000000000000, 5.0000000000000000,
11729 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11730   { 597441.79669264762, 20.000000000000000, 5.0000000000000000,
11731 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11732   { 59390411.369228527, 20.000000000000000, 5.0000000000000000,
11733 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11734   { 44681668993.361603, 20.000000000000000, 5.0000000000000000,
11735 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11736   { 4559673269683333.0, 20.000000000000000, 5.0000000000000000,
11737 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11738 };
11739 const double toler234 = 2.5000000000000020e-13;
11740 
11741 // Test data for a=20.000000000000000, b=5.0000000000000000, c=10.000000000000000.
11742 // max(|f - f_GSL|): 0.029296875000000000 at index 18
11743 // max(|f - f_GSL| / |f_GSL|): 1.8717083246628342e-15
11744 // mean(f - f_GSL): 0.0015419659355661440
11745 // variance(f - f_GSL): 4.5173964710879197e-05
11746 // stddev(f - f_GSL): 0.0067211579888348996
11747 const testcase_hyperg<double>
11748 data235[19] =
11749 {
11750   { 0.0038867957051370739, 20.000000000000000, 5.0000000000000000,
11751 	  10.000000000000000, -0.90000000000000002, 0.0 },
11752   { 0.0058484892597364235, 20.000000000000000, 5.0000000000000000,
11753 	  10.000000000000000, -0.80000000000000004, 0.0 },
11754   { 0.0090987656053758189, 20.000000000000000, 5.0000000000000000,
11755 	  10.000000000000000, -0.69999999999999996, 0.0 },
11756   { 0.014714392537270657, 20.000000000000000, 5.0000000000000000,
11757 	  10.000000000000000, -0.59999999999999998, 0.0 },
11758   { 0.024900404542056772, 20.000000000000000, 5.0000000000000000,
11759 	  10.000000000000000, -0.50000000000000000, 0.0 },
11760   { 0.044460184663785055, 20.000000000000000, 5.0000000000000000,
11761 	  10.000000000000000, -0.39999999999999991, 0.0 },
11762   { 0.084638849196357113, 20.000000000000000, 5.0000000000000000,
11763 	  10.000000000000000, -0.29999999999999993, 0.0 },
11764   { 0.17409058241291026, 20.000000000000000, 5.0000000000000000,
11765 	  10.000000000000000, -0.19999999999999996, 0.0 },
11766   { 0.39357055823580767, 20.000000000000000, 5.0000000000000000,
11767 	  10.000000000000000, -0.099999999999999978, 0.0 },
11768   { 1.0000000000000000, 20.000000000000000, 5.0000000000000000,
11769 	  10.000000000000000, 0.0000000000000000, 0.0 },
11770   { 2.9410794636226596, 20.000000000000000, 5.0000000000000000,
11771 	  10.000000000000000, 0.10000000000000009, 0.0 },
11772   { 10.417226071414374, 20.000000000000000, 5.0000000000000000,
11773 	  10.000000000000000, 0.20000000000000018, 0.0 },
11774   { 46.930585873140835, 20.000000000000000, 5.0000000000000000,
11775 	  10.000000000000000, 0.30000000000000004, 0.0 },
11776   { 290.76717121814988, 20.000000000000000, 5.0000000000000000,
11777 	  10.000000000000000, 0.40000000000000013, 0.0 },
11778   { 2788.1641083374830, 20.000000000000000, 5.0000000000000000,
11779 	  10.000000000000000, 0.50000000000000000, 0.0 },
11780   { 50228.117718560752, 20.000000000000000, 5.0000000000000000,
11781 	  10.000000000000000, 0.60000000000000009, 0.0 },
11782   { 2433042.3476752895, 20.000000000000000, 5.0000000000000000,
11783 	  10.000000000000000, 0.70000000000000018, 0.0 },
11784   { 705345246.77141762, 20.000000000000000, 5.0000000000000000,
11785 	  10.000000000000000, 0.80000000000000004, 0.0 },
11786   { 15652478868617.246, 20.000000000000000, 5.0000000000000000,
11787 	  10.000000000000000, 0.90000000000000013, 0.0 },
11788 };
11789 const double toler235 = 2.5000000000000020e-13;
11790 
11791 // Test data for a=20.000000000000000, b=10.000000000000000, c=2.0000000000000000.
11792 // max(|f - f_GSL|): 2.5940733853654057e+18 at index 18
11793 // max(|f - f_GSL| / |f_GSL|): 1.8312596334404269e-15
11794 // mean(f - f_GSL): 1.3653017829015250e+17
11795 // variance(f - f_GSL): 4.1617051640949032e+35
11796 // stddev(f - f_GSL): 6.4511279355589466e+17
11797 const testcase_hyperg<double>
11798 data236[19] =
11799 {
11800   { -2.1776535312781759e-07, 20.000000000000000, 10.000000000000000,
11801 	  2.0000000000000000, -0.90000000000000002, 0.0 },
11802   { -2.9128833151630439e-06, 20.000000000000000, 10.000000000000000,
11803 	  2.0000000000000000, -0.80000000000000004, 0.0 },
11804   { -9.4755553429932710e-06, 20.000000000000000, 10.000000000000000,
11805 	  2.0000000000000000, -0.69999999999999996, 0.0 },
11806   { -1.2844297353852837e-05, 20.000000000000000, 10.000000000000000,
11807 	  2.0000000000000000, -0.59999999999999998, 0.0 },
11808   { 3.6576965483549205e-05, 20.000000000000000, 10.000000000000000,
11809 	  2.0000000000000000, -0.50000000000000000, 0.0 },
11810   { 0.00020847453890703339, 20.000000000000000, 10.000000000000000,
11811 	  2.0000000000000000, -0.39999999999999991, 0.0 },
11812   { -0.00022868510398194936, 20.000000000000000, 10.000000000000000,
11813 	  2.0000000000000000, -0.29999999999999993, 0.0 },
11814   { -0.0021855513841943421, 20.000000000000000, 10.000000000000000,
11815 	  2.0000000000000000, -0.19999999999999996, 0.0 },
11816   { 0.014662111759334568, 20.000000000000000, 10.000000000000000,
11817 	  2.0000000000000000, -0.099999999999999978, 0.0 },
11818   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11819 	  2.0000000000000000, 0.0000000000000000, 0.0 },
11820   { 746.44776348798098, 20.000000000000000, 10.000000000000000,
11821 	  2.0000000000000000, 0.10000000000000009, 0.0 },
11822   { 136080.48445225772, 20.000000000000000, 10.000000000000000,
11823 	  2.0000000000000000, 0.20000000000000018, 0.0 },
11824   { 23094279.597826406, 20.000000000000000, 10.000000000000000,
11825 	  2.0000000000000000, 0.30000000000000004, 0.0 },
11826   { 5315913395.5545979, 20.000000000000000, 10.000000000000000,
11827 	  2.0000000000000000, 0.40000000000000013, 0.0 },
11828   { 2261935718399.9990, 20.000000000000000, 10.000000000000000,
11829 	  2.0000000000000000, 0.50000000000000000, 0.0 },
11830   { 2669150854828235.0, 20.000000000000000, 10.000000000000000,
11831 	  2.0000000000000000, 0.60000000000000009, 0.0 },
11832   { 1.7499363099366351e+19, 20.000000000000000, 10.000000000000000,
11833 	  2.0000000000000000, 0.70000000000000018, 0.0 },
11834   { 2.8881518494606140e+24, 20.000000000000000, 10.000000000000000,
11835 	  2.0000000000000000, 0.80000000000000004, 0.0 },
11836   { 1.4165513933662505e+33, 20.000000000000000, 10.000000000000000,
11837 	  2.0000000000000000, 0.90000000000000013, 0.0 },
11838 };
11839 const double toler236 = 2.5000000000000020e-13;
11840 
11841 // Test data for a=20.000000000000000, b=10.000000000000000, c=4.0000000000000000.
11842 // max(|f - f_GSL|): 299067162755072.00 at index 18
11843 // max(|f - f_GSL| / |f_GSL|): 2.1129345912023457e-15
11844 // mean(f - f_GSL): 15740377042297.895
11845 // variance(f - f_GSL): 4.7074334083472640e+27
11846 // stddev(f - f_GSL): 68610738287437.656
11847 const testcase_hyperg<double>
11848 data237[19] =
11849 {
11850   { 1.7149006966334498e-07, 20.000000000000000, 10.000000000000000,
11851 	  4.0000000000000000, -0.90000000000000002, 0.0 },
11852   { 3.2399324906563845e-07, 20.000000000000000, 10.000000000000000,
11853 	  4.0000000000000000, -0.80000000000000004, 0.0 },
11854   { 1.6015317699713284e-07, 20.000000000000000, 10.000000000000000,
11855 	  4.0000000000000000, -0.69999999999999996, 0.0 },
11856   { -2.0500917201273337e-06, 20.000000000000000, 10.000000000000000,
11857 	  4.0000000000000000, -0.59999999999999998, 0.0 },
11858   { -1.0175546788592665e-05, 20.000000000000000, 10.000000000000000,
11859 	  4.0000000000000000, -0.50000000000000000, 0.0 },
11860   { -1.1720101988188077e-05, 20.000000000000000, 10.000000000000000,
11861 	  4.0000000000000000, -0.39999999999999991, 0.0 },
11862   { 0.00014199637113982382, 20.000000000000000, 10.000000000000000,
11863 	  4.0000000000000000, -0.29999999999999993, 0.0 },
11864   { 0.00021263363640641769, 20.000000000000000, 10.000000000000000,
11865 	  4.0000000000000000, -0.19999999999999996, 0.0 },
11866   { -0.0072649256698439626, 20.000000000000000, 10.000000000000000,
11867 	  4.0000000000000000, -0.099999999999999978, 0.0 },
11868   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11869 	  4.0000000000000000, 0.0000000000000000, 0.0 },
11870   { 90.430293772869618, 20.000000000000000, 10.000000000000000,
11871 	  4.0000000000000000, 0.10000000000000009, 0.0 },
11872   { 6248.1455940292872, 20.000000000000000, 10.000000000000000,
11873 	  4.0000000000000000, 0.20000000000000018, 0.0 },
11874   { 501143.39852548984, 20.000000000000000, 10.000000000000000,
11875 	  4.0000000000000000, 0.30000000000000004, 0.0 },
11876   { 58852027.356440276, 20.000000000000000, 10.000000000000000,
11877 	  4.0000000000000000, 0.40000000000000013, 0.0 },
11878   { 12942923093.333330, 20.000000000000000, 10.000000000000000,
11879 	  4.0000000000000000, 0.50000000000000000, 0.0 },
11880   { 7618073993853.6592, 20.000000000000000, 10.000000000000000,
11881 	  4.0000000000000000, 0.60000000000000009, 0.0 },
11882   { 22630251562549772., 20.000000000000000, 10.000000000000000,
11883 	  4.0000000000000000, 0.70000000000000018, 0.0 },
11884   { 1.3708372433980356e+21, 20.000000000000000, 10.000000000000000,
11885 	  4.0000000000000000, 0.80000000000000004, 0.0 },
11886   { 1.4154113620000448e+29, 20.000000000000000, 10.000000000000000,
11887 	  4.0000000000000000, 0.90000000000000013, 0.0 },
11888 };
11889 const double toler237 = 2.5000000000000020e-13;
11890 
11891 // Test data for a=20.000000000000000, b=10.000000000000000, c=6.0000000000000000.
11892 // max(|f - f_GSL|): 103079215104.00000 at index 18
11893 // max(|f - f_GSL| / |f_GSL|): 1.8869870511941024e-15
11894 // mean(f - f_GSL): 5425221928.4235201
11895 // variance(f - f_GSL): 5.5922760890380314e+20
11896 // stddev(f - f_GSL): 23647993760.651306
11897 const testcase_hyperg<double>
11898 data238[19] =
11899 {
11900   { -1.6667473284194196e-08, 20.000000000000000, 10.000000000000000,
11901 	  6.0000000000000000, -0.90000000000000002, 0.0 },
11902   { 8.6214843496406671e-08, 20.000000000000000, 10.000000000000000,
11903 	  6.0000000000000000, -0.80000000000000004, 0.0 },
11904   { 5.7778331275185146e-07, 20.000000000000000, 10.000000000000000,
11905 	  6.0000000000000000, -0.69999999999999996, 0.0 },
11906   { 2.1911400502042259e-06, 20.000000000000000, 10.000000000000000,
11907 	  6.0000000000000000, -0.59999999999999998, 0.0 },
11908   { 4.7440049217199358e-06, 20.000000000000000, 10.000000000000000,
11909 	  6.0000000000000000, -0.50000000000000000, 0.0 },
11910   { -1.0564233314712615e-05, 20.000000000000000, 10.000000000000000,
11911 	  6.0000000000000000, -0.39999999999999991, 0.0 },
11912   { -0.00017990026051847404, 20.000000000000000, 10.000000000000000,
11913 	  6.0000000000000000, -0.29999999999999993, 0.0 },
11914   { -0.00027618146288724629, 20.000000000000000, 10.000000000000000,
11915 	  6.0000000000000000, -0.19999999999999996, 0.0 },
11916   { 0.030606019577723666, 20.000000000000000, 10.000000000000000,
11917 	  6.0000000000000000, -0.099999999999999978, 0.0 },
11918   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11919 	  6.0000000000000000, 0.0000000000000000, 0.0 },
11920   { 27.832854169493341, 20.000000000000000, 10.000000000000000,
11921 	  6.0000000000000000, 0.10000000000000009, 0.0 },
11922   { 874.00624088575910, 20.000000000000000, 10.000000000000000,
11923 	  6.0000000000000000, 0.20000000000000018, 0.0 },
11924   { 36049.199340831554, 20.000000000000000, 10.000000000000000,
11925 	  6.0000000000000000, 0.30000000000000004, 0.0 },
11926   { 2270967.7298625209, 20.000000000000000, 10.000000000000000,
11927 	  6.0000000000000000, 0.40000000000000013, 0.0 },
11928   { 266979100.44444439, 20.000000000000000, 10.000000000000000,
11929 	  6.0000000000000000, 0.50000000000000000, 0.0 },
11930   { 80311224337.493027, 20.000000000000000, 10.000000000000000,
11931 	  6.0000000000000000, 0.60000000000000009, 0.0 },
11932   { 110111693103801.77, 20.000000000000000, 10.000000000000000,
11933 	  6.0000000000000000, 0.70000000000000018, 0.0 },
11934   { 2.4838871426052618e+18, 20.000000000000000, 10.000000000000000,
11935 	  6.0000000000000000, 0.80000000000000004, 0.0 },
11936   { 5.4626350000001618e+25, 20.000000000000000, 10.000000000000000,
11937 	  6.0000000000000000, 0.90000000000000013, 0.0 },
11938 };
11939 const double toler238 = 2.5000000000000020e-13;
11940 
11941 // Test data for a=20.000000000000000, b=10.000000000000000, c=8.0000000000000000.
11942 // max(|f - f_GSL|): 100663296.00000000 at index 18
11943 // max(|f - f_GSL| / |f_GSL|): 1.9414329026036117e-15
11944 // mean(f - f_GSL): 5298068.6316046715
11945 // variance(f - f_GSL): 533321003794731.12
11946 // stddev(f - f_GSL): 23093743.823701065
11947 const testcase_hyperg<double>
11948 data239[19] =
11949 {
11950   { -1.5843795889906876e-07, 20.000000000000000, 10.000000000000000,
11951 	  8.0000000000000000, -0.90000000000000002, 0.0 },
11952   { -5.4877276002864784e-07, 20.000000000000000, 10.000000000000000,
11953 	  8.0000000000000000, -0.80000000000000004, 0.0 },
11954   { -1.7169507967699695e-06, 20.000000000000000, 10.000000000000000,
11955 	  8.0000000000000000, -0.69999999999999996, 0.0 },
11956   { -4.5236439749819329e-06, 20.000000000000000, 10.000000000000000,
11957 	  8.0000000000000000, -0.59999999999999998, 0.0 },
11958   { -5.5690492560381956e-06, 20.000000000000000, 10.000000000000000,
11959 	  8.0000000000000000, -0.50000000000000000, 0.0 },
11960   { 5.6914115606653561e-05, 20.000000000000000, 10.000000000000000,
11961 	  8.0000000000000000, -0.39999999999999991, 0.0 },
11962   { 0.00082507252097489250, 20.000000000000000, 10.000000000000000,
11963 	  8.0000000000000000, -0.29999999999999993, 0.0 },
11964   { 0.0085739249288230429, 20.000000000000000, 10.000000000000000,
11965 	  8.0000000000000000, -0.19999999999999996, 0.0 },
11966   { 0.088244357683754687, 20.000000000000000, 10.000000000000000,
11967 	  8.0000000000000000, -0.099999999999999978, 0.0 },
11968   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
11969 	  8.0000000000000000, 0.0000000000000000, 0.0 },
11970   { 13.387208440156897, 20.000000000000000, 10.000000000000000,
11971 	  8.0000000000000000, 0.10000000000000009, 0.0 },
11972   { 226.77895441155252, 20.000000000000000, 10.000000000000000,
11973 	  8.0000000000000000, 0.20000000000000018, 0.0 },
11974   { 5281.5716482686785, 20.000000000000000, 10.000000000000000,
11975 	  8.0000000000000000, 0.30000000000000004, 0.0 },
11976   { 189431.77762850633, 20.000000000000000, 10.000000000000000,
11977 	  8.0000000000000000, 0.40000000000000013, 0.0 },
11978   { 12408149.333333332, 20.000000000000000, 10.000000000000000,
11979 	  8.0000000000000000, 0.50000000000000000, 0.0 },
11980   { 1966782292.5839682, 20.000000000000000, 10.000000000000000,
11981 	  8.0000000000000000, 0.60000000000000009, 0.0 },
11982   { 1274123112205.7700, 20.000000000000000, 10.000000000000000,
11983 	  8.0000000000000000, 0.70000000000000018, 0.0 },
11984   { 10903676350911508., 20.000000000000000, 10.000000000000000,
11985 	  8.0000000000000000, 0.80000000000000004, 0.0 },
11986   { 5.1850000000001411e+22, 20.000000000000000, 10.000000000000000,
11987 	  8.0000000000000000, 0.90000000000000013, 0.0 },
11988 };
11989 const double toler239 = 2.5000000000000020e-13;
11990 
11991 // Test data for a=20.000000000000000, b=10.000000000000000, c=10.000000000000000.
11992 // max(|f - f_GSL|): 475136.00000000000 at index 18
11993 // max(|f - f_GSL| / |f_GSL|): 5.4067200000000052e-15
11994 // mean(f - f_GSL): 25007.185032091642
11995 // variance(f - f_GSL): 11881799540.814577
11996 // stddev(f - f_GSL): 109003.66755671379
11997 const testcase_hyperg<double>
11998 data240[19] =
11999 {
12000   { 2.6602838683283435e-06, 20.000000000000000, 10.000000000000000,
12001 	  10.000000000000000, -0.90000000000000002, 0.0 },
12002   { 7.8442223930072316e-06, 20.000000000000000, 10.000000000000000,
12003 	  10.000000000000000, -0.80000000000000004, 0.0 },
12004   { 2.4604898194634598e-05, 20.000000000000000, 10.000000000000000,
12005 	  10.000000000000000, -0.69999999999999996, 0.0 },
12006   { 8.2718061255302686e-05, 20.000000000000000, 10.000000000000000,
12007 	  10.000000000000000, -0.59999999999999998, 0.0 },
12008   { 0.00030072865982171723, 20.000000000000000, 10.000000000000000,
12009 	  10.000000000000000, -0.50000000000000000, 0.0 },
12010   { 0.0011951964277455204, 20.000000000000000, 10.000000000000000,
12011 	  10.000000000000000, -0.39999999999999991, 0.0 },
12012   { 0.0052617832469731996, 20.000000000000000, 10.000000000000000,
12013 	  10.000000000000000, -0.29999999999999993, 0.0 },
12014   { 0.026084053304588850, 20.000000000000000, 10.000000000000000,
12015 	  10.000000000000000, -0.19999999999999996, 0.0 },
12016   { 0.14864362802414346, 20.000000000000000, 10.000000000000000,
12017 	  10.000000000000000, -0.099999999999999978, 0.0 },
12018   { 1.0000000000000000, 20.000000000000000, 10.000000000000000,
12019 	  10.000000000000000, 0.0000000000000000, 0.0 },
12020   { 8.2252633399699757, 20.000000000000000, 10.000000000000000,
12021 	  10.000000000000000, 0.10000000000000009, 0.0 },
12022   { 86.736173798840738, 20.000000000000000, 10.000000000000000,
12023 	  10.000000000000000, 0.20000000000000018, 0.0 },
12024   { 1253.2542894196868, 20.000000000000000, 10.000000000000000,
12025 	  10.000000000000000, 0.30000000000000004, 0.0 },
12026   { 27351.112277912678, 20.000000000000000, 10.000000000000000,
12027 	  10.000000000000000, 0.40000000000000013, 0.0 },
12028   { 1048576.0000000000, 20.000000000000000, 10.000000000000000,
12029 	  10.000000000000000, 0.50000000000000000, 0.0 },
12030   { 90949470.177293226, 20.000000000000000, 10.000000000000000,
12031 	  10.000000000000000, 0.60000000000000009, 0.0 },
12032   { 28679719907.924767, 20.000000000000000, 10.000000000000000,
12033 	  10.000000000000000, 0.70000000000000018, 0.0 },
12034   { 95367431640624.906, 20.000000000000000, 10.000000000000000,
12035 	  10.000000000000000, 0.80000000000000004, 0.0 },
12036   { 1.0000000000000220e+20, 20.000000000000000, 10.000000000000000,
12037 	  10.000000000000000, 0.90000000000000013, 0.0 },
12038 };
12039 const double toler240 = 5.0000000000000039e-13;
12040 
12041 // Test data for a=20.000000000000000, b=20.000000000000000, c=2.0000000000000000.
12042 // max(|f - f_GSL|): 8.1129638414606682e+31 at index 18
12043 // max(|f - f_GSL| / |f_GSL|): 2.1657042453579367e-15
12044 // mean(f - f_GSL): 4.2699809691927378e+30
12045 // variance(f - f_GSL): 3.3808552803188121e+96
12046 // stddev(f - f_GSL): 1.8387102219541860e+48
12047 const testcase_hyperg<double>
12048 data241[19] =
12049 {
12050   { 7.4612991227725660e-09, 20.000000000000000, 20.000000000000000,
12051 	  2.0000000000000000, -0.90000000000000002, 0.0 },
12052   { 1.1006588952366092e-07, 20.000000000000000, 20.000000000000000,
12053 	  2.0000000000000000, -0.80000000000000004, 0.0 },
12054   { 2.0126933732744113e-07, 20.000000000000000, 20.000000000000000,
12055 	  2.0000000000000000, -0.69999999999999996, 0.0 },
12056   { -1.0013775379571396e-06, 20.000000000000000, 20.000000000000000,
12057 	  2.0000000000000000, -0.59999999999999998, 0.0 },
12058   { -3.0371956856925611e-06, 20.000000000000000, 20.000000000000000,
12059 	  2.0000000000000000, -0.50000000000000000, 0.0 },
12060   { 2.2012669924829930e-05, 20.000000000000000, 20.000000000000000,
12061 	  2.0000000000000000, -0.39999999999999991, 0.0 },
12062   { -6.2415598025411788e-05, 20.000000000000000, 20.000000000000000,
12063 	  2.0000000000000000, -0.29999999999999993, 0.0 },
12064   { 0.00033551320394368590, 20.000000000000000, 20.000000000000000,
12065 	  2.0000000000000000, -0.19999999999999996, 0.0 },
12066   { -0.0062342152641436752, 20.000000000000000, 20.000000000000000,
12067 	  2.0000000000000000, -0.099999999999999978, 0.0 },
12068   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12069 	  2.0000000000000000, 0.0000000000000000, 0.0 },
12070   { 34830.688900741610, 20.000000000000000, 20.000000000000000,
12071 	  2.0000000000000000, 0.10000000000000009, 0.0 },
12072   { 67626221.263031960, 20.000000000000000, 20.000000000000000,
12073 	  2.0000000000000000, 0.20000000000000018, 0.0 },
12074   { 102764604848.69762, 20.000000000000000, 20.000000000000000,
12075 	  2.0000000000000000, 0.30000000000000004, 0.0 },
12076   { 220278355222376.97, 20.000000000000000, 20.000000000000000,
12077 	  2.0000000000000000, 0.40000000000000013, 0.0 },
12078   { 1.0422324699794536e+18, 20.000000000000000, 20.000000000000000,
12079 	  2.0000000000000000, 0.50000000000000000, 0.0 },
12080   { 1.9128731788368004e+22, 20.000000000000000, 20.000000000000000,
12081 	  2.0000000000000000, 0.60000000000000009, 0.0 },
12082   { 3.5234592919486348e+27, 20.000000000000000, 20.000000000000000,
12083 	  2.0000000000000000, 0.70000000000000018, 0.0 },
12084   { 5.0867023209025249e+34, 20.000000000000000, 20.000000000000000,
12085 	  2.0000000000000000, 0.80000000000000004, 0.0 },
12086   { 3.7461088506661713e+46, 20.000000000000000, 20.000000000000000,
12087 	  2.0000000000000000, 0.90000000000000013, 0.0 },
12088 };
12089 const double toler241 = 2.5000000000000020e-13;
12090 
12091 // Test data for a=20.000000000000000, b=20.000000000000000, c=4.0000000000000000.
12092 // max(|f - f_GSL|): 4.3327901374988310e+27 at index 18
12093 // max(|f - f_GSL| / |f_GSL|): 2.2075464057599215e-15
12094 // mean(f - f_GSL): 2.2804158618486009e+26
12095 // variance(f - f_GSL): 1.7798116217456159e+67
12096 // stddev(f - f_GSL): 4.2187813663967183e+33
12097 const testcase_hyperg<double>
12098 data242[19] =
12099 {
12100   { -1.5895901122487120e-09, 20.000000000000000, 20.000000000000000,
12101 	  4.0000000000000000, -0.90000000000000002, 0.0 },
12102   { -2.4403576191590296e-09, 20.000000000000000, 20.000000000000000,
12103 	  4.0000000000000000, -0.80000000000000004, 0.0 },
12104   { 1.1622915284663225e-08, 20.000000000000000, 20.000000000000000,
12105 	  4.0000000000000000, -0.69999999999999996, 0.0 },
12106   { 6.3899796223275262e-08, 20.000000000000000, 20.000000000000000,
12107 	  4.0000000000000000, -0.59999999999999998, 0.0 },
12108   { -1.3503608350984134e-07, 20.000000000000000, 20.000000000000000,
12109 	  4.0000000000000000, -0.50000000000000000, 0.0 },
12110   { -1.2198533624395468e-06, 20.000000000000000, 20.000000000000000,
12111 	  4.0000000000000000, -0.39999999999999991, 0.0 },
12112   { 9.9086618121819025e-06, 20.000000000000000, 20.000000000000000,
12113 	  4.0000000000000000, -0.29999999999999993, 0.0 },
12114   { -7.6797020080190715e-05, 20.000000000000000, 20.000000000000000,
12115 	  4.0000000000000000, -0.19999999999999996, 0.0 },
12116   { 0.0013196405087170897, 20.000000000000000, 20.000000000000000,
12117 	  4.0000000000000000, -0.099999999999999978, 0.0 },
12118   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12119 	  4.0000000000000000, 0.0000000000000000, 0.0 },
12120   { 2274.2044768143564, 20.000000000000000, 20.000000000000000,
12121 	  4.0000000000000000, 0.10000000000000009, 0.0 },
12122   { 1611640.1560475677, 20.000000000000000, 20.000000000000000,
12123 	  4.0000000000000000, 0.20000000000000018, 0.0 },
12124   { 1147063984.7359734, 20.000000000000000, 20.000000000000000,
12125 	  4.0000000000000000, 0.30000000000000004, 0.0 },
12126   { 1253162497163.8503, 20.000000000000000, 20.000000000000000,
12127 	  4.0000000000000000, 0.40000000000000013, 0.0 },
12128   { 3071321673390476.0, 20.000000000000000, 20.000000000000000,
12129 	  4.0000000000000000, 0.50000000000000000, 0.0 },
12130   { 2.8221123559124324e+19, 20.000000000000000, 20.000000000000000,
12131 	  4.0000000000000000, 0.60000000000000009, 0.0 },
12132   { 2.3658463807420230e+24, 20.000000000000000, 20.000000000000000,
12133 	  4.0000000000000000, 0.70000000000000018, 0.0 },
12134   { 1.2596553731345468e+31, 20.000000000000000, 20.000000000000000,
12135 	  4.0000000000000000, 0.80000000000000004, 0.0 },
12136   { 1.9627175792063675e+42, 20.000000000000000, 20.000000000000000,
12137 	  4.0000000000000000, 0.90000000000000013, 0.0 },
12138 };
12139 const double toler242 = 2.5000000000000020e-13;
12140 
12141 // Test data for a=20.000000000000000, b=20.000000000000000, c=6.0000000000000000.
12142 // max(|f - f_GSL|): 7.5557863725914323e+23 at index 18
12143 // max(|f - f_GSL| / |f_GSL|): 1.9837376456389093e-15
12144 // mean(f - f_GSL): 3.9767296698428338e+22
12145 // variance(f - f_GSL): 4.6773832769218855e+49
12146 // stddev(f - f_GSL): 6.8391397682178457e+24
12147 const testcase_hyperg<double>
12148 data243[19] =
12149 {
12150   { 8.0159783892777232e-11, 20.000000000000000, 20.000000000000000,
12151 	  6.0000000000000000, -0.90000000000000002, 0.0 },
12152   { -6.4422705184649393e-10, 20.000000000000000, 20.000000000000000,
12153 	  6.0000000000000000, -0.80000000000000004, 0.0 },
12154   { -3.7526132950808576e-09, 20.000000000000000, 20.000000000000000,
12155 	  6.0000000000000000, -0.69999999999999996, 0.0 },
12156   { -1.7692034036274638e-09, 20.000000000000000, 20.000000000000000,
12157 	  6.0000000000000000, -0.59999999999999998, 0.0 },
12158   { 7.9304558764774354e-08, 20.000000000000000, 20.000000000000000,
12159 	  6.0000000000000000, -0.50000000000000000, 0.0 },
12160   { 5.9348070417710214e-08, 20.000000000000000, 20.000000000000000,
12161 	  6.0000000000000000, -0.39999999999999991, 0.0 },
12162   { -3.5827694518623355e-06, 20.000000000000000, 20.000000000000000,
12163 	  6.0000000000000000, -0.29999999999999993, 0.0 },
12164   { 4.4951490418031519e-05, 20.000000000000000, 20.000000000000000,
12165 	  6.0000000000000000, -0.19999999999999996, 0.0 },
12166   { -0.0013716249406309328, 20.000000000000000, 20.000000000000000,
12167 	  6.0000000000000000, -0.099999999999999978, 0.0 },
12168   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12169 	  6.0000000000000000, 0.0000000000000000, 0.0 },
12170   { 415.32493304415505, 20.000000000000000, 20.000000000000000,
12171 	  6.0000000000000000, 0.10000000000000009, 0.0 },
12172   { 121300.42991518755, 20.000000000000000, 20.000000000000000,
12173 	  6.0000000000000000, 0.20000000000000018, 0.0 },
12174   { 42725673.833462097, 20.000000000000000, 20.000000000000000,
12175 	  6.0000000000000000, 0.30000000000000004, 0.0 },
12176   { 24588915328.262096, 20.000000000000000, 20.000000000000000,
12177 	  6.0000000000000000, 0.40000000000000013, 0.0 },
12178   { 31929082412503.652, 20.000000000000000, 20.000000000000000,
12179 	  6.0000000000000000, 0.50000000000000000, 0.0 },
12180   { 1.4934954443280477e+17, 20.000000000000000, 20.000000000000000,
12181 	  6.0000000000000000, 0.60000000000000009, 0.0 },
12182   { 5.7726220597697614e+21, 20.000000000000000, 20.000000000000000,
12183 	  6.0000000000000000, 0.70000000000000018, 0.0 },
12184   { 1.1454387824049374e+28, 20.000000000000000, 20.000000000000000,
12185 	  6.0000000000000000, 0.80000000000000004, 0.0 },
12186   { 3.8088637321584496e+38, 20.000000000000000, 20.000000000000000,
12187 	  6.0000000000000000, 0.90000000000000013, 0.0 },
12188 };
12189 const double toler243 = 2.5000000000000020e-13;
12190 
12191 // Test data for a=20.000000000000000, b=20.000000000000000, c=8.0000000000000000.
12192 // max(|f - f_GSL|): 3.3204139332677193e+20 at index 18
12193 // max(|f - f_GSL| / |f_GSL|): 1.9148846081414276e-15
12194 // mean(f - f_GSL): 1.7475862807802462e+19
12195 // variance(f - f_GSL): 6.4226791492038630e+39
12196 // stddev(f - f_GSL): 8.0141619332303634e+19
12197 const testcase_hyperg<double>
12198 data244[19] =
12199 {
12200   { 1.0699067880816065e-10, 20.000000000000000, 20.000000000000000,
12201 	  8.0000000000000000, -0.90000000000000002, 0.0 },
12202   { 5.4297771645951943e-10, 20.000000000000000, 20.000000000000000,
12203 	  8.0000000000000000, -0.80000000000000004, 0.0 },
12204   { 9.7625476382187751e-10, 20.000000000000000, 20.000000000000000,
12205 	  8.0000000000000000, -0.69999999999999996, 0.0 },
12206   { -6.7257763949908548e-09, 20.000000000000000, 20.000000000000000,
12207 	  8.0000000000000000, -0.59999999999999998, 0.0 },
12208   { -5.4634571496409877e-08, 20.000000000000000, 20.000000000000000,
12209 	  8.0000000000000000, -0.50000000000000000, 0.0 },
12210   { 1.4595644217972025e-07, 20.000000000000000, 20.000000000000000,
12211 	  8.0000000000000000, -0.39999999999999991, 0.0 },
12212   { 3.3515966496921257e-06, 20.000000000000000, 20.000000000000000,
12213 	  8.0000000000000000, -0.29999999999999993, 0.0 },
12214   { -6.5848086985738461e-05, 20.000000000000000, 20.000000000000000,
12215 	  8.0000000000000000, -0.19999999999999996, 0.0 },
12216   { 0.0034800171306214847, 20.000000000000000, 20.000000000000000,
12217 	  8.0000000000000000, -0.099999999999999978, 0.0 },
12218   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12219 	  8.0000000000000000, 0.0000000000000000, 0.0 },
12220   { 130.93865856750304, 20.000000000000000, 20.000000000000000,
12221 	  8.0000000000000000, 0.10000000000000009, 0.0 },
12222   { 17850.203502975721, 20.000000000000000, 20.000000000000000,
12223 	  8.0000000000000000, 0.20000000000000018, 0.0 },
12224   { 3307058.5655149994, 20.000000000000000, 20.000000000000000,
12225 	  8.0000000000000000, 0.30000000000000004, 0.0 },
12226   { 1041065396.2302928, 20.000000000000000, 20.000000000000000,
12227 	  8.0000000000000000, 0.40000000000000013, 0.0 },
12228   { 735221357488.41736, 20.000000000000000, 20.000000000000000,
12229 	  8.0000000000000000, 0.50000000000000000, 0.0 },
12230   { 1785176805049585.2, 20.000000000000000, 20.000000000000000,
12231 	  8.0000000000000000, 0.60000000000000009, 0.0 },
12232   { 3.2302829930269979e+19, 20.000000000000000, 20.000000000000000,
12233 	  8.0000000000000000, 0.70000000000000018, 0.0 },
12234   { 2.4184909805178299e+25, 20.000000000000000, 20.000000000000000,
12235 	  8.0000000000000000, 0.80000000000000004, 0.0 },
12236   { 1.7340021007795807e+35, 20.000000000000000, 20.000000000000000,
12237 	  8.0000000000000000, 0.90000000000000013, 0.0 },
12238 };
12239 const double toler244 = 2.5000000000000020e-13;
12240 
12241 // Test data for a=20.000000000000000, b=20.000000000000000, c=10.000000000000000.
12242 // max(|f - f_GSL|): 3.4227357168015770e+17 at index 18
12243 // max(|f - f_GSL| / |f_GSL|): 2.2509396750113666e-15
12244 // mean(f - f_GSL): 18014398513897048.
12245 // variance(f - f_GSL): 6.1659968607222131e+33
12246 // stddev(f - f_GSL): 78523861728281120.
12247 const testcase_hyperg<double>
12248 data245[19] =
12249 {
12250   { -1.7945360901577764e-10, 20.000000000000000, 20.000000000000000,
12251 	  10.000000000000000, -0.90000000000000002, 0.0 },
12252   { -4.4440665776938741e-10, 20.000000000000000, 20.000000000000000,
12253 	  10.000000000000000, -0.80000000000000004, 0.0 },
12254   { 6.6171615263373664e-10, 20.000000000000000, 20.000000000000000,
12255 	  10.000000000000000, -0.69999999999999996, 0.0 },
12256   { 1.5453889374050929e-08, 20.000000000000000, 20.000000000000000,
12257 	  10.000000000000000, -0.59999999999999998, 0.0 },
12258   { 7.5754083909301490e-08, 20.000000000000000, 20.000000000000000,
12259 	  10.000000000000000, -0.50000000000000000, 0.0 },
12260   { -4.1113628650335901e-07, 20.000000000000000, 20.000000000000000,
12261 	  10.000000000000000, -0.39999999999999991, 0.0 },
12262   { -9.5300704263777713e-06, 20.000000000000000, 20.000000000000000,
12263 	  10.000000000000000, -0.29999999999999993, 0.0 },
12264   { 0.00016081533175773833, 20.000000000000000, 20.000000000000000,
12265 	  10.000000000000000, -0.19999999999999996, 0.0 },
12266   { 0.017684650940379586, 20.000000000000000, 20.000000000000000,
12267 	  10.000000000000000, -0.099999999999999978, 0.0 },
12268   { 1.0000000000000000, 20.000000000000000, 20.000000000000000,
12269 	  10.000000000000000, 0.0000000000000000, 0.0 },
12270   { 57.562247312454403, 20.000000000000000, 20.000000000000000,
12271 	  10.000000000000000, 0.10000000000000009, 0.0 },
12272   { 4124.4159820362947, 20.000000000000000, 20.000000000000000,
12273 	  10.000000000000000, 0.20000000000000018, 0.0 },
12274   { 428774.21436196787, 20.000000000000000, 20.000000000000000,
12275 	  10.000000000000000, 0.30000000000000004, 0.0 },
12276   { 76996819.900893494, 20.000000000000000, 20.000000000000000,
12277 	  10.000000000000000, 0.40000000000000013, 0.0 },
12278   { 30473174828.943691, 20.000000000000000, 20.000000000000000,
12279 	  10.000000000000000, 0.50000000000000000, 0.0 },
12280   { 39291970835753.094, 20.000000000000000, 20.000000000000000,
12281 	  10.000000000000000, 0.60000000000000009, 0.0 },
12282   { 3.3890331048069786e+17, 20.000000000000000, 20.000000000000000,
12283 	  10.000000000000000, 0.70000000000000018, 0.0 },
12284   { 9.7157373454594049e+22, 20.000000000000000, 20.000000000000000,
12285 	  10.000000000000000, 0.80000000000000004, 0.0 },
12286   { 1.5205808288861820e+32, 20.000000000000000, 20.000000000000000,
12287 	  10.000000000000000, 0.90000000000000013, 0.0 },
12288 };
12289 const double toler245 = 2.5000000000000020e-13;
12290 
12291 template<typename Ret, unsigned int Num>
12292   void
test(const testcase_hyperg<Ret> (& data)[Num],Ret toler)12293   test(const testcase_hyperg<Ret> (&data)[Num], Ret toler)
12294   {
12295     bool test __attribute__((unused)) = true;
12296     const Ret eps = std::numeric_limits<Ret>::epsilon();
12297     Ret max_abs_diff = -Ret(1);
12298     Ret max_abs_frac = -Ret(1);
12299     unsigned int num_datum = Num;
12300     for (unsigned int i = 0; i < num_datum; ++i)
12301       {
12302 	const Ret f = __gnu_cxx::hyperg(data[i].a, data[i].b,
12303 		     data[i].c, data[i].x);
12304 	const Ret f0 = data[i].f0;
12305 	const Ret diff = f - f0;
12306 	if (std::abs(diff) > max_abs_diff)
12307 	  max_abs_diff = std::abs(diff);
12308 	if (std::abs(f0) > Ret(10) * eps
12309 	 && std::abs(f) > Ret(10) * eps)
12310 	  {
12311 	    const Ret frac = diff / f0;
12312 	    if (std::abs(frac) > max_abs_frac)
12313 	      max_abs_frac = std::abs(frac);
12314 	  }
12315       }
12316     VERIFY(max_abs_frac < toler);
12317   }
12318 
12319 int
main()12320 main()
12321 {
12322   test(data001, toler001);
12323   test(data002, toler002);
12324   test(data003, toler003);
12325   test(data004, toler004);
12326   test(data005, toler005);
12327   test(data006, toler006);
12328   test(data007, toler007);
12329   test(data008, toler008);
12330   test(data009, toler009);
12331   test(data010, toler010);
12332   test(data011, toler011);
12333   test(data012, toler012);
12334   test(data013, toler013);
12335   test(data014, toler014);
12336   test(data015, toler015);
12337   test(data016, toler016);
12338   test(data017, toler017);
12339   test(data018, toler018);
12340   test(data019, toler019);
12341   test(data020, toler020);
12342   test(data021, toler021);
12343   test(data022, toler022);
12344   test(data023, toler023);
12345   test(data024, toler024);
12346   test(data025, toler025);
12347   test(data026, toler026);
12348   test(data027, toler027);
12349   test(data028, toler028);
12350   test(data029, toler029);
12351   test(data030, toler030);
12352   test(data031, toler031);
12353   test(data032, toler032);
12354   test(data033, toler033);
12355   test(data034, toler034);
12356   test(data035, toler035);
12357   test(data036, toler036);
12358   test(data037, toler037);
12359   test(data038, toler038);
12360   test(data039, toler039);
12361   test(data040, toler040);
12362   test(data041, toler041);
12363   test(data042, toler042);
12364   test(data043, toler043);
12365   test(data044, toler044);
12366   test(data045, toler045);
12367   test(data046, toler046);
12368   test(data047, toler047);
12369   test(data048, toler048);
12370   test(data049, toler049);
12371   test(data050, toler050);
12372   test(data051, toler051);
12373   test(data052, toler052);
12374   test(data053, toler053);
12375   test(data054, toler054);
12376   test(data055, toler055);
12377   test(data056, toler056);
12378   test(data057, toler057);
12379   test(data058, toler058);
12380   test(data059, toler059);
12381   test(data060, toler060);
12382   test(data061, toler061);
12383   test(data062, toler062);
12384   test(data063, toler063);
12385   test(data064, toler064);
12386   test(data065, toler065);
12387   test(data066, toler066);
12388   test(data067, toler067);
12389   test(data068, toler068);
12390   test(data069, toler069);
12391   test(data070, toler070);
12392   test(data071, toler071);
12393   test(data072, toler072);
12394   test(data073, toler073);
12395   test(data074, toler074);
12396   test(data075, toler075);
12397   test(data076, toler076);
12398   test(data077, toler077);
12399   test(data078, toler078);
12400   test(data079, toler079);
12401   test(data080, toler080);
12402   test(data081, toler081);
12403   test(data082, toler082);
12404   test(data083, toler083);
12405   test(data084, toler084);
12406   test(data085, toler085);
12407   test(data086, toler086);
12408   test(data087, toler087);
12409   test(data088, toler088);
12410   test(data089, toler089);
12411   test(data090, toler090);
12412   test(data091, toler091);
12413   test(data092, toler092);
12414   test(data093, toler093);
12415   test(data094, toler094);
12416   test(data095, toler095);
12417   test(data096, toler096);
12418   test(data097, toler097);
12419   test(data098, toler098);
12420   test(data099, toler099);
12421   test(data100, toler100);
12422   test(data101, toler101);
12423   test(data102, toler102);
12424   test(data103, toler103);
12425   test(data104, toler104);
12426   test(data105, toler105);
12427   test(data106, toler106);
12428   test(data107, toler107);
12429   test(data108, toler108);
12430   test(data109, toler109);
12431   test(data110, toler110);
12432   test(data111, toler111);
12433   test(data112, toler112);
12434   test(data113, toler113);
12435   test(data114, toler114);
12436   test(data115, toler115);
12437   test(data116, toler116);
12438   test(data117, toler117);
12439   test(data118, toler118);
12440   test(data119, toler119);
12441   test(data120, toler120);
12442   test(data121, toler121);
12443   test(data122, toler122);
12444   test(data123, toler123);
12445   test(data124, toler124);
12446   test(data125, toler125);
12447   test(data126, toler126);
12448   test(data127, toler127);
12449   test(data128, toler128);
12450   test(data129, toler129);
12451   test(data130, toler130);
12452   test(data131, toler131);
12453   test(data132, toler132);
12454   test(data133, toler133);
12455   test(data134, toler134);
12456   test(data135, toler135);
12457   test(data136, toler136);
12458   test(data137, toler137);
12459   test(data138, toler138);
12460   test(data139, toler139);
12461   test(data140, toler140);
12462   test(data141, toler141);
12463   test(data142, toler142);
12464   test(data143, toler143);
12465   test(data144, toler144);
12466   test(data145, toler145);
12467   test(data146, toler146);
12468   test(data147, toler147);
12469   test(data148, toler148);
12470   test(data149, toler149);
12471   test(data150, toler150);
12472   test(data151, toler151);
12473   test(data152, toler152);
12474   test(data153, toler153);
12475   test(data154, toler154);
12476   test(data155, toler155);
12477   test(data156, toler156);
12478   test(data157, toler157);
12479   test(data158, toler158);
12480   test(data159, toler159);
12481   test(data160, toler160);
12482   test(data161, toler161);
12483   test(data162, toler162);
12484   test(data163, toler163);
12485   test(data164, toler164);
12486   test(data165, toler165);
12487   test(data166, toler166);
12488   test(data167, toler167);
12489   test(data168, toler168);
12490   test(data169, toler169);
12491   test(data170, toler170);
12492   test(data171, toler171);
12493   test(data172, toler172);
12494   test(data173, toler173);
12495   test(data174, toler174);
12496   test(data175, toler175);
12497   test(data176, toler176);
12498   test(data177, toler177);
12499   test(data178, toler178);
12500   test(data179, toler179);
12501   test(data180, toler180);
12502   test(data181, toler181);
12503   test(data182, toler182);
12504   test(data183, toler183);
12505   test(data184, toler184);
12506   test(data185, toler185);
12507   test(data186, toler186);
12508   test(data187, toler187);
12509   test(data188, toler188);
12510   test(data189, toler189);
12511   test(data190, toler190);
12512   test(data191, toler191);
12513   test(data192, toler192);
12514   test(data193, toler193);
12515   test(data194, toler194);
12516   test(data195, toler195);
12517   test(data196, toler196);
12518   test(data197, toler197);
12519   test(data198, toler198);
12520   test(data199, toler199);
12521   test(data200, toler200);
12522   test(data201, toler201);
12523   test(data202, toler202);
12524   test(data203, toler203);
12525   test(data204, toler204);
12526   test(data205, toler205);
12527   test(data206, toler206);
12528   test(data207, toler207);
12529   test(data208, toler208);
12530   test(data209, toler209);
12531   test(data210, toler210);
12532   test(data211, toler211);
12533   test(data212, toler212);
12534   test(data213, toler213);
12535   test(data214, toler214);
12536   test(data215, toler215);
12537   test(data216, toler216);
12538   test(data217, toler217);
12539   test(data218, toler218);
12540   test(data219, toler219);
12541   test(data220, toler220);
12542   test(data221, toler221);
12543   test(data222, toler222);
12544   test(data223, toler223);
12545   test(data224, toler224);
12546   test(data225, toler225);
12547   test(data226, toler226);
12548   test(data227, toler227);
12549   test(data228, toler228);
12550   test(data229, toler229);
12551   test(data230, toler230);
12552   test(data231, toler231);
12553   test(data232, toler232);
12554   test(data233, toler233);
12555   test(data234, toler234);
12556   test(data235, toler235);
12557   test(data236, toler236);
12558   test(data237, toler237);
12559   test(data238, toler238);
12560   test(data239, toler239);
12561   test(data240, toler240);
12562   test(data241, toler241);
12563   test(data242, toler242);
12564   test(data243, toler243);
12565   test(data244, toler244);
12566   test(data245, toler245);
12567   return 0;
12568 }
12569