1 // { dg-options "-D__STDCPP_WANT_MATH_SPEC_FUNCS__" }
3 // Copyright (C) 2016 Free Software Foundation, Inc.
5 // This file is part of the GNU ISO C++ Library. This library is free
6 // software; you can redistribute it and/or modify it under the
7 // terms of the GNU General Public License as published by the
8 // Free Software Foundation; either version 3, or (at your option)
11 // This library is distributed in the hope that it will be useful,
12 // but WITHOUT ANY WARRANTY; without even the implied warranty of
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 // GNU General Public License for more details.
16 // You should have received a copy of the GNU General Public License along
17 // with this library; see the file COPYING3. If not see
18 // <http://www.gnu.org/licenses/>.
21 // Compare against values generated by the GNU Scientific Library.
22 // The GSL can be found on the web: http://www.gnu.org/software/gsl/
25 #if defined(__TEST_DEBUG)
30 std::cout << "line " << __LINE__ \
31 << " max_abs_frac = " << max_abs_frac \
35 # include <testsuite_hooks.h>
37 #include <specfun_testcase.h>
40 // Test data for k=-0.90000000000000002, nu=0.0000000000000000.
41 // max(|f - f_GSL|): 4.4408920985006262e-16
42 // max(|f - f_GSL| / |f_GSL|): 2.9686139313362077e-16
43 const testcase_ellint_3
<double>
46 { 0.0000000000000000, -0.90000000000000002, 0.0000000000000000,
48 { 0.17525427376115024, -0.90000000000000002, 0.0000000000000000,
49 0.17453292519943295 },
50 { 0.35492464591297446, -0.90000000000000002, 0.0000000000000000,
51 0.34906585039886590 },
52 { 0.54388221416157112, -0.90000000000000002, 0.0000000000000000,
53 0.52359877559829882 },
54 { 0.74797400423532490, -0.90000000000000002, 0.0000000000000000,
55 0.69813170079773179 },
56 { 0.97463898451966458, -0.90000000000000002, 0.0000000000000000,
57 0.87266462599716477 },
58 { 1.2334463254523440, -0.90000000000000002, 0.0000000000000000,
60 { 1.5355247765594913, -0.90000000000000002, 0.0000000000000000,
62 { 1.8882928567775121, -0.90000000000000002, 0.0000000000000000,
64 { 2.2805491384227703, -0.90000000000000002, 0.0000000000000000,
67 const double toler001
= 2.5000000000000020e-13;
69 // Test data for k=-0.90000000000000002, nu=0.10000000000000001.
70 // max(|f - f_GSL|): 4.4408920985006262e-16
71 // max(|f - f_GSL| / |f_GSL|): 3.0141810743801079e-16
72 const testcase_ellint_3
<double>
75 { 0.0000000000000000, -0.90000000000000002, 0.10000000000000001,
77 { 0.17507714233254656, -0.90000000000000002, 0.10000000000000001,
78 0.17453292519943295 },
79 { 0.35350932904326521, -0.90000000000000002, 0.10000000000000001,
80 0.34906585039886590 },
81 { 0.53911129989870976, -0.90000000000000002, 0.10000000000000001,
82 0.52359877559829882 },
83 { 0.73666644254508395, -0.90000000000000002, 0.10000000000000001,
84 0.69813170079773179 },
85 { 0.95250736612100195, -0.90000000000000002, 0.10000000000000001,
86 0.87266462599716477 },
87 { 1.1950199550905594, -0.90000000000000002, 0.10000000000000001,
89 { 1.4741687286340850, -0.90000000000000002, 0.10000000000000001,
91 { 1.7968678183506057, -0.90000000000000002, 0.10000000000000001,
93 { 2.1537868513875287, -0.90000000000000002, 0.10000000000000001,
96 const double toler002
= 2.5000000000000020e-13;
98 // Test data for k=-0.90000000000000002, nu=0.20000000000000001.
99 // max(|f - f_GSL|): 2.2204460492503131e-16
100 // max(|f - f_GSL| / |f_GSL|): 3.0588292817405780e-16
101 const testcase_ellint_3
<double>
104 { 0.0000000000000000, -0.90000000000000002, 0.20000000000000001,
105 0.0000000000000000 },
106 { 0.17490065089140927, -0.90000000000000002, 0.20000000000000001,
107 0.17453292519943295 },
108 { 0.35211377590661436, -0.90000000000000002, 0.20000000000000001,
109 0.34906585039886590 },
110 { 0.53448220334204100, -0.90000000000000002, 0.20000000000000001,
111 0.52359877559829882 },
112 { 0.72591368943179579, -0.90000000000000002, 0.20000000000000001,
113 0.69813170079773179 },
114 { 0.93192539780038763, -0.90000000000000002, 0.20000000000000001,
115 0.87266462599716477 },
116 { 1.1600809679692683, -0.90000000000000002, 0.20000000000000001,
117 1.0471975511965976 },
118 { 1.4195407225882510, -0.90000000000000002, 0.20000000000000001,
119 1.2217304763960306 },
120 { 1.7168966476424525, -0.90000000000000002, 0.20000000000000001,
121 1.3962634015954636 },
122 { 2.0443194576468890, -0.90000000000000002, 0.20000000000000001,
123 1.5707963267948966 },
125 const double toler003
= 2.5000000000000020e-13;
127 // Test data for k=-0.90000000000000002, nu=0.29999999999999999.
128 // max(|f - f_GSL|): 4.4408920985006262e-16
129 // max(|f - f_GSL| / |f_GSL|): 3.2403611223075570e-16
130 const testcase_ellint_3
<double>
133 { 0.0000000000000000, -0.90000000000000002, 0.29999999999999999,
134 0.0000000000000000 },
135 { 0.17472479532647531, -0.90000000000000002, 0.29999999999999999,
136 0.17453292519943295 },
137 { 0.35073750187374114, -0.90000000000000002, 0.29999999999999999,
138 0.34906585039886590 },
139 { 0.52998766129466957, -0.90000000000000002, 0.29999999999999999,
140 0.52359877559829882 },
141 { 0.71566993548699553, -0.90000000000000002, 0.29999999999999999,
142 0.69813170079773179 },
143 { 0.91271517762560195, -0.90000000000000002, 0.29999999999999999,
144 0.87266462599716477 },
145 { 1.1281241199843370, -0.90000000000000002, 0.29999999999999999,
146 1.0471975511965976 },
147 { 1.3704929576917451, -0.90000000000000002, 0.29999999999999999,
148 1.2217304763960306 },
149 { 1.6461981511487713, -0.90000000000000002, 0.29999999999999999,
150 1.3962634015954636 },
151 { 1.9486280260314426, -0.90000000000000002, 0.29999999999999999,
152 1.5707963267948966 },
154 const double toler004
= 2.5000000000000020e-13;
156 // Test data for k=-0.90000000000000002, nu=0.40000000000000002.
157 // max(|f - f_GSL|): 4.4408920985006262e-16
158 // max(|f - f_GSL| / |f_GSL|): 3.3487482375512111e-16
159 const testcase_ellint_3
<double>
162 { 0.0000000000000000, -0.90000000000000002, 0.40000000000000002,
163 0.0000000000000000 },
164 { 0.17454957156468837, -0.90000000000000002, 0.40000000000000002,
165 0.17453292519943295 },
166 { 0.34938003933330430, -0.90000000000000002, 0.40000000000000002,
167 0.34906585039886590 },
168 { 0.52562093533067433, -0.90000000000000002, 0.40000000000000002,
169 0.52359877559829882 },
170 { 0.70589461324915670, -0.90000000000000002, 0.40000000000000002,
171 0.69813170079773179 },
172 { 0.89472658511942849, -0.90000000000000002, 0.40000000000000002,
173 0.87266462599716477 },
174 { 1.0987419542323440, -0.90000000000000002, 0.40000000000000002,
175 1.0471975511965976 },
176 { 1.3261349565496303, -0.90000000000000002, 0.40000000000000002,
177 1.2217304763960306 },
178 { 1.5831293909853765, -0.90000000000000002, 0.40000000000000002,
179 1.3962634015954636 },
180 { 1.8641114227238349, -0.90000000000000002, 0.40000000000000002,
181 1.5707963267948966 },
183 const double toler005
= 2.5000000000000020e-13;
185 // Test data for k=-0.90000000000000002, nu=0.50000000000000000.
186 // max(|f - f_GSL|): 4.4408920985006262e-16
187 // max(|f - f_GSL| / |f_GSL|): 3.4538944656036724e-16
188 const testcase_ellint_3
<double>
191 { 0.0000000000000000, -0.90000000000000002, 0.50000000000000000,
192 0.0000000000000000 },
193 { 0.17437497557073334, -0.90000000000000002, 0.50000000000000000,
194 0.17453292519943295 },
195 { 0.34804093691586013, -0.90000000000000002, 0.50000000000000000,
196 0.34906585039886590 },
197 { 0.52137576320372891, -0.90000000000000002, 0.50000000000000000,
198 0.52359877559829882 },
199 { 0.69655163996912262, -0.90000000000000002, 0.50000000000000000,
200 0.69813170079773179 },
201 { 0.87783188683054236, -0.90000000000000002, 0.50000000000000000,
202 0.87266462599716477 },
203 { 1.0716015959755185, -0.90000000000000002, 0.50000000000000000,
204 1.0471975511965976 },
205 { 1.2857636916026749, -0.90000000000000002, 0.50000000000000000,
206 1.2217304763960306 },
207 { 1.5264263913252363, -0.90000000000000002, 0.50000000000000000,
208 1.3962634015954636 },
209 { 1.7888013241937861, -0.90000000000000002, 0.50000000000000000,
210 1.5707963267948966 },
212 const double toler006
= 2.5000000000000020e-13;
214 // Test data for k=-0.90000000000000002, nu=0.59999999999999998.
215 // max(|f - f_GSL|): 4.4408920985006262e-16
216 // max(|f - f_GSL| / |f_GSL|): 3.5560830683344639e-16
217 const testcase_ellint_3
<double>
220 { 0.0000000000000000, -0.90000000000000002, 0.59999999999999998,
221 0.0000000000000000 },
222 { 0.17420100334657812, -0.90000000000000002, 0.59999999999999998,
223 0.17453292519943295 },
224 { 0.34671975876122157, -0.90000000000000002, 0.59999999999999998,
225 0.34906585039886590 },
226 { 0.51724631570707946, -0.90000000000000002, 0.59999999999999998,
227 0.52359877559829882 },
228 { 0.68760879113743023, -0.90000000000000002, 0.59999999999999998,
229 0.69813170079773179 },
230 { 0.86192157779698364, -0.90000000000000002, 0.59999999999999998,
231 0.87266462599716477 },
232 { 1.0464279696166354, -0.90000000000000002, 0.59999999999999998,
233 1.0471975511965976 },
234 { 1.2488156247094007, -0.90000000000000002, 0.59999999999999998,
235 1.2217304763960306 },
236 { 1.4750988777188472, -0.90000000000000002, 0.59999999999999998,
237 1.3962634015954636 },
238 { 1.7211781128919523, -0.90000000000000002, 0.59999999999999998,
239 1.5707963267948966 },
241 const double toler007
= 2.5000000000000020e-13;
243 // Test data for k=-0.90000000000000002, nu=0.69999999999999996.
244 // max(|f - f_GSL|): 6.6613381477509392e-16
245 // max(|f - f_GSL| / |f_GSL|): 5.4833366769839281e-16
246 const testcase_ellint_3
<double>
249 { 0.0000000000000000, -0.90000000000000002, 0.69999999999999996,
250 0.0000000000000000 },
251 { 0.17402765093102207, -0.90000000000000002, 0.69999999999999996,
252 0.17453292519943295 },
253 { 0.34541608382635131, -0.90000000000000002, 0.69999999999999996,
254 0.34906585039886590 },
255 { 0.51322715827061682, -0.90000000000000002, 0.69999999999999996,
256 0.52359877559829882 },
257 { 0.67903717872440272, -0.90000000000000002, 0.69999999999999996,
258 0.69813170079773179 },
259 { 0.84690113601682671, -0.90000000000000002, 0.69999999999999996,
260 0.87266462599716477 },
261 { 1.0229914311548418, -0.90000000000000002, 0.69999999999999996,
262 1.0471975511965976 },
263 { 1.2148329639709381, -0.90000000000000002, 0.69999999999999996,
264 1.2217304763960306 },
265 { 1.4283586501307803, -0.90000000000000002, 0.69999999999999996,
266 1.3962634015954636 },
267 { 1.6600480747670940, -0.90000000000000002, 0.69999999999999996,
268 1.5707963267948966 },
270 const double toler008
= 2.5000000000000020e-13;
272 // Test data for k=-0.90000000000000002, nu=0.80000000000000004.
273 // max(|f - f_GSL|): 4.4408920985006262e-16
274 // max(|f - f_GSL| / |f_GSL|): 3.7525301941362493e-16
275 const testcase_ellint_3
<double>
278 { 0.0000000000000000, -0.90000000000000002, 0.80000000000000004,
279 0.0000000000000000 },
280 { 0.17385491439925146, -0.90000000000000002, 0.80000000000000004,
281 0.17453292519943295 },
282 { 0.34412950523113928, -0.90000000000000002, 0.80000000000000004,
283 0.34906585039886590 },
284 { 0.50931321668729590, -0.90000000000000002, 0.80000000000000004,
285 0.52359877559829882 },
286 { 0.67081081392296327, -0.90000000000000002, 0.80000000000000004,
287 0.69813170079773179 },
288 { 0.83268846097293259, -0.90000000000000002, 0.80000000000000004,
289 0.87266462599716477 },
290 { 1.0010985015814027, -0.90000000000000002, 0.80000000000000004,
291 1.0471975511965976 },
292 { 1.1834394045489680, -0.90000000000000002, 0.80000000000000004,
293 1.2217304763960306 },
294 { 1.3855695891683186, -0.90000000000000002, 0.80000000000000004,
295 1.3962634015954636 },
296 { 1.6044591960982202, -0.90000000000000002, 0.80000000000000004,
297 1.5707963267948966 },
299 const double toler009
= 2.5000000000000020e-13;
301 // Test data for k=-0.90000000000000002, nu=0.90000000000000002.
302 // max(|f - f_GSL|): 4.4408920985006262e-16
303 // max(|f - f_GSL| / |f_GSL|): 3.8471853989694167e-16
304 const testcase_ellint_3
<double>
307 { 0.0000000000000000, -0.90000000000000002, 0.90000000000000002,
308 0.0000000000000000 },
309 { 0.17368278986240135, -0.90000000000000002, 0.90000000000000002,
310 0.17453292519943295 },
311 { 0.34285962963961397, -0.90000000000000002, 0.90000000000000002,
312 0.34906585039886590 },
313 { 0.50549974644993312, -0.90000000000000002, 0.90000000000000002,
314 0.52359877559829882 },
315 { 0.66290623857720876, -0.90000000000000002, 0.90000000000000002,
316 0.69813170079773179 },
317 { 0.81921183128847175, -0.90000000000000002, 0.90000000000000002,
318 0.87266462599716477 },
319 { 0.98058481956066390, -0.90000000000000002, 0.90000000000000002,
320 1.0471975511965976 },
321 { 1.1543223520473569, -0.90000000000000002, 0.90000000000000002,
322 1.2217304763960306 },
323 { 1.3462119782292938, -0.90000000000000002, 0.90000000000000002,
324 1.3962634015954636 },
325 { 1.5536420236310946, -0.90000000000000002, 0.90000000000000002,
326 1.5707963267948966 },
328 const double toler010
= 2.5000000000000020e-13;
330 // Test data for k=-0.80000000000000004, nu=0.0000000000000000.
331 // max(|f - f_GSL|): 4.4408920985006262e-16
332 // max(|f - f_GSL| / |f_GSL|): 4.1175183168766718e-16
333 const testcase_ellint_3
<double>
336 { 0.0000000000000000, -0.80000000000000004, 0.0000000000000000,
337 0.0000000000000000 },
338 { 0.17510154241338899, -0.80000000000000004, 0.0000000000000000,
339 0.17453292519943295 },
340 { 0.35365068839779390, -0.80000000000000004, 0.0000000000000000,
341 0.34906585039886590 },
342 { 0.53926804409084550, -0.80000000000000004, 0.0000000000000000,
343 0.52359877559829882 },
344 { 0.73587926028070361, -0.80000000000000004, 0.0000000000000000,
345 0.69813170079773179 },
346 { 0.94770942970071170, -0.80000000000000004, 0.0000000000000000,
347 0.87266462599716477 },
348 { 1.1789022995388236, -0.80000000000000004, 0.0000000000000000,
349 1.0471975511965976 },
350 { 1.4323027881876009, -0.80000000000000004, 0.0000000000000000,
351 1.2217304763960306 },
352 { 1.7069629739121674, -0.80000000000000004, 0.0000000000000000,
353 1.3962634015954636 },
354 { 1.9953027776647296, -0.80000000000000004, 0.0000000000000000,
355 1.5707963267948966 },
357 const double toler011
= 2.5000000000000020e-13;
359 // Test data for k=-0.80000000000000004, nu=0.10000000000000001.
360 // max(|f - f_GSL|): 4.4408920985006262e-16
361 // max(|f - f_GSL| / |f_GSL|): 4.1537164503193145e-16
362 const testcase_ellint_3
<double>
365 { 0.0000000000000000, -0.80000000000000004, 0.10000000000000001,
366 0.0000000000000000 },
367 { 0.17492468824017163, -0.80000000000000004, 0.10000000000000001,
368 0.17453292519943295 },
369 { 0.35224443521476911, -0.80000000000000004, 0.10000000000000001,
370 0.34906585039886590 },
371 { 0.53456851853226950, -0.80000000000000004, 0.10000000000000001,
372 0.52359877559829882 },
373 { 0.72488875602364922, -0.80000000000000004, 0.10000000000000001,
374 0.69813170079773179 },
375 { 0.92661354274638952, -0.80000000000000004, 0.10000000000000001,
376 0.87266462599716477 },
377 { 1.1432651144499075, -0.80000000000000004, 0.10000000000000001,
378 1.0471975511965976 },
379 { 1.3774479927211429, -0.80000000000000004, 0.10000000000000001,
380 1.2217304763960306 },
381 { 1.6287092337196041, -0.80000000000000004, 0.10000000000000001,
382 1.3962634015954636 },
383 { 1.8910755418379521, -0.80000000000000004, 0.10000000000000001,
384 1.5707963267948966 },
386 const double toler012
= 2.5000000000000020e-13;
388 // Test data for k=-0.80000000000000004, nu=0.20000000000000001.
389 // max(|f - f_GSL|): 4.4408920985006262e-16
390 // max(|f - f_GSL| / |f_GSL|): 4.1894552974436829e-16
391 const testcase_ellint_3
<double>
394 { 0.0000000000000000, -0.80000000000000004, 0.20000000000000001,
395 0.0000000000000000 },
396 { 0.17474847286224940, -0.80000000000000004, 0.20000000000000001,
397 0.17453292519943295 },
398 { 0.35085779529084682, -0.80000000000000004, 0.20000000000000001,
399 0.34906585039886590 },
400 { 0.53000829263059146, -0.80000000000000004, 0.20000000000000001,
401 0.52359877559829882 },
402 { 0.71443466027453384, -0.80000000000000004, 0.20000000000000001,
403 0.69813170079773179 },
404 { 0.90698196872715420, -0.80000000000000004, 0.20000000000000001,
405 0.87266462599716477 },
406 { 1.1108198200558579, -0.80000000000000004, 0.20000000000000001,
407 1.0471975511965976 },
408 { 1.3284988909963957, -0.80000000000000004, 0.20000000000000001,
409 1.2217304763960306 },
410 { 1.5600369318140328, -0.80000000000000004, 0.20000000000000001,
411 1.3962634015954636 },
412 { 1.8007226661734588, -0.80000000000000004, 0.20000000000000001,
413 1.5707963267948966 },
415 const double toler013
= 2.5000000000000020e-13;
417 // Test data for k=-0.80000000000000004, nu=0.29999999999999999.
418 // max(|f - f_GSL|): 4.4408920985006262e-16
419 // max(|f - f_GSL| / |f_GSL|): 4.2247517409029886e-16
420 const testcase_ellint_3
<double>
423 { 0.0000000000000000, -0.80000000000000004, 0.29999999999999999,
424 0.0000000000000000 },
425 { 0.17457289217669889, -0.80000000000000004, 0.29999999999999999,
426 0.17453292519943295 },
427 { 0.34949028801501258, -0.80000000000000004, 0.29999999999999999,
428 0.34906585039886590 },
429 { 0.52558024362769307, -0.80000000000000004, 0.29999999999999999,
430 0.52359877559829882 },
431 { 0.70447281740094891, -0.80000000000000004, 0.29999999999999999,
432 0.69813170079773179 },
433 { 0.88864745641528986, -0.80000000000000004, 0.29999999999999999,
434 0.87266462599716477 },
435 { 1.0811075819341462, -0.80000000000000004, 0.29999999999999999,
436 1.0471975511965976 },
437 { 1.2844589654082377, -0.80000000000000004, 0.29999999999999999,
438 1.2217304763960306 },
439 { 1.4991461361277847, -0.80000000000000004, 0.29999999999999999,
440 1.3962634015954636 },
441 { 1.7214611048717301, -0.80000000000000004, 0.29999999999999999,
442 1.5707963267948966 },
444 const double toler014
= 2.5000000000000020e-13;
446 // Test data for k=-0.80000000000000004, nu=0.40000000000000002.
447 // max(|f - f_GSL|): 4.4408920985006262e-16
448 // max(|f - f_GSL| / |f_GSL|): 4.2596216594752862e-16
449 const testcase_ellint_3
<double>
452 { 0.0000000000000000, -0.80000000000000004, 0.40000000000000002,
453 0.0000000000000000 },
454 { 0.17439794211872175, -0.80000000000000004, 0.40000000000000002,
455 0.17453292519943295 },
456 { 0.34814144964568972, -0.80000000000000004, 0.40000000000000002,
457 0.34906585039886590 },
458 { 0.52127776285273064, -0.80000000000000004, 0.40000000000000002,
459 0.52359877559829882 },
460 { 0.69496411438966588, -0.80000000000000004, 0.40000000000000002,
461 0.69813170079773179 },
462 { 0.87146878427509589, -0.80000000000000004, 0.40000000000000002,
463 0.87266462599716477 },
464 { 1.0537579024937762, -0.80000000000000004, 0.40000000000000002,
465 1.0471975511965976 },
466 { 1.2445534387922637, -0.80000000000000004, 0.40000000000000002,
467 1.2217304763960306 },
468 { 1.4446769766361993, -0.80000000000000004, 0.40000000000000002,
469 1.3962634015954636 },
470 { 1.6512267838651289, -0.80000000000000004, 0.40000000000000002,
471 1.5707963267948966 },
473 const double toler015
= 2.5000000000000020e-13;
475 // Test data for k=-0.80000000000000004, nu=0.50000000000000000.
476 // max(|f - f_GSL|): 4.4408920985006262e-16
477 // max(|f - f_GSL| / |f_GSL|): 4.2940800093915668e-16
478 const testcase_ellint_3
<double>
481 { 0.0000000000000000, -0.80000000000000004, 0.50000000000000000,
482 0.0000000000000000 },
483 { 0.17422361866118044, -0.80000000000000004, 0.50000000000000000,
484 0.17453292519943295 },
485 { 0.34681083254170475, -0.80000000000000004, 0.50000000000000000,
486 0.34906585039886590 },
487 { 0.51709470815494440, -0.80000000000000004, 0.50000000000000000,
488 0.52359877559829882 },
489 { 0.68587375344080237, -0.80000000000000004, 0.50000000000000000,
490 0.69813170079773179 },
491 { 0.85532571852810624, -0.80000000000000004, 0.50000000000000000,
492 0.87266462599716477 },
493 { 1.0284677391874903, -0.80000000000000004, 0.50000000000000000,
494 1.0471975511965976 },
495 { 1.2081693942686225, -0.80000000000000004, 0.50000000000000000,
496 1.2217304763960306 },
497 { 1.3955803006426311, -0.80000000000000004, 0.50000000000000000,
498 1.3962634015954636 },
499 { 1.5884528947755532, -0.80000000000000004, 0.50000000000000000,
500 1.5707963267948966 },
502 const double toler016
= 2.5000000000000020e-13;
504 // Test data for k=-0.80000000000000004, nu=0.59999999999999998.
505 // max(|f - f_GSL|): 4.4408920985006262e-16
506 // max(|f - f_GSL| / |f_GSL|): 4.3281408974056389e-16
507 const testcase_ellint_3
<double>
510 { 0.0000000000000000, -0.80000000000000004, 0.59999999999999998,
511 0.0000000000000000 },
512 { 0.17404991781414089, -0.80000000000000004, 0.59999999999999998,
513 0.17453292519943295 },
514 { 0.34549800443625167, -0.80000000000000004, 0.59999999999999998,
515 0.34906585039886590 },
516 { 0.51302536167001545, -0.80000000000000004, 0.59999999999999998,
517 0.52359877559829882 },
518 { 0.67717065003912236, -0.80000000000000004, 0.59999999999999998,
519 0.69813170079773179 },
520 { 0.84011512421134416, -0.80000000000000004, 0.59999999999999998,
521 0.87266462599716477 },
522 { 1.0049863847088740, -0.80000000000000004, 0.59999999999999998,
523 1.0471975511965976 },
524 { 1.1748145941898920, -0.80000000000000004, 0.59999999999999998,
525 1.2217304763960306 },
526 { 1.3510319699755071, -0.80000000000000004, 0.59999999999999998,
527 1.3962634015954636 },
528 { 1.5319262547427865, -0.80000000000000004, 0.59999999999999998,
529 1.5707963267948966 },
531 const double toler017
= 2.5000000000000020e-13;
533 // Test data for k=-0.80000000000000004, nu=0.69999999999999996.
534 // max(|f - f_GSL|): 2.2204460492503131e-16
535 // max(|f - f_GSL| / |f_GSL|): 4.3618176466061808e-16
536 const testcase_ellint_3
<double>
539 { 0.0000000000000000, -0.80000000000000004, 0.69999999999999996,
540 0.0000000000000000 },
541 { 0.17387683562442199, -0.80000000000000004, 0.69999999999999996,
542 0.17453292519943295 },
543 { 0.34420254775101611, -0.80000000000000004, 0.69999999999999996,
544 0.34906585039886590 },
545 { 0.50906439222143673, -0.80000000000000004, 0.69999999999999996,
546 0.52359877559829882 },
547 { 0.66882693152688422, -0.80000000000000004, 0.69999999999999996,
548 0.69813170079773179 },
549 { 0.82574792844091316, -0.80000000000000004, 0.69999999999999996,
550 0.87266462599716477 },
551 { 0.98310431309490931, -0.80000000000000004, 0.69999999999999996,
552 1.0471975511965976 },
553 { 1.1440884535113258, -0.80000000000000004, 0.69999999999999996,
554 1.2217304763960306 },
555 { 1.3103743938952537, -0.80000000000000004, 0.69999999999999996,
556 1.3962634015954636 },
557 { 1.4806912324625332, -0.80000000000000004, 0.69999999999999996,
558 1.5707963267948966 },
560 const double toler018
= 2.5000000000000020e-13;
562 // Test data for k=-0.80000000000000004, nu=0.80000000000000004.
563 // max(|f - f_GSL|): 4.4408920985006262e-16
564 // max(|f - f_GSL| / |f_GSL|): 4.3951228558314112e-16
565 const testcase_ellint_3
<double>
568 { 0.0000000000000000, -0.80000000000000004, 0.80000000000000004,
569 0.0000000000000000 },
570 { 0.17370436817515203, -0.80000000000000004, 0.80000000000000004,
571 0.17453292519943295 },
572 { 0.34292405894783395, -0.80000000000000004, 0.80000000000000004,
573 0.34906585039886590 },
574 { 0.50520682176250076, -0.80000000000000004, 0.80000000000000004,
575 0.52359877559829882 },
576 { 0.66081751679736178, -0.80000000000000004, 0.80000000000000004,
577 0.69813170079773179 },
578 { 0.81214672249355102, -0.80000000000000004, 0.80000000000000004,
579 0.87266462599716477 },
580 { 0.96264481387685552, -0.80000000000000004, 0.80000000000000004,
581 1.0471975511965976 },
582 { 1.1156611352656258, -0.80000000000000004, 0.80000000000000004,
583 1.2217304763960306 },
584 { 1.2730756225143889, -0.80000000000000004, 0.80000000000000004,
585 1.3962634015954636 },
586 { 1.4339837018309471, -0.80000000000000004, 0.80000000000000004,
587 1.5707963267948966 },
589 const double toler019
= 2.5000000000000020e-13;
591 // Test data for k=-0.80000000000000004, nu=0.90000000000000002.
592 // max(|f - f_GSL|): 3.3306690738754696e-16
593 // max(|f - f_GSL| / |f_GSL|): 4.4280684534289690e-16
594 const testcase_ellint_3
<double>
597 { 0.0000000000000000, -0.80000000000000004, 0.90000000000000002,
598 0.0000000000000000 },
599 { 0.17353251158533151, -0.80000000000000004, 0.90000000000000002,
600 0.17453292519943295 },
601 { 0.34166214791545768, -0.80000000000000004, 0.90000000000000002,
602 0.34906585039886590 },
603 { 0.50144799535130569, -0.80000000000000004, 0.90000000000000002,
604 0.52359877559829882 },
605 { 0.65311976193814425, -0.80000000000000004, 0.90000000000000002,
606 0.69813170079773179 },
607 { 0.79924384892320866, -0.80000000000000004, 0.90000000000000002,
608 0.87266462599716477 },
609 { 0.94345762353365603, -0.80000000000000004, 0.90000000000000002,
610 1.0471975511965976 },
611 { 1.0892582069219161, -0.80000000000000004, 0.90000000000000002,
612 1.2217304763960306 },
613 { 1.2387000876610268, -0.80000000000000004, 0.90000000000000002,
614 1.3962634015954636 },
615 { 1.3911845406776222, -0.80000000000000004, 0.90000000000000002,
616 1.5707963267948966 },
618 const double toler020
= 2.5000000000000020e-13;
620 // Test data for k=-0.69999999999999996, nu=0.0000000000000000.
621 // max(|f - f_GSL|): 3.3306690738754696e-16
622 // max(|f - f_GSL| / |f_GSL|): 3.5930208052157665e-16
623 const testcase_ellint_3
<double>
626 { 0.0000000000000000, -0.69999999999999996, 0.0000000000000000,
627 0.0000000000000000 },
628 { 0.17496737466916723, -0.69999999999999996, 0.0000000000000000,
629 0.17453292519943295 },
630 { 0.35254687535677925, -0.69999999999999996, 0.0000000000000000,
631 0.34906585039886590 },
632 { 0.53536740275997119, -0.69999999999999996, 0.0000000000000000,
633 0.52359877559829882 },
634 { 0.72603797651684454, -0.69999999999999996, 0.0000000000000000,
635 0.69813170079773179 },
636 { 0.92698296348313458, -0.69999999999999996, 0.0000000000000000,
637 0.87266462599716477 },
638 { 1.1400447527693316, -0.69999999999999996, 0.0000000000000000,
639 1.0471975511965976 },
640 { 1.3657668117194073, -0.69999999999999996, 0.0000000000000000,
641 1.2217304763960306 },
642 { 1.6024686895959159, -0.69999999999999996, 0.0000000000000000,
643 1.3962634015954636 },
644 { 1.8456939983747236, -0.69999999999999996, 0.0000000000000000,
645 1.5707963267948966 },
647 const double toler021
= 2.5000000000000020e-13;
649 // Test data for k=-0.69999999999999996, nu=0.10000000000000001.
650 // max(|f - f_GSL|): 3.3306690738754696e-16
651 // max(|f - f_GSL| / |f_GSL|): 3.6735282577377367e-16
652 const testcase_ellint_3
<double>
655 { 0.0000000000000000, -0.69999999999999996, 0.10000000000000001,
656 0.0000000000000000 },
657 { 0.17479076384884684, -0.69999999999999996, 0.10000000000000001,
658 0.17453292519943295 },
659 { 0.35114844900396364, -0.69999999999999996, 0.10000000000000001,
660 0.34906585039886590 },
661 { 0.53072776947527001, -0.69999999999999996, 0.10000000000000001,
662 0.52359877559829882 },
663 { 0.71530198262386235, -0.69999999999999996, 0.10000000000000001,
664 0.69813170079773179 },
665 { 0.90666760677828306, -0.69999999999999996, 0.10000000000000001,
666 0.87266462599716477 },
667 { 1.1063366517438080, -0.69999999999999996, 0.10000000000000001,
668 1.0471975511965976 },
669 { 1.3149477243092149, -0.69999999999999996, 0.10000000000000001,
670 1.2217304763960306 },
671 { 1.5314886725038925, -0.69999999999999996, 0.10000000000000001,
672 1.3962634015954636 },
673 { 1.7528050171757608, -0.69999999999999996, 0.10000000000000001,
674 1.5707963267948966 },
676 const double toler022
= 2.5000000000000020e-13;
678 // Test data for k=-0.69999999999999996, nu=0.20000000000000001.
679 // max(|f - f_GSL|): 3.3306690738754696e-16
680 // max(|f - f_GSL| / |f_GSL|): 3.7517969287516802e-16
681 const testcase_ellint_3
<double>
684 { 0.0000000000000000, -0.69999999999999996, 0.20000000000000001,
685 0.0000000000000000 },
686 { 0.17461479077791475, -0.69999999999999996, 0.20000000000000001,
687 0.17453292519943295 },
688 { 0.34976950621407538, -0.69999999999999996, 0.20000000000000001,
689 0.34906585039886590 },
690 { 0.52622533231350177, -0.69999999999999996, 0.20000000000000001,
691 0.52359877559829882 },
692 { 0.70508774017895215, -0.69999999999999996, 0.20000000000000001,
693 0.69813170079773179 },
694 { 0.88775302531730294, -0.69999999999999996, 0.20000000000000001,
695 0.87266462599716477 },
696 { 1.0756195476149006, -0.69999999999999996, 0.20000000000000001,
697 1.0471975511965976 },
698 { 1.2695349716654374, -0.69999999999999996, 0.20000000000000001,
699 1.2217304763960306 },
700 { 1.4690814617070540, -0.69999999999999996, 0.20000000000000001,
701 1.3962634015954636 },
702 { 1.6721098780092145, -0.69999999999999996, 0.20000000000000001,
703 1.5707963267948966 },
705 const double toler023
= 2.5000000000000020e-13;
707 // Test data for k=-0.69999999999999996, nu=0.29999999999999999.
708 // max(|f - f_GSL|): 4.4408920985006262e-16
709 // max(|f - f_GSL| / |f_GSL|): 3.8280039841080712e-16
710 const testcase_ellint_3
<double>
713 { 0.0000000000000000, -0.69999999999999996, 0.29999999999999999,
714 0.0000000000000000 },
715 { 0.17443945136076175, -0.69999999999999996, 0.29999999999999999,
716 0.17453292519943295 },
717 { 0.34840956983535287, -0.69999999999999996, 0.29999999999999999,
718 0.34906585039886590 },
719 { 0.52185308551329168, -0.69999999999999996, 0.29999999999999999,
720 0.52359877559829882 },
721 { 0.69535240431168255, -0.69999999999999996, 0.29999999999999999,
722 0.69813170079773179 },
723 { 0.87007983473964923, -0.69999999999999996, 0.29999999999999999,
724 0.87266462599716477 },
725 { 1.0474657975577066, -0.69999999999999996, 0.29999999999999999,
726 1.0471975511965976 },
727 { 1.2286225419931891, -0.69999999999999996, 0.29999999999999999,
728 1.2217304763960306 },
729 { 1.4136490671013271, -0.69999999999999996, 0.29999999999999999,
730 1.3962634015954636 },
731 { 1.6011813647733213, -0.69999999999999996, 0.29999999999999999,
732 1.5707963267948966 },
734 const double toler024
= 2.5000000000000020e-13;
736 // Test data for k=-0.69999999999999996, nu=0.40000000000000002.
737 // max(|f - f_GSL|): 4.4408920985006262e-16
738 // max(|f - f_GSL| / |f_GSL|): 4.3472957053482092e-16
739 const testcase_ellint_3
<double>
742 { 0.0000000000000000, -0.69999999999999996, 0.40000000000000002,
743 0.0000000000000000 },
744 { 0.17426474153983229, -0.69999999999999996, 0.40000000000000002,
745 0.17453292519943295 },
746 { 0.34706817945773732, -0.69999999999999996, 0.40000000000000002,
747 0.34906585039886590 },
748 { 0.51760452851738148, -0.69999999999999996, 0.40000000000000002,
749 0.52359877559829882 },
750 { 0.68605801534722755, -0.69999999999999996, 0.40000000000000002,
751 0.69813170079773179 },
752 { 0.85351339387296532, -0.69999999999999996, 0.40000000000000002,
753 0.87266462599716477 },
754 { 1.0215297967969539, -0.69999999999999996, 0.40000000000000002,
755 1.0471975511965976 },
756 { 1.1915051074460530, -0.69999999999999996, 0.40000000000000002,
757 1.2217304763960306 },
758 { 1.3639821911744707, -0.69999999999999996, 0.40000000000000002,
759 1.3962634015954636 },
760 { 1.5382162002954762, -0.69999999999999996, 0.40000000000000002,
761 1.5707963267948966 },
763 const double toler025
= 2.5000000000000020e-13;
765 // Test data for k=-0.69999999999999996, nu=0.50000000000000000.
766 // max(|f - f_GSL|): 3.3306690738754696e-16
767 // max(|f - f_GSL| / |f_GSL|): 3.9748346743390620e-16
768 const testcase_ellint_3
<double>
771 { 0.0000000000000000, -0.69999999999999996, 0.50000000000000000,
772 0.0000000000000000 },
773 { 0.17409065729516096, -0.69999999999999996, 0.50000000000000000,
774 0.17453292519943295 },
775 { 0.34574489064986091, -0.69999999999999996, 0.50000000000000000,
776 0.34906585039886590 },
777 { 0.51347361925579782, -0.69999999999999996, 0.50000000000000000,
778 0.52359877559829882 },
779 { 0.67717079489579279, -0.69999999999999996, 0.50000000000000000,
780 0.69813170079773179 },
781 { 0.83793902055292280, -0.69999999999999996, 0.50000000000000000,
782 0.87266462599716477 },
783 { 0.99752863545289705, -0.69999999999999996, 0.50000000000000000,
784 1.0471975511965976 },
785 { 1.1576240080401501, -0.69999999999999996, 0.50000000000000000,
786 1.2217304763960306 },
787 { 1.3191464023923762, -0.69999999999999996, 0.50000000000000000,
788 1.3962634015954636 },
789 { 1.4818433192178544, -0.69999999999999996, 0.50000000000000000,
790 1.5707963267948966 },
792 const double toler026
= 2.5000000000000020e-13;
794 // Test data for k=-0.69999999999999996, nu=0.59999999999999998.
795 // max(|f - f_GSL|): 3.3306690738754696e-16
796 // max(|f - f_GSL| / |f_GSL|): 4.0457157538295173e-16
797 const testcase_ellint_3
<double>
800 { 0.0000000000000000, -0.69999999999999996, 0.59999999999999998,
801 0.0000000000000000 },
802 { 0.17391719464391614, -0.69999999999999996, 0.59999999999999998,
803 0.17453292519943295 },
804 { 0.34443927423869031, -0.69999999999999996, 0.59999999999999998,
805 0.34906585039886590 },
806 { 0.50945473266486063, -0.69999999999999996, 0.59999999999999998,
807 0.52359877559829882 },
808 { 0.66866056326513812, -0.69999999999999996, 0.59999999999999998,
809 0.69813170079773179 },
810 { 0.82325830002337352, -0.69999999999999996, 0.59999999999999998,
811 0.87266462599716477 },
812 { 0.97522808245669368, -0.69999999999999996, 0.59999999999999998,
813 1.0471975511965976 },
814 { 1.1265300613705285, -0.69999999999999996, 0.59999999999999998,
815 1.2217304763960306 },
816 { 1.2784066076152001, -0.69999999999999996, 0.59999999999999998,
817 1.3962634015954636 },
818 { 1.4309994736080540, -0.69999999999999996, 0.59999999999999998,
819 1.5707963267948966 },
821 const double toler027
= 2.5000000000000020e-13;
823 // Test data for k=-0.69999999999999996, nu=0.69999999999999996.
824 // max(|f - f_GSL|): 4.4408920985006262e-16
825 // max(|f - f_GSL| / |f_GSL|): 5.4867405596732161e-16
826 const testcase_ellint_3
<double>
829 { 0.0000000000000000, -0.69999999999999996, 0.69999999999999996,
830 0.0000000000000000 },
831 { 0.17374434963995031, -0.69999999999999996, 0.69999999999999996,
832 0.17453292519943295 },
833 { 0.34315091562900674, -0.69999999999999996, 0.69999999999999996,
834 0.34906585039886590 },
835 { 0.50554262375653347, -0.69999999999999996, 0.69999999999999996,
836 0.52359877559829882 },
837 { 0.66050025406305801, -0.69999999999999996, 0.69999999999999996,
838 0.69813170079773179 },
839 { 0.80938620118847404, -0.69999999999999996, 0.69999999999999996,
840 0.87266462599716477 },
841 { 0.95443223855852144, -0.69999999999999996, 0.69999999999999996,
842 1.0471975511965976 },
843 { 1.0978573207128304, -0.69999999999999996, 0.69999999999999996,
844 1.2217304763960306 },
845 { 1.2411754575007123, -0.69999999999999996, 0.69999999999999996,
846 1.3962634015954636 },
847 { 1.3848459188329196, -0.69999999999999996, 0.69999999999999996,
848 1.5707963267948966 },
850 const double toler028
= 2.5000000000000020e-13;
852 // Test data for k=-0.69999999999999996, nu=0.80000000000000004.
853 // max(|f - f_GSL|): 4.4408920985006262e-16
854 // max(|f - f_GSL| / |f_GSL|): 4.1829502028913879e-16
855 const testcase_ellint_3
<double>
858 { 0.0000000000000000, -0.69999999999999996, 0.80000000000000004,
859 0.0000000000000000 },
860 { 0.17357211837335740, -0.69999999999999996, 0.80000000000000004,
861 0.17453292519943295 },
862 { 0.34187941416012108, -0.69999999999999996, 0.80000000000000004,
863 0.34906585039886590 },
864 { 0.50173239465478259, -0.69999999999999996, 0.80000000000000004,
865 0.52359877559829882 },
866 { 0.65266550725988315, -0.69999999999999996, 0.80000000000000004,
867 0.69813170079773179 },
868 { 0.79624879865249298, -0.69999999999999996, 0.80000000000000004,
869 0.87266462599716477 },
870 { 0.93497577043296920, -0.69999999999999996, 0.80000000000000004,
871 1.0471975511965976 },
872 { 1.0713041566930750, -0.69999999999999996, 0.80000000000000004,
873 1.2217304763960306 },
874 { 1.2069772023255654, -0.69999999999999996, 0.80000000000000004,
875 1.3962634015954636 },
876 { 1.3427110650397531, -0.69999999999999996, 0.80000000000000004,
877 1.5707963267948966 },
879 const double toler029
= 2.5000000000000020e-13;
881 // Test data for k=-0.69999999999999996, nu=0.90000000000000002.
882 // max(|f - f_GSL|): 3.3306690738754696e-16
883 // max(|f - f_GSL| / |f_GSL|): 4.2494869624129105e-16
884 const testcase_ellint_3
<double>
887 { 0.0000000000000000, -0.69999999999999996, 0.90000000000000002,
888 0.0000000000000000 },
889 { 0.17340049697003637, -0.69999999999999996, 0.90000000000000002,
890 0.17453292519943295 },
891 { 0.34062438249741556, -0.69999999999999996, 0.90000000000000002,
892 0.34906585039886590 },
893 { 0.49801946510076867, -0.69999999999999996, 0.90000000000000002,
894 0.52359877559829882 },
895 { 0.64513432604750476, -0.69999999999999996, 0.90000000000000002,
896 0.69813170079773179 },
897 { 0.78378145487573758, -0.69999999999999996, 0.90000000000000002,
898 0.87266462599716477 },
899 { 0.91671799500854623, -0.69999999999999996, 0.90000000000000002,
900 1.0471975511965976 },
901 { 1.0466193579463123, -0.69999999999999996, 0.90000000000000002,
902 1.2217304763960306 },
903 { 1.1754218079199146, -0.69999999999999996, 0.90000000000000002,
904 1.3962634015954636 },
905 { 1.3040500499695913, -0.69999999999999996, 0.90000000000000002,
906 1.5707963267948966 },
908 const double toler030
= 2.5000000000000020e-13;
910 // Test data for k=-0.59999999999999998, nu=0.0000000000000000.
911 // max(|f - f_GSL|): 4.4408920985006262e-16
912 // max(|f - f_GSL| / |f_GSL|): 2.8964816695821429e-16
913 const testcase_ellint_3
<double>
916 { 0.0000000000000000, -0.59999999999999998, 0.0000000000000000,
917 0.0000000000000000 },
918 { 0.17485154362988359, -0.59999999999999998, 0.0000000000000000,
919 0.17453292519943295 },
920 { 0.35160509865544326, -0.59999999999999998, 0.0000000000000000,
921 0.34906585039886590 },
922 { 0.53210652578446138, -0.59999999999999998, 0.0000000000000000,
923 0.52359877559829882 },
924 { 0.71805304664485659, -0.59999999999999998, 0.0000000000000000,
925 0.69813170079773179 },
926 { 0.91082759030195970, -0.59999999999999998, 0.0000000000000000,
927 0.87266462599716477 },
928 { 1.1112333229323361, -0.59999999999999998, 0.0000000000000000,
929 1.0471975511965976 },
930 { 1.3191461190365270, -0.59999999999999998, 0.0000000000000000,
931 1.2217304763960306 },
932 { 1.5332022105084773, -0.59999999999999998, 0.0000000000000000,
933 1.3962634015954636 },
934 { 1.7507538029157526, -0.59999999999999998, 0.0000000000000000,
935 1.5707963267948966 },
937 const double toler031
= 2.5000000000000020e-13;
939 // Test data for k=-0.59999999999999998, nu=0.10000000000000001.
940 // max(|f - f_GSL|): 4.4408920985006262e-16
941 // max(|f - f_GSL| / |f_GSL|): 2.6674242225057385e-16
942 const testcase_ellint_3
<double>
945 { 0.0000000000000000, -0.59999999999999998, 0.10000000000000001,
946 0.0000000000000000 },
947 { 0.17467514275022011, -0.59999999999999998, 0.10000000000000001,
948 0.17453292519943295 },
949 { 0.35021333086258255, -0.59999999999999998, 0.10000000000000001,
950 0.34906585039886590 },
951 { 0.52751664092962691, -0.59999999999999998, 0.10000000000000001,
952 0.52359877559829882 },
953 { 0.70752126971957874, -0.59999999999999998, 0.10000000000000001,
954 0.69813170079773179 },
955 { 0.89111058756112871, -0.59999999999999998, 0.10000000000000001,
956 0.87266462599716477 },
957 { 1.0789241202877768, -0.59999999999999998, 0.10000000000000001,
958 1.0471975511965976 },
959 { 1.2710800210399946, -0.59999999999999998, 0.10000000000000001,
960 1.2217304763960306 },
961 { 1.4669060574440276, -0.59999999999999998, 0.10000000000000001,
962 1.3962634015954636 },
963 { 1.6648615773343014, -0.59999999999999998, 0.10000000000000001,
964 1.5707963267948966 },
966 const double toler032
= 2.5000000000000020e-13;
968 // Test data for k=-0.59999999999999998, nu=0.20000000000000001.
969 // max(|f - f_GSL|): 6.6613381477509392e-16
970 // max(|f - f_GSL| / |f_GSL|): 4.1891472451898755e-16
971 const testcase_ellint_3
<double>
974 { 0.0000000000000000, -0.59999999999999998, 0.20000000000000001,
975 0.0000000000000000 },
976 { 0.17449937871800650, -0.59999999999999998, 0.20000000000000001,
977 0.17453292519943295 },
978 { 0.34884093647346553, -0.59999999999999998, 0.20000000000000001,
979 0.34906585039886590 },
980 { 0.52306221119844087, -0.59999999999999998, 0.20000000000000001,
981 0.52359877559829882 },
982 { 0.69749955678982223, -0.59999999999999998, 0.20000000000000001,
983 0.69813170079773179 },
984 { 0.87274610682416853, -0.59999999999999998, 0.20000000000000001,
985 0.87266462599716477 },
986 { 1.0494620540750792, -0.59999999999999998, 0.20000000000000001,
987 1.0471975511965976 },
988 { 1.2280847305507339, -0.59999999999999998, 0.20000000000000001,
989 1.2217304763960306 },
990 { 1.4085436279696886, -0.59999999999999998, 0.20000000000000001,
991 1.3962634015954636 },
992 { 1.5901418016279374, -0.59999999999999998, 0.20000000000000001,
993 1.5707963267948966 },
995 const double toler033
= 2.5000000000000020e-13;
997 // Test data for k=-0.59999999999999998, nu=0.29999999999999999.
998 // max(|f - f_GSL|): 4.4408920985006262e-16
999 // max(|f - f_GSL| / |f_GSL|): 2.9132420715478757e-16
1000 const testcase_ellint_3
<double>
1003 { 0.0000000000000000, -0.59999999999999998, 0.29999999999999999,
1004 0.0000000000000000 },
1005 { 0.17432424744393932, -0.59999999999999998, 0.29999999999999999,
1006 0.17453292519943295 },
1007 { 0.34748744127146447, -0.59999999999999998, 0.29999999999999999,
1008 0.34906585039886590 },
1009 { 0.51873632743924825, -0.59999999999999998, 0.29999999999999999,
1010 0.52359877559829882 },
1011 { 0.68794610396313116, -0.59999999999999998, 0.29999999999999999,
1012 0.69813170079773179 },
1013 { 0.85558070175468726, -0.59999999999999998, 0.29999999999999999,
1014 0.87266462599716477 },
1015 { 1.0224416343605653, -0.59999999999999998, 0.29999999999999999,
1016 1.0471975511965976 },
1017 { 1.1893144457936788, -0.59999999999999998, 0.29999999999999999,
1018 1.2217304763960306 },
1019 { 1.3566435377982575, -0.59999999999999998, 0.29999999999999999,
1020 1.3962634015954636 },
1021 { 1.5243814243493585, -0.59999999999999998, 0.29999999999999999,
1022 1.5707963267948966 },
1024 const double toler034
= 2.5000000000000020e-13;
1026 // Test data for k=-0.59999999999999998, nu=0.40000000000000002.
1027 // max(|f - f_GSL|): 4.4408920985006262e-16
1028 // max(|f - f_GSL| / |f_GSL|): 3.3897581541285558e-16
1029 const testcase_ellint_3
<double>
1032 { 0.0000000000000000, -0.59999999999999998, 0.40000000000000002,
1033 0.0000000000000000 },
1034 { 0.17414974487670717, -0.59999999999999998, 0.40000000000000002,
1035 0.17453292519943295 },
1036 { 0.34615238767335027, -0.59999999999999998, 0.40000000000000002,
1037 0.34906585039886590 },
1038 { 0.51453257838108557, -0.59999999999999998, 0.40000000000000002,
1039 0.52359877559829882 },
1040 { 0.67882386787534399, -0.59999999999999998, 0.40000000000000002,
1041 0.69813170079773179 },
1042 { 0.83948470233173578, -0.59999999999999998, 0.40000000000000002,
1043 0.87266462599716477 },
1044 { 0.99753496200073977, -0.59999999999999998, 0.40000000000000002,
1045 1.0471975511965976 },
1046 { 1.1541101404388487, -0.59999999999999998, 0.40000000000000002,
1047 1.2217304763960306 },
1048 { 1.3100911323398814, -0.59999999999999998, 0.40000000000000002,
1049 1.3962634015954636 },
1050 { 1.4659345278069984, -0.59999999999999998, 0.40000000000000002,
1051 1.5707963267948966 },
1053 const double toler035
= 2.5000000000000020e-13;
1055 // Test data for k=-0.59999999999999998, nu=0.50000000000000000.
1056 // max(|f - f_GSL|): 4.4408920985006262e-16
1057 // max(|f - f_GSL| / |f_GSL|): 3.5022138270566200e-16
1058 const testcase_ellint_3
<double>
1061 { 0.0000000000000000, -0.59999999999999998, 0.50000000000000000,
1062 0.0000000000000000 },
1063 { 0.17397586700252807, -0.59999999999999998, 0.50000000000000000,
1064 0.17453292519943295 },
1065 { 0.34483533397138516, -0.59999999999999998, 0.50000000000000000,
1066 0.34906585039886590 },
1067 { 0.51044500461706477, -0.59999999999999998, 0.50000000000000000,
1068 0.52359877559829882 },
1069 { 0.67009988034712664, -0.59999999999999998, 0.50000000000000000,
1070 0.69813170079773179 },
1071 { 0.82434762375735193, -0.59999999999999998, 0.50000000000000000,
1072 0.87266462599716477 },
1073 { 0.97447346702798998, -0.59999999999999998, 0.50000000000000000,
1074 1.0471975511965976 },
1075 { 1.1219494000522143, -0.59999999999999998, 0.50000000000000000,
1076 1.2217304763960306 },
1077 { 1.2680242605954484, -0.59999999999999998, 0.50000000000000000,
1078 1.3962634015954636 },
1079 { 1.4135484285693078, -0.59999999999999998, 0.50000000000000000,
1080 1.5707963267948966 },
1082 const double toler036
= 2.5000000000000020e-13;
1084 // Test data for k=-0.59999999999999998, nu=0.59999999999999998.
1085 // max(|f - f_GSL|): 4.4408920985006262e-16
1086 // max(|f - f_GSL| / |f_GSL|): 3.2504224329684343e-16
1087 const testcase_ellint_3
<double>
1090 { 0.0000000000000000, -0.59999999999999998, 0.59999999999999998,
1091 0.0000000000000000 },
1092 { 0.17380260984469353, -0.59999999999999998, 0.59999999999999998,
1093 0.17453292519943295 },
1094 { 0.34353585361777839, -0.59999999999999998, 0.59999999999999998,
1095 0.34906585039886590 },
1096 { 0.50646805774321380, -0.59999999999999998, 0.59999999999999998,
1097 0.52359877559829882 },
1098 { 0.66174468108625506, -0.59999999999999998, 0.59999999999999998,
1099 0.69813170079773179 },
1100 { 0.81007462280278408, -0.59999999999999998, 0.59999999999999998,
1101 0.87266462599716477 },
1102 { 0.95303466945718729, -0.59999999999999998, 0.59999999999999998,
1103 1.0471975511965976 },
1104 { 1.0924118588677505, -0.59999999999999998, 0.59999999999999998,
1105 1.2217304763960306 },
1106 { 1.2297640574847937, -0.59999999999999998, 0.59999999999999998,
1107 1.3962634015954636 },
1108 { 1.3662507535812816, -0.59999999999999998, 0.59999999999999998,
1109 1.5707963267948966 },
1111 const double toler037
= 2.5000000000000020e-13;
1113 // Test data for k=-0.59999999999999998, nu=0.69999999999999996.
1114 // max(|f - f_GSL|): 4.4408920985006262e-16
1115 // max(|f - f_GSL| / |f_GSL|): 3.3559889697529752e-16
1116 const testcase_ellint_3
<double>
1119 { 0.0000000000000000, -0.59999999999999998, 0.69999999999999996,
1120 0.0000000000000000 },
1121 { 0.17362996946312007, -0.59999999999999998, 0.69999999999999996,
1122 0.17453292519943295 },
1123 { 0.34225353454870588, -0.59999999999999998, 0.69999999999999996,
1124 0.34906585039886590 },
1125 { 0.50259656397799524, -0.59999999999999998, 0.69999999999999996,
1126 0.52359877559829882 },
1127 { 0.65373184496628933, -0.59999999999999998, 0.69999999999999996,
1128 0.69813170079773179 },
1129 { 0.79658372884056439, -0.59999999999999998, 0.69999999999999996,
1130 0.87266462599716477 },
1131 { 0.93303240100245421, -0.59999999999999998, 0.69999999999999996,
1132 1.0471975511965976 },
1133 { 1.0651547944716557, -0.59999999999999998, 0.69999999999999996,
1134 1.2217304763960306 },
1135 { 1.1947676204853441, -0.59999999999999998, 0.69999999999999996,
1136 1.3962634015954636 },
1137 { 1.3232737468822813, -0.59999999999999998, 0.69999999999999996,
1138 1.5707963267948966 },
1140 const double toler038
= 2.5000000000000020e-13;
1142 // Test data for k=-0.59999999999999998, nu=0.80000000000000004.
1143 // max(|f - f_GSL|): 6.6613381477509392e-16
1144 // max(|f - f_GSL| / |f_GSL|): 5.1879494682720725e-16
1145 const testcase_ellint_3
<double>
1148 { 0.0000000000000000, -0.59999999999999998, 0.80000000000000004,
1149 0.0000000000000000 },
1150 { 0.17345794195390685, -0.59999999999999998, 0.80000000000000004,
1151 0.17453292519943295 },
1152 { 0.34098797854531027, -0.59999999999999998, 0.80000000000000004,
1153 0.34906585039886590 },
1154 { 0.49882569168826213, -0.59999999999999998, 0.80000000000000004,
1155 0.52359877559829882 },
1156 { 0.64603758566475511, -0.59999999999999998, 0.80000000000000004,
1157 0.69813170079773179 },
1158 { 0.78380365594769730, -0.59999999999999998, 0.80000000000000004,
1159 0.87266462599716477 },
1160 { 0.91430946255611190, -0.59999999999999998, 0.80000000000000004,
1161 1.0471975511965976 },
1162 { 1.0398955217270607, -0.59999999999999998, 0.80000000000000004,
1163 1.2217304763960306 },
1164 { 1.1625948314277679, -0.59999999999999998, 0.80000000000000004,
1165 1.3962634015954636 },
1166 { 1.2840021261752192, -0.59999999999999998, 0.80000000000000004,
1167 1.5707963267948966 },
1169 const double toler039
= 2.5000000000000020e-13;
1171 // Test data for k=-0.59999999999999998, nu=0.90000000000000002.
1172 // max(|f - f_GSL|): 2.2204460492503131e-16
1173 // max(|f - f_GSL| / |f_GSL|): 3.4768329326726447e-16
1174 const testcase_ellint_3
<double>
1177 { 0.0000000000000000, -0.59999999999999998, 0.90000000000000002,
1178 0.0000000000000000 },
1179 { 0.17328652344890030, -0.59999999999999998, 0.90000000000000002,
1180 0.17453292519943295 },
1181 { 0.33973880062929018, -0.59999999999999998, 0.90000000000000002,
1182 0.34906585039886590 },
1183 { 0.49515092233122743, -0.59999999999999998, 0.90000000000000002,
1184 0.52359877559829882 },
1185 { 0.63864042139737043, -0.59999999999999998, 0.90000000000000002,
1186 0.69813170079773179 },
1187 { 0.77167205646538850, -0.59999999999999998, 0.90000000000000002,
1188 0.87266462599716477 },
1189 { 0.89673202848034383, -0.59999999999999998, 0.90000000000000002,
1190 1.0471975511965976 },
1191 { 1.0163984492661304, -0.59999999999999998, 0.90000000000000002,
1192 1.2217304763960306 },
1193 { 1.1328845785162431, -0.59999999999999998, 0.90000000000000002,
1194 1.3962634015954636 },
1195 { 1.2479362973851875, -0.59999999999999998, 0.90000000000000002,
1196 1.5707963267948966 },
1198 const double toler040
= 2.5000000000000020e-13;
1200 // Test data for k=-0.50000000000000000, nu=0.0000000000000000.
1201 // max(|f - f_GSL|): 2.2204460492503131e-16
1202 // max(|f - f_GSL| / |f_GSL|): 3.1201497220602069e-16
1203 const testcase_ellint_3
<double>
1206 { 0.0000000000000000, -0.50000000000000000, 0.0000000000000000,
1207 0.0000000000000000 },
1208 { 0.17475385514035785, -0.50000000000000000, 0.0000000000000000,
1209 0.17453292519943295 },
1210 { 0.35081868470101585, -0.50000000000000000, 0.0000000000000000,
1211 0.34906585039886590 },
1212 { 0.52942862705190574, -0.50000000000000000, 0.0000000000000000,
1213 0.52359877559829882 },
1214 { 0.71164727562630314, -0.50000000000000000, 0.0000000000000000,
1215 0.69813170079773179 },
1216 { 0.89824523594227768, -0.50000000000000000, 0.0000000000000000,
1217 0.87266462599716477 },
1218 { 1.0895506700518851, -0.50000000000000000, 0.0000000000000000,
1219 1.0471975511965976 },
1220 { 1.2853005857432931, -0.50000000000000000, 0.0000000000000000,
1221 1.2217304763960306 },
1222 { 1.4845545520549484, -0.50000000000000000, 0.0000000000000000,
1223 1.3962634015954636 },
1224 { 1.6857503548125963, -0.50000000000000000, 0.0000000000000000,
1225 1.5707963267948966 },
1227 const double toler041
= 2.5000000000000020e-13;
1229 // Test data for k=-0.50000000000000000, nu=0.10000000000000001.
1230 // max(|f - f_GSL|): 2.2204460492503131e-16
1231 // max(|f - f_GSL| / |f_GSL|): 3.1662857256911530e-16
1232 const testcase_ellint_3
<double>
1235 { 0.0000000000000000, -0.50000000000000000, 0.10000000000000001,
1236 0.0000000000000000 },
1237 { 0.17457763120814676, -0.50000000000000000, 0.10000000000000001,
1238 0.17453292519943295 },
1239 { 0.34943246340849154, -0.50000000000000000, 0.10000000000000001,
1240 0.34906585039886590 },
1241 { 0.52487937869610790, -0.50000000000000000, 0.10000000000000001,
1242 0.52359877559829882 },
1243 { 0.70127785096388384, -0.50000000000000000, 0.10000000000000001,
1244 0.69813170079773179 },
1245 { 0.87898815988624479, -0.50000000000000000, 0.10000000000000001,
1246 0.87266462599716477 },
1247 { 1.0582764576094172, -0.50000000000000000, 0.10000000000000001,
1248 1.0471975511965976 },
1249 { 1.2391936844060205, -0.50000000000000000, 0.10000000000000001,
1250 1.2217304763960306 },
1251 { 1.4214793542995841, -0.50000000000000000, 0.10000000000000001,
1252 1.3962634015954636 },
1253 { 1.6045524936084892, -0.50000000000000000, 0.10000000000000001,
1254 1.5707963267948966 },
1256 const double toler042
= 2.5000000000000020e-13;
1258 // Test data for k=-0.50000000000000000, nu=0.20000000000000001.
1259 // max(|f - f_GSL|): 2.2204460492503131e-16
1260 // max(|f - f_GSL| / |f_GSL|): 3.2114786773102175e-16
1261 const testcase_ellint_3
<double>
1264 { 0.0000000000000000, -0.50000000000000000, 0.20000000000000001,
1265 0.0000000000000000 },
1266 { 0.17440204336345433, -0.50000000000000000, 0.20000000000000001,
1267 0.17453292519943295 },
1268 { 0.34806552388338824, -0.50000000000000000, 0.20000000000000001,
1269 0.34906585039886590 },
1270 { 0.52046416757129810, -0.50000000000000000, 0.20000000000000001,
1271 0.52359877559829882 },
1272 { 0.69140924550993865, -0.50000000000000000, 0.20000000000000001,
1273 0.69813170079773179 },
1274 { 0.86104678636125520, -0.50000000000000000, 0.20000000000000001,
1275 0.87266462599716477 },
1276 { 1.0297439459053981, -0.50000000000000000, 0.20000000000000001,
1277 1.0471975511965976 },
1278 { 1.1979214112912033, -0.50000000000000000, 0.20000000000000001,
1279 1.2217304763960306 },
1280 { 1.3659033858648930, -0.50000000000000000, 0.20000000000000001,
1281 1.3962634015954636 },
1282 { 1.5338490483665983, -0.50000000000000000, 0.20000000000000001,
1283 1.5707963267948966 },
1285 const double toler043
= 2.5000000000000020e-13;
1287 // Test data for k=-0.50000000000000000, nu=0.29999999999999999.
1288 // max(|f - f_GSL|): 2.2204460492503131e-16
1289 // max(|f - f_GSL| / |f_GSL|): 3.2557837230041312e-16
1290 const testcase_ellint_3
<double>
1293 { 0.0000000000000000, -0.50000000000000000, 0.29999999999999999,
1294 0.0000000000000000 },
1295 { 0.17422708752228896, -0.50000000000000000, 0.29999999999999999,
1296 0.17453292519943295 },
1297 { 0.34671739434855858, -0.50000000000000000, 0.29999999999999999,
1298 0.34906585039886590 },
1299 { 0.51617616305641878, -0.50000000000000000, 0.29999999999999999,
1300 0.52359877559829882 },
1301 { 0.68200047612545167, -0.50000000000000000, 0.29999999999999999,
1302 0.69813170079773179 },
1303 { 0.84427217869498372, -0.50000000000000000, 0.29999999999999999,
1304 0.87266462599716477 },
1305 { 1.0035637821389782, -0.50000000000000000, 0.29999999999999999,
1306 1.0471975511965976 },
1307 { 1.1606800483933111, -0.50000000000000000, 0.29999999999999999,
1308 1.2217304763960306 },
1309 { 1.3164407134643459, -0.50000000000000000, 0.29999999999999999,
1310 1.3962634015954636 },
1311 { 1.4715681939859637, -0.50000000000000000, 0.29999999999999999,
1312 1.5707963267948966 },
1314 const double toler044
= 2.5000000000000020e-13;
1316 // Test data for k=-0.50000000000000000, nu=0.40000000000000002.
1317 // max(|f - f_GSL|): 2.2204460492503131e-16
1318 // max(|f - f_GSL| / |f_GSL|): 3.2992508582900068e-16
1319 const testcase_ellint_3
<double>
1322 { 0.0000000000000000, -0.50000000000000000, 0.40000000000000002,
1323 0.0000000000000000 },
1324 { 0.17405275963859917, -0.50000000000000000, 0.40000000000000002,
1325 0.17453292519943295 },
1326 { 0.34538761957029329, -0.50000000000000000, 0.40000000000000002,
1327 0.34906585039886590 },
1328 { 0.51200902646603907, -0.50000000000000000, 0.40000000000000002,
1329 0.52359877559829882 },
1330 { 0.67301522212868792, -0.50000000000000000, 0.40000000000000002,
1331 0.69813170079773179 },
1332 { 0.82853844466313320, -0.50000000000000000, 0.40000000000000002,
1333 0.87266462599716477 },
1334 { 0.97942097862681488, -0.50000000000000000, 0.40000000000000002,
1335 1.0471975511965976 },
1336 { 1.1268429801220614, -0.50000000000000000, 0.40000000000000002,
1337 1.2217304763960306 },
1338 { 1.2720406704533922, -0.50000000000000000, 0.40000000000000002,
1339 1.3962634015954636 },
1340 { 1.4161679518465340, -0.50000000000000000, 0.40000000000000002,
1341 1.5707963267948966 },
1343 const double toler045
= 2.5000000000000020e-13;
1345 // Test data for k=-0.50000000000000000, nu=0.50000000000000000.
1346 // max(|f - f_GSL|): 2.2204460492503131e-16
1347 // max(|f - f_GSL| / |f_GSL|): 3.3419255755184137e-16
1348 const testcase_ellint_3
<double>
1351 { 0.0000000000000000, -0.50000000000000000, 0.50000000000000000,
1352 0.0000000000000000 },
1353 { 0.17387905570381157, -0.50000000000000000, 0.50000000000000000,
1354 0.17453292519943295 },
1355 { 0.34407576010465207, -0.50000000000000000, 0.50000000000000000,
1356 0.34906585039886590 },
1357 { 0.50795686560160824, -0.50000000000000000, 0.50000000000000000,
1358 0.52359877559829882 },
1359 { 0.66442115453330164, -0.50000000000000000, 0.50000000000000000,
1360 0.69813170079773179 },
1361 { 0.81373829119355345, -0.50000000000000000, 0.50000000000000000,
1362 0.87266462599716477 },
1363 { 0.95705743313235825, -0.50000000000000000, 0.50000000000000000,
1364 1.0471975511965976 },
1365 { 1.0959131991362554, -0.50000000000000000, 0.50000000000000000,
1366 1.2217304763960306 },
1367 { 1.2318900529754597, -0.50000000000000000, 0.50000000000000000,
1368 1.3962634015954636 },
1369 { 1.3664739530045971, -0.50000000000000000, 0.50000000000000000,
1370 1.5707963267948966 },
1372 const double toler046
= 2.5000000000000020e-13;
1374 // Test data for k=-0.50000000000000000, nu=0.59999999999999998.
1375 // max(|f - f_GSL|): 2.2204460492503131e-16
1376 // max(|f - f_GSL| / |f_GSL|): 3.3838494104749599e-16
1377 const testcase_ellint_3
<double>
1380 { 0.0000000000000000, -0.50000000000000000, 0.59999999999999998,
1381 0.0000000000000000 },
1382 { 0.17370597174637581, -0.50000000000000000, 0.59999999999999998,
1383 0.17453292519943295 },
1384 { 0.34278139158591414, -0.50000000000000000, 0.59999999999999998,
1385 0.34906585039886590 },
1386 { 0.50401419439302708, -0.50000000000000000, 0.59999999999999998,
1387 0.52359877559829882 },
1388 { 0.65618938076167210, -0.50000000000000000, 0.59999999999999998,
1389 0.69813170079773179 },
1390 { 0.79977959248855424, -0.50000000000000000, 0.59999999999999998,
1391 0.87266462599716477 },
1392 { 0.93625925190753545, -0.50000000000000000, 0.59999999999999998,
1393 1.0471975511965976 },
1394 { 1.0674905658379708, -0.50000000000000000, 0.59999999999999998,
1395 1.2217304763960306 },
1396 { 1.1953481298023050, -0.50000000000000000, 0.59999999999999998,
1397 1.3962634015954636 },
1398 { 1.3215740290190876, -0.50000000000000000, 0.59999999999999998,
1399 1.5707963267948966 },
1401 const double toler047
= 2.5000000000000020e-13;
1403 // Test data for k=-0.50000000000000000, nu=0.69999999999999996.
1404 // max(|f - f_GSL|): 2.2204460492503131e-16
1405 // max(|f - f_GSL| / |f_GSL|): 3.4250604066951477e-16
1406 const testcase_ellint_3
<double>
1409 { 0.0000000000000000, -0.50000000000000000, 0.69999999999999996,
1410 0.0000000000000000 },
1411 { 0.17353350383131641, -0.50000000000000000, 0.69999999999999996,
1412 0.17453292519943295 },
1413 { 0.34150410405436771, -0.50000000000000000, 0.69999999999999996,
1414 0.34906585039886590 },
1415 { 0.50017589696443487, -0.50000000000000000, 0.69999999999999996,
1416 0.52359877559829882 },
1417 { 0.64829398188419951, -0.50000000000000000, 0.69999999999999996,
1418 0.69813170079773179 },
1419 { 0.78658270782402073, -0.50000000000000000, 0.69999999999999996,
1420 0.87266462599716477 },
1421 { 0.91684738336675053, -0.50000000000000000, 0.69999999999999996,
1422 1.0471975511965976 },
1423 { 1.0412486789555935, -0.50000000000000000, 0.69999999999999996,
1424 1.2217304763960306 },
1425 { 1.1619021847612001, -0.50000000000000000, 0.69999999999999996,
1426 1.3962634015954636 },
1427 { 1.2807475181182502, -0.50000000000000000, 0.69999999999999996,
1428 1.5707963267948966 },
1430 const double toler048
= 2.5000000000000020e-13;
1432 // Test data for k=-0.50000000000000000, nu=0.80000000000000004.
1433 // max(|f - f_GSL|): 4.4408920985006262e-16
1434 // max(|f - f_GSL| / |f_GSL|): 3.5715240651179632e-16
1435 const testcase_ellint_3
<double>
1438 { 0.0000000000000000, -0.50000000000000000, 0.80000000000000004,
1439 0.0000000000000000 },
1440 { 0.17336164805979126, -0.50000000000000000, 0.80000000000000004,
1441 0.17453292519943295 },
1442 { 0.34024350132086773, -0.50000000000000000, 0.80000000000000004,
1443 0.34906585039886590 },
1444 { 0.49643719555734073, -0.50000000000000000, 0.80000000000000004,
1445 0.52359877559829882 },
1446 { 0.64071162456976150, -0.50000000000000000, 0.80000000000000004,
1447 0.69813170079773179 },
1448 { 0.77407836177211908, -0.50000000000000000, 0.80000000000000004,
1449 0.87266462599716477 },
1450 { 0.89867058251905652, -0.50000000000000000, 0.80000000000000004,
1451 1.0471975511965976 },
1452 { 1.0169181822134910, -0.50000000000000000, 0.80000000000000004,
1453 1.2217304763960306 },
1454 { 1.1311363312779448, -0.50000000000000000, 0.80000000000000004,
1455 1.3962634015954636 },
1456 { 1.2434165408189539, -0.50000000000000000, 0.80000000000000004,
1457 1.5707963267948966 },
1459 const double toler049
= 2.5000000000000020e-13;
1461 // Test data for k=-0.50000000000000000, nu=0.90000000000000002.
1462 // max(|f - f_GSL|): 4.4408920985006262e-16
1463 // max(|f - f_GSL| / |f_GSL|): 4.4664649039489274e-16
1464 const testcase_ellint_3
<double>
1467 { 0.0000000000000000, -0.50000000000000000, 0.90000000000000002,
1468 0.0000000000000000 },
1469 { 0.17319040056865681, -0.50000000000000000, 0.90000000000000002,
1470 0.17453292519943295 },
1471 { 0.33899920036578557, -0.50000000000000000, 0.90000000000000002,
1472 0.34906585039886590 },
1473 { 0.49279362182695174, -0.50000000000000000, 0.90000000000000002,
1474 0.52359877559829882 },
1475 { 0.63342123379746151, -0.50000000000000000, 0.90000000000000002,
1476 0.69813170079773179 },
1477 { 0.76220595179550321, -0.50000000000000000, 0.90000000000000002,
1478 0.87266462599716477 },
1479 { 0.88160004743532294, -0.50000000000000000, 0.90000000000000002,
1480 1.0471975511965976 },
1481 { 0.99427448642310123, -0.50000000000000000, 0.90000000000000002,
1482 1.2217304763960306 },
1483 { 1.1027091512470095, -0.50000000000000000, 0.90000000000000002,
1484 1.3962634015954636 },
1485 { 1.2091116095504744, -0.50000000000000000, 0.90000000000000002,
1486 1.5707963267948966 },
1488 const double toler050
= 2.5000000000000020e-13;
1490 // Test data for k=-0.40000000000000002, nu=0.0000000000000000.
1491 // max(|f - f_GSL|): 6.6613381477509392e-16
1492 // max(|f - f_GSL| / |f_GSL|): 4.0617918857203532e-16
1493 const testcase_ellint_3
<double>
1496 { 0.0000000000000000, -0.40000000000000002, 0.0000000000000000,
1497 0.0000000000000000 },
1498 { 0.17467414669441528, -0.40000000000000002, 0.0000000000000000,
1499 0.17453292519943295 },
1500 { 0.35018222772483443, -0.40000000000000002, 0.0000000000000000,
1501 0.34906585039886590 },
1502 { 0.52729015917508737, -0.40000000000000002, 0.0000000000000000,
1503 0.52359877559829882 },
1504 { 0.70662374407341244, -0.40000000000000002, 0.0000000000000000,
1505 0.69813170079773179 },
1506 { 0.88859210497602170, -0.40000000000000002, 0.0000000000000000,
1507 0.87266462599716477 },
1508 { 1.0733136290471379, -0.40000000000000002, 0.0000000000000000,
1509 1.0471975511965976 },
1510 { 1.2605612170157061, -0.40000000000000002, 0.0000000000000000,
1511 1.2217304763960306 },
1512 { 1.4497513956433439, -0.40000000000000002, 0.0000000000000000,
1513 1.3962634015954636 },
1514 { 1.6399998658645112, -0.40000000000000002, 0.0000000000000000,
1515 1.5707963267948966 },
1517 const double toler051
= 2.5000000000000020e-13;
1519 // Test data for k=-0.40000000000000002, nu=0.10000000000000001.
1520 // max(|f - f_GSL|): 6.6613381477509392e-16
1521 // max(|f - f_GSL| / |f_GSL|): 4.2644663257577874e-16
1522 const testcase_ellint_3
<double>
1525 { 0.0000000000000000, -0.40000000000000002, 0.10000000000000001,
1526 0.0000000000000000 },
1527 { 0.17449806706684670, -0.40000000000000002, 0.10000000000000001,
1528 0.17453292519943295 },
1529 { 0.34880048623856075, -0.40000000000000002, 0.10000000000000001,
1530 0.34906585039886590 },
1531 { 0.52277322065757392, -0.40000000000000002, 0.10000000000000001,
1532 0.52359877559829882 },
1533 { 0.69638072056918365, -0.40000000000000002, 0.10000000000000001,
1534 0.69813170079773179 },
1535 { 0.86968426619831540, -0.40000000000000002, 0.10000000000000001,
1536 0.87266462599716477 },
1537 { 1.0428044206578095, -0.40000000000000002, 0.10000000000000001,
1538 1.0471975511965976 },
1539 { 1.2158651158274378, -0.40000000000000002, 0.10000000000000001,
1540 1.2217304763960306 },
1541 { 1.3889447129893324, -0.40000000000000002, 0.10000000000000001,
1542 1.3962634015954636 },
1543 { 1.5620566886683604, -0.40000000000000002, 0.10000000000000001,
1544 1.5707963267948966 },
1546 const double toler052
= 2.5000000000000020e-13;
1548 // Test data for k=-0.40000000000000002, nu=0.20000000000000001.
1549 // max(|f - f_GSL|): 6.6613381477509392e-16
1550 // max(|f - f_GSL| / |f_GSL|): 4.4583049464169287e-16
1551 const testcase_ellint_3
<double>
1554 { 0.0000000000000000, -0.40000000000000002, 0.20000000000000001,
1555 0.0000000000000000 },
1556 { 0.17432262290723397, -0.40000000000000002, 0.20000000000000001,
1557 0.17453292519943295 },
1558 { 0.34743795258968596, -0.40000000000000002, 0.20000000000000001,
1559 0.34906585039886590 },
1560 { 0.51838919472805101, -0.40000000000000002, 0.20000000000000001,
1561 0.52359877559829882 },
1562 { 0.68663134739057907, -0.40000000000000002, 0.20000000000000001,
1563 0.69813170079773179 },
1564 { 0.85206432981833979, -0.40000000000000002, 0.20000000000000001,
1565 0.87266462599716477 },
1566 { 1.0149595349004430, -0.40000000000000002, 0.20000000000000001,
1567 1.0471975511965976 },
1568 { 1.1758349405464676, -0.40000000000000002, 0.20000000000000001,
1569 1.2217304763960306 },
1570 { 1.3353337673882637, -0.40000000000000002, 0.20000000000000001,
1571 1.3962634015954636 },
1572 { 1.4941414344266770, -0.40000000000000002, 0.20000000000000001,
1573 1.5707963267948966 },
1575 const double toler053
= 2.5000000000000020e-13;
1577 // Test data for k=-0.40000000000000002, nu=0.29999999999999999.
1578 // max(|f - f_GSL|): 8.8817841970012523e-16
1579 // max(|f - f_GSL| / |f_GSL|): 6.1925080711125793e-16
1580 const testcase_ellint_3
<double>
1583 { 0.0000000000000000, -0.40000000000000002, 0.29999999999999999,
1584 0.0000000000000000 },
1585 { 0.17414781013591540, -0.40000000000000002, 0.29999999999999999,
1586 0.17453292519943295 },
1587 { 0.34609415696777285, -0.40000000000000002, 0.29999999999999999,
1588 0.34906585039886590 },
1589 { 0.51413131295862535, -0.40000000000000002, 0.29999999999999999,
1590 0.52359877559829882 },
1591 { 0.67733527622935630, -0.40000000000000002, 0.29999999999999999,
1592 0.69813170079773179 },
1593 { 0.83558675182733266, -0.40000000000000002, 0.29999999999999999,
1594 0.87266462599716477 },
1595 { 0.98940140808865906, -0.40000000000000002, 0.29999999999999999,
1596 1.0471975511965976 },
1597 { 1.1396968797728058, -0.40000000000000002, 0.29999999999999999,
1598 1.2217304763960306 },
1599 { 1.2875920037865090, -0.40000000000000002, 0.29999999999999999,
1600 1.3962634015954636 },
1601 { 1.4342789859950078, -0.40000000000000002, 0.29999999999999999,
1602 1.5707963267948966 },
1604 const double toler054
= 2.5000000000000020e-13;
1606 // Test data for k=-0.40000000000000002, nu=0.40000000000000002.
1607 // max(|f - f_GSL|): 6.6613381477509392e-16
1608 // max(|f - f_GSL| / |f_GSL|): 4.8235661108581362e-16
1609 const testcase_ellint_3
<double>
1612 { 0.0000000000000000, -0.40000000000000002, 0.40000000000000002,
1613 0.0000000000000000 },
1614 { 0.17397362471112707, -0.40000000000000002, 0.40000000000000002,
1615 0.17453292519943295 },
1616 { 0.34476864603333196, -0.40000000000000002, 0.40000000000000002,
1617 0.34906585039886590 },
1618 { 0.50999329415379346, -0.40000000000000002, 0.40000000000000002,
1619 0.52359877559829882 },
1620 { 0.66845674551396006, -0.40000000000000002, 0.40000000000000002,
1621 0.69813170079773179 },
1622 { 0.82012848346231748, -0.40000000000000002, 0.40000000000000002,
1623 0.87266462599716477 },
1624 { 0.96582449258349057, -0.40000000000000002, 0.40000000000000002,
1625 1.0471975511965976 },
1626 { 1.1068473749476286, -0.40000000000000002, 0.40000000000000002,
1627 1.2217304763960306 },
1628 { 1.2447132729159989, -0.40000000000000002, 0.40000000000000002,
1629 1.3962634015954636 },
1630 { 1.3809986210732901, -0.40000000000000002, 0.40000000000000002,
1631 1.5707963267948966 },
1633 const double toler055
= 2.5000000000000020e-13;
1635 // Test data for k=-0.40000000000000002, nu=0.50000000000000000.
1636 // max(|f - f_GSL|): 6.6613381477509392e-16
1637 // max(|f - f_GSL| / |f_GSL|): 4.9965792755639576e-16
1638 const testcase_ellint_3
<double>
1641 { 0.0000000000000000, -0.40000000000000002, 0.50000000000000000,
1642 0.0000000000000000 },
1643 { 0.17380006262854136, -0.40000000000000002, 0.50000000000000000,
1644 0.17453292519943295 },
1645 { 0.34346098216756610, -0.40000000000000002, 0.50000000000000000,
1646 0.34906585039886590 },
1647 { 0.50596929935059420, -0.40000000000000002, 0.50000000000000000,
1648 0.52359877559829882 },
1649 { 0.65996392089131251, -0.40000000000000002, 0.50000000000000000,
1650 0.69813170079773179 },
1651 { 0.80558463511364786, -0.40000000000000002, 0.50000000000000000,
1652 0.87266462599716477 },
1653 { 0.94397834522857704, -0.40000000000000002, 0.50000000000000000,
1654 1.0471975511965976 },
1655 { 1.0768075114108115, -0.40000000000000002, 0.50000000000000000,
1656 1.2217304763960306 },
1657 { 1.2059184624251333, -0.40000000000000002, 0.50000000000000000,
1658 1.3962634015954636 },
1659 { 1.3331797176377398, -0.40000000000000002, 0.50000000000000000,
1660 1.5707963267948966 },
1662 const double toler056
= 2.5000000000000020e-13;
1664 // Test data for k=-0.40000000000000002, nu=0.59999999999999998.
1665 // max(|f - f_GSL|): 6.6613381477509392e-16
1666 // max(|f - f_GSL| / |f_GSL|): 5.1640223038298069e-16
1667 const testcase_ellint_3
<double>
1670 { 0.0000000000000000, -0.40000000000000002, 0.59999999999999998,
1671 0.0000000000000000 },
1672 { 0.17362711992081245, -0.40000000000000002, 0.59999999999999998,
1673 0.17453292519943295 },
1674 { 0.34217074276403953, -0.40000000000000002, 0.59999999999999998,
1675 0.34906585039886590 },
1676 { 0.50205389185761606, -0.40000000000000002, 0.59999999999999998,
1677 0.52359877559829882 },
1678 { 0.65182834920372734, -0.40000000000000002, 0.59999999999999998,
1679 0.69813170079773179 },
1680 { 0.79186512820565136, -0.40000000000000002, 0.59999999999999998,
1681 0.87266462599716477 },
1682 { 0.92365535916287134, -0.40000000000000002, 0.59999999999999998,
1683 1.0471975511965976 },
1684 { 1.0491915663957907, -0.40000000000000002, 0.59999999999999998,
1685 1.2217304763960306 },
1686 { 1.1705934291745106, -0.40000000000000002, 0.59999999999999998,
1687 1.3962634015954636 },
1688 { 1.2899514672527024, -0.40000000000000002, 0.59999999999999998,
1689 1.5707963267948966 },
1691 const double toler057
= 2.5000000000000020e-13;
1693 // Test data for k=-0.40000000000000002, nu=0.69999999999999996.
1694 // max(|f - f_GSL|): 6.6613381477509392e-16
1695 // max(|f - f_GSL| / |f_GSL|): 5.3264047918332349e-16
1696 const testcase_ellint_3
<double>
1699 { 0.0000000000000000, -0.40000000000000002, 0.69999999999999996,
1700 0.0000000000000000 },
1701 { 0.17345479265712868, -0.40000000000000002, 0.69999999999999996,
1702 0.17453292519943295 },
1703 { 0.34089751955950354, -0.40000000000000002, 0.69999999999999996,
1704 0.34906585039886590 },
1705 { 0.49824200167361332, -0.40000000000000002, 0.69999999999999996,
1706 0.52359877559829882 },
1707 { 0.64402450341199402, -0.40000000000000002, 0.69999999999999996,
1708 0.69813170079773179 },
1709 { 0.77889207804122873, -0.40000000000000002, 0.69999999999999996,
1710 0.87266462599716477 },
1711 { 0.90468169720957992, -0.40000000000000002, 0.69999999999999996,
1712 1.0471975511965976 },
1713 { 1.0236847823692916, -0.40000000000000002, 0.69999999999999996,
1714 1.2217304763960306 },
1715 { 1.1382465247425166, -0.40000000000000002, 0.69999999999999996,
1716 1.3962634015954636 },
1717 { 1.2506255923253344, -0.40000000000000002, 0.69999999999999996,
1718 1.5707963267948966 },
1720 const double toler058
= 2.5000000000000020e-13;
1722 // Test data for k=-0.40000000000000002, nu=0.80000000000000004.
1723 // max(|f - f_GSL|): 6.6613381477509392e-16
1724 // max(|f - f_GSL| / |f_GSL|): 6.6611561645571024e-16
1725 const testcase_ellint_3
<double>
1728 { 0.0000000000000000, -0.40000000000000002, 0.80000000000000004,
1729 0.0000000000000000 },
1730 { 0.17328307694277154, -0.40000000000000002, 0.80000000000000004,
1731 0.17453292519943295 },
1732 { 0.33964091800132007, -0.40000000000000002, 0.80000000000000004,
1733 0.34906585039886590 },
1734 { 0.49452889372467440, -0.40000000000000002, 0.80000000000000004,
1735 0.52359877559829882 },
1736 { 0.63652940095937316, -0.40000000000000002, 0.80000000000000004,
1737 0.69813170079773179 },
1738 { 0.76659772511159097, -0.40000000000000002, 0.80000000000000004,
1739 0.87266462599716477 },
1740 { 0.88691047977338111, -0.40000000000000002, 0.80000000000000004,
1741 1.0471975511965976 },
1742 { 1.0000273200611638, -0.40000000000000002, 0.80000000000000004,
1743 1.2217304763960306 },
1744 { 1.1084787902188009, -0.40000000000000002, 0.80000000000000004,
1745 1.3962634015954636 },
1746 { 1.2146499565727209, -0.40000000000000002, 0.80000000000000004,
1747 1.5707963267948966 },
1749 const double toler059
= 2.5000000000000020e-13;
1751 // Test data for k=-0.40000000000000002, nu=0.90000000000000002.
1752 // max(|f - f_GSL|): 6.6613381477509392e-16
1753 // max(|f - f_GSL| / |f_GSL|): 5.6376730823308004e-16
1754 const testcase_ellint_3
<double>
1757 { 0.0000000000000000, -0.40000000000000002, 0.90000000000000002,
1758 0.0000000000000000 },
1759 { 0.17311196891868127, -0.40000000000000002, 0.90000000000000002,
1760 0.17453292519943295 },
1761 { 0.33840055664911906, -0.40000000000000002, 0.90000000000000002,
1762 0.34906585039886590 },
1763 { 0.49091013944075329, -0.40000000000000002, 0.90000000000000002,
1764 0.52359877559829882 },
1765 { 0.62932228186809580, -0.40000000000000002, 0.90000000000000002,
1766 0.69813170079773179 },
1767 { 0.75492278323019801, -0.40000000000000002, 0.90000000000000002,
1768 0.87266462599716477 },
1769 { 0.87021659043854294, -0.40000000000000002, 0.90000000000000002,
1770 1.0471975511965976 },
1771 { 0.97800245228239246, -0.40000000000000002, 0.90000000000000002,
1772 1.2217304763960306 },
1773 { 1.0809625773173697, -0.40000000000000002, 0.90000000000000002,
1774 1.3962634015954636 },
1775 { 1.1815758115929846, -0.40000000000000002, 0.90000000000000002,
1776 1.5707963267948966 },
1778 const double toler060
= 2.5000000000000020e-13;
1780 // Test data for k=-0.30000000000000004, nu=0.0000000000000000.
1781 // max(|f - f_GSL|): 8.8817841970012523e-16
1782 // max(|f - f_GSL| / |f_GSL|): 6.3361874537309281e-16
1783 const testcase_ellint_3
<double>
1786 { 0.0000000000000000, -0.30000000000000004, 0.0000000000000000,
1787 0.0000000000000000 },
1788 { 0.17461228653000099, -0.30000000000000004, 0.0000000000000000,
1789 0.17453292519943295 },
1790 { 0.34969146102798415, -0.30000000000000004, 0.0000000000000000,
1791 0.34906585039886590 },
1792 { 0.52565822873726320, -0.30000000000000004, 0.0000000000000000,
1793 0.52359877559829882 },
1794 { 0.70284226512408532, -0.30000000000000004, 0.0000000000000000,
1795 0.69813170079773179 },
1796 { 0.88144139195111182, -0.30000000000000004, 0.0000000000000000,
1797 0.87266462599716477 },
1798 { 1.0614897067260520, -0.30000000000000004, 0.0000000000000000,
1799 1.0471975511965976 },
1800 { 1.2428416824174218, -0.30000000000000004, 0.0000000000000000,
1801 1.2217304763960306 },
1802 { 1.4251795877015927, -0.30000000000000004, 0.0000000000000000,
1803 1.3962634015954636 },
1804 { 1.6080486199305128, -0.30000000000000004, 0.0000000000000000,
1805 1.5707963267948966 },
1807 const double toler061
= 2.5000000000000020e-13;
1809 // Test data for k=-0.30000000000000004, nu=0.10000000000000001.
1810 // max(|f - f_GSL|): 8.8817841970012523e-16
1811 // max(|f - f_GSL| / |f_GSL|): 6.3908043711907203e-16
1812 const testcase_ellint_3
<double>
1815 { 0.0000000000000000, -0.30000000000000004, 0.10000000000000001,
1816 0.0000000000000000 },
1817 { 0.17443631884814376, -0.30000000000000004, 0.10000000000000001,
1818 0.17453292519943295 },
1819 { 0.34831316835124926, -0.30000000000000004, 0.10000000000000001,
1820 0.34906585039886590 },
1821 { 0.52116586276523857, -0.30000000000000004, 0.10000000000000001,
1822 0.52359877559829882 },
1823 { 0.69269385837910036, -0.30000000000000004, 0.10000000000000001,
1824 0.69813170079773179 },
1825 { 0.86279023163070856, -0.30000000000000004, 0.10000000000000001,
1826 0.87266462599716477 },
1827 { 1.0315321461438263, -0.30000000000000004, 0.10000000000000001,
1828 1.0471975511965976 },
1829 { 1.1991449111869024, -0.30000000000000004, 0.10000000000000001,
1830 1.2217304763960306 },
1831 { 1.3659561780923213, -0.30000000000000004, 0.10000000000000001,
1832 1.3962634015954636 },
1833 { 1.5323534693557528, -0.30000000000000004, 0.10000000000000001,
1834 1.5707963267948966 },
1836 const double toler062
= 2.5000000000000020e-13;
1838 // Test data for k=-0.30000000000000004, nu=0.20000000000000001.
1839 // max(|f - f_GSL|): 8.8817841970012523e-16
1840 // max(|f - f_GSL| / |f_GSL|): 6.4447238179454079e-16
1841 const testcase_ellint_3
<double>
1844 { 0.0000000000000000, -0.30000000000000004, 0.20000000000000001,
1845 0.0000000000000000 },
1846 { 0.17426098615372088, -0.30000000000000004, 0.20000000000000001,
1847 0.17453292519943295 },
1848 { 0.34695402664689923, -0.30000000000000004, 0.20000000000000001,
1849 0.34906585039886590 },
1850 { 0.51680555567038933, -0.30000000000000004, 0.20000000000000001,
1851 0.52359877559829882 },
1852 { 0.68303375225260210, -0.30000000000000004, 0.20000000000000001,
1853 0.69813170079773179 },
1854 { 0.84540662891295026, -0.30000000000000004, 0.20000000000000001,
1855 0.87266462599716477 },
1856 { 1.0041834051646927, -0.30000000000000004, 0.20000000000000001,
1857 1.0471975511965976 },
1858 { 1.1599952702345711, -0.30000000000000004, 0.20000000000000001,
1859 1.2217304763960306 },
1860 { 1.3137179520499165, -0.30000000000000004, 0.20000000000000001,
1861 1.3962634015954636 },
1862 { 1.4663658145259877, -0.30000000000000004, 0.20000000000000001,
1863 1.5707963267948966 },
1865 const double toler063
= 2.5000000000000020e-13;
1867 // Test data for k=-0.30000000000000004, nu=0.29999999999999999.
1868 // max(|f - f_GSL|): 8.8817841970012523e-16
1869 // max(|f - f_GSL| / |f_GSL|): 6.4979715256503266e-16
1870 const testcase_ellint_3
<double>
1873 { 0.0000000000000000, -0.30000000000000004, 0.29999999999999999,
1874 0.0000000000000000 },
1875 { 0.17408628437042842, -0.30000000000000004, 0.29999999999999999,
1876 0.17453292519943295 },
1877 { 0.34561356761638401, -0.30000000000000004, 0.29999999999999999,
1878 0.34906585039886590 },
1879 { 0.51257058617875850, -0.30000000000000004, 0.29999999999999999,
1880 0.52359877559829882 },
1881 { 0.67382207124602878, -0.30000000000000004, 0.29999999999999999,
1882 0.69813170079773179 },
1883 { 0.82914751587825131, -0.30000000000000004, 0.29999999999999999,
1884 0.87266462599716477 },
1885 { 0.97907434814374938, -0.30000000000000004, 0.29999999999999999,
1886 1.0471975511965976 },
1887 { 1.1246399297351584, -0.30000000000000004, 0.29999999999999999,
1888 1.2217304763960306 },
1889 { 1.2671793970398149, -0.30000000000000004, 0.29999999999999999,
1890 1.3962634015954636 },
1891 { 1.4081767433479091, -0.30000000000000004, 0.29999999999999999,
1892 1.5707963267948966 },
1894 const double toler064
= 2.5000000000000020e-13;
1896 // Test data for k=-0.30000000000000004, nu=0.40000000000000002.
1897 // max(|f - f_GSL|): 8.8817841970012523e-16
1898 // max(|f - f_GSL| / |f_GSL|): 6.5505716921759864e-16
1899 const testcase_ellint_3
<double>
1902 { 0.0000000000000000, -0.30000000000000004, 0.40000000000000002,
1903 0.0000000000000000 },
1904 { 0.17391220945982727, -0.30000000000000004, 0.40000000000000002,
1905 0.17453292519943295 },
1906 { 0.34429133937639689, -0.30000000000000004, 0.40000000000000002,
1907 0.34906585039886590 },
1908 { 0.50845471668581632, -0.30000000000000004, 0.40000000000000002,
1909 0.52359877559829882 },
1910 { 0.66502347027873854, -0.30000000000000004, 0.40000000000000002,
1911 0.69813170079773179 },
1912 { 0.81389191978012254, -0.30000000000000004, 0.40000000000000002,
1913 0.87266462599716477 },
1914 { 0.95590618002140570, -0.30000000000000004, 0.40000000000000002,
1915 1.0471975511965976 },
1916 { 1.0924915195213121, -0.30000000000000004, 0.40000000000000002,
1917 1.2217304763960306 },
1918 { 1.2253651604038061, -0.30000000000000004, 0.40000000000000002,
1919 1.3962634015954636 },
1920 { 1.3563643538969763, -0.30000000000000004, 0.40000000000000002,
1921 1.5707963267948966 },
1923 const double toler065
= 2.5000000000000020e-13;
1925 // Test data for k=-0.30000000000000004, nu=0.50000000000000000.
1926 // max(|f - f_GSL|): 8.8817841970012523e-16
1927 // max(|f - f_GSL| / |f_GSL|): 6.7807908859023716e-16
1928 const testcase_ellint_3
<double>
1931 { 0.0000000000000000, -0.30000000000000004, 0.50000000000000000,
1932 0.0000000000000000 },
1933 { 0.17373875742088232, -0.30000000000000004, 0.50000000000000000,
1934 0.17453292519943295 },
1935 { 0.34298690571124157, -0.30000000000000004, 0.50000000000000000,
1936 0.34906585039886590 },
1937 { 0.50445214859646936, -0.30000000000000004, 0.50000000000000000,
1938 0.52359877559829882 },
1939 { 0.65660648352418516, -0.30000000000000004, 0.50000000000000000,
1940 0.69813170079773179 },
1941 { 0.79953670639287289, -0.30000000000000004, 0.50000000000000000,
1942 0.87266462599716477 },
1943 { 0.93443393926588536, -0.30000000000000004, 0.50000000000000000,
1944 1.0471975511965976 },
1945 { 1.0630838369016911, -0.30000000000000004, 0.50000000000000000,
1946 1.2217304763960306 },
1947 { 1.1875197325653029, -0.30000000000000004, 0.50000000000000000,
1948 1.3962634015954636 },
1949 { 1.3098448759814962, -0.30000000000000004, 0.50000000000000000,
1950 1.5707963267948966 },
1952 const double toler066
= 2.5000000000000020e-13;
1954 // Test data for k=-0.30000000000000004, nu=0.59999999999999998.
1955 // max(|f - f_GSL|): 8.8817841970012523e-16
1956 // max(|f - f_GSL| / |f_GSL|): 7.0057999499931649e-16
1957 const testcase_ellint_3
<double>
1960 { 0.0000000000000000, -0.30000000000000004, 0.59999999999999998,
1961 0.0000000000000000 },
1962 { 0.17356592428950823, -0.30000000000000004, 0.59999999999999998,
1963 0.17453292519943295 },
1964 { 0.34169984536697379, -0.30000000000000004, 0.59999999999999998,
1965 0.34906585039886590 },
1966 { 0.50055748266498457, -0.30000000000000004, 0.59999999999999998,
1967 0.52359877559829882 },
1968 { 0.64854298527106768, -0.30000000000000004, 0.59999999999999998,
1969 0.69813170079773179 },
1970 { 0.78599329284207431, -0.30000000000000004, 0.59999999999999998,
1971 0.87266462599716477 },
1972 { 0.91445452089128199, -0.30000000000000004, 0.59999999999999998,
1973 1.0471975511965976 },
1974 { 1.0360412952290587, -0.30000000000000004, 0.59999999999999998,
1975 1.2217304763960306 },
1976 { 1.1530473919778641, -0.30000000000000004, 0.59999999999999998,
1977 1.3962634015954636 },
1978 { 1.2677758800420669, -0.30000000000000004, 0.59999999999999998,
1979 1.5707963267948966 },
1981 const double toler067
= 2.5000000000000020e-13;
1983 // Test data for k=-0.30000000000000004, nu=0.69999999999999996.
1984 // max(|f - f_GSL|): 8.8817841970012523e-16
1985 // max(|f - f_GSL| / |f_GSL|): 7.2239502844122443e-16
1986 const testcase_ellint_3
<double>
1989 { 0.0000000000000000, -0.30000000000000004, 0.69999999999999996,
1990 0.0000000000000000 },
1991 { 0.17339370613812224, -0.30000000000000004, 0.69999999999999996,
1992 0.17453292519943295 },
1993 { 0.34042975138455933, -0.30000000000000004, 0.69999999999999996,
1994 0.34906585039886590 },
1995 { 0.49676568368075985, -0.30000000000000004, 0.69999999999999996,
1996 0.52359877559829882 },
1997 { 0.64080774055753720, -0.30000000000000004, 0.69999999999999996,
1998 0.69813170079773179 },
1999 { 0.77318507779667278, -0.30000000000000004, 0.69999999999999996,
2000 0.87266462599716477 },
2001 { 0.89579782346548609, -0.30000000000000004, 0.69999999999999996,
2002 1.0471975511965976 },
2003 { 1.0110573286052202, -0.30000000000000004, 0.69999999999999996,
2004 1.2217304763960306 },
2005 { 1.1214710972949635, -0.30000000000000004, 0.69999999999999996,
2006 1.3962634015954636 },
2007 { 1.2294913236274982, -0.30000000000000004, 0.69999999999999996,
2008 1.5707963267948966 },
2010 const double toler068
= 2.5000000000000020e-13;
2012 // Test data for k=-0.30000000000000004, nu=0.80000000000000004.
2013 // max(|f - f_GSL|): 8.8817841970012523e-16
2014 // max(|f - f_GSL| / |f_GSL|): 7.4358357000101250e-16
2015 const testcase_ellint_3
<double>
2018 { 0.0000000000000000, -0.30000000000000004, 0.80000000000000004,
2019 0.0000000000000000 },
2020 { 0.17322209907520358, -0.30000000000000004, 0.80000000000000004,
2021 0.17453292519943295 },
2022 { 0.33917623046949996, -0.30000000000000004, 0.80000000000000004,
2023 0.34906585039886590 },
2024 { 0.49307204894329176, -0.30000000000000004, 0.80000000000000004,
2025 0.52359877559829882 },
2026 { 0.63337802830291734, -0.30000000000000004, 0.80000000000000004,
2027 0.69813170079773179 },
2028 { 0.76104540997689407, -0.30000000000000004, 0.80000000000000004,
2029 0.87266462599716477 },
2030 { 0.87832009635450714, -0.30000000000000004, 0.80000000000000004,
2031 1.0471975511965976 },
2032 { 0.98787879723171790, -0.30000000000000004, 0.80000000000000004,
2033 1.2217304763960306 },
2034 { 1.0924036340069339, -0.30000000000000004, 0.80000000000000004,
2035 1.3962634015954636 },
2036 { 1.1944567571590048, -0.30000000000000004, 0.80000000000000004,
2037 1.5707963267948966 },
2039 const double toler069
= 2.5000000000000020e-13;
2041 // Test data for k=-0.30000000000000004, nu=0.90000000000000002.
2042 // max(|f - f_GSL|): 8.8817841970012523e-16
2043 // max(|f - f_GSL| / |f_GSL|): 7.6419688299804087e-16
2044 const testcase_ellint_3
<double>
2047 { 0.0000000000000000, -0.30000000000000004, 0.90000000000000002,
2048 0.0000000000000000 },
2049 { 0.17305109924485945, -0.30000000000000004, 0.90000000000000002,
2050 0.17453292519943295 },
2051 { 0.33793890239556984, -0.30000000000000004, 0.90000000000000002,
2052 0.34906585039886590 },
2053 { 0.48947218005089738, -0.30000000000000004, 0.90000000000000002,
2054 0.52359877559829882 },
2055 { 0.62623332340775151, -0.30000000000000004, 0.90000000000000002,
2056 0.69813170079773179 },
2057 { 0.74951596581511148, -0.30000000000000004, 0.90000000000000002,
2058 0.87266462599716477 },
2059 { 0.86189886597755994, -0.30000000000000004, 0.90000000000000002,
2060 1.0471975511965976 },
2061 { 0.96629451153092005, -0.30000000000000004, 0.90000000000000002,
2062 1.2217304763960306 },
2063 { 1.0655269133492682, -0.30000000000000004, 0.90000000000000002,
2064 1.3962634015954636 },
2065 { 1.1622376896064914, -0.30000000000000004, 0.90000000000000002,
2066 1.5707963267948966 },
2068 const double toler070
= 2.5000000000000020e-13;
2070 // Test data for k=-0.19999999999999996, nu=0.0000000000000000.
2071 // max(|f - f_GSL|): 4.4408920985006262e-16
2072 // max(|f - f_GSL| / |f_GSL|): 4.2156475739151676e-16
2073 const testcase_ellint_3
<double>
2076 { 0.0000000000000000, -0.19999999999999996, 0.0000000000000000,
2077 0.0000000000000000 },
2078 { 0.17456817290292809, -0.19999999999999996, 0.0000000000000000,
2079 0.17453292519943295 },
2080 { 0.34934315932086801, -0.19999999999999996, 0.0000000000000000,
2081 0.34906585039886590 },
2082 { 0.52450880529443988, -0.19999999999999996, 0.0000000000000000,
2083 0.52359877559829882 },
2084 { 0.70020491009844876, -0.19999999999999996, 0.0000000000000000,
2085 0.69813170079773179 },
2086 { 0.87651006649967955, -0.19999999999999996, 0.0000000000000000,
2087 0.87266462599716477 },
2088 { 1.0534305870298994, -0.19999999999999996, 0.0000000000000000,
2089 1.0471975511965976 },
2090 { 1.2308975521670784, -0.19999999999999996, 0.0000000000000000,
2091 1.2217304763960306 },
2092 { 1.4087733584990738, -0.19999999999999996, 0.0000000000000000,
2093 1.3962634015954636 },
2094 { 1.5868678474541660, -0.19999999999999996, 0.0000000000000000,
2095 1.5707963267948966 },
2097 const double toler071
= 2.5000000000000020e-13;
2099 // Test data for k=-0.19999999999999996, nu=0.10000000000000001.
2100 // max(|f - f_GSL|): 4.4408920985006262e-16
2101 // max(|f - f_GSL| / |f_GSL|): 4.3374593253183472e-16
2102 const testcase_ellint_3
<double>
2105 { 0.0000000000000000, -0.19999999999999996, 0.10000000000000001,
2106 0.0000000000000000 },
2107 { 0.17439228502691748, -0.19999999999999996, 0.10000000000000001,
2108 0.17453292519943295 },
2109 { 0.34796731137565740, -0.19999999999999996, 0.10000000000000001,
2110 0.34906585039886590 },
2111 { 0.52003370294544848, -0.19999999999999996, 0.10000000000000001,
2112 0.52359877559829882 },
2113 { 0.69012222258631462, -0.19999999999999996, 0.10000000000000001,
2114 0.69813170079773179 },
2115 { 0.85803491465566772, -0.19999999999999996, 0.10000000000000001,
2116 0.87266462599716477 },
2117 { 1.0238463961099364, -0.19999999999999996, 0.10000000000000001,
2118 1.0471975511965976 },
2119 { 1.1878691059202153, -0.19999999999999996, 0.10000000000000001,
2120 1.2217304763960306 },
2121 { 1.3505985031831940, -0.19999999999999996, 0.10000000000000001,
2122 1.3962634015954636 },
2123 { 1.5126513474261087, -0.19999999999999996, 0.10000000000000001,
2124 1.5707963267948966 },
2126 const double toler072
= 2.5000000000000020e-13;
2128 // Test data for k=-0.19999999999999996, nu=0.20000000000000001.
2129 // max(|f - f_GSL|): 4.4408920985006262e-16
2130 // max(|f - f_GSL| / |f_GSL|): 4.4549984059502760e-16
2131 const testcase_ellint_3
<double>
2134 { 0.0000000000000000, -0.19999999999999996, 0.20000000000000001,
2135 0.0000000000000000 },
2136 { 0.17421703179583747, -0.19999999999999996, 0.20000000000000001,
2137 0.17453292519943295 },
2138 { 0.34661057411998791, -0.19999999999999996, 0.20000000000000001,
2139 0.34906585039886590 },
2140 { 0.51569006052647393, -0.19999999999999996, 0.20000000000000001,
2141 0.52359877559829882 },
2142 { 0.68052412821107244, -0.19999999999999996, 0.20000000000000001,
2143 0.69813170079773179 },
2144 { 0.84081341263313825, -0.19999999999999996, 0.20000000000000001,
2145 0.87266462599716477 },
2146 { 0.99683359988842890, -0.19999999999999996, 0.20000000000000001,
2147 1.0471975511965976 },
2148 { 1.1493086715118852, -0.19999999999999996, 0.20000000000000001,
2149 1.2217304763960306 },
2150 { 1.2992699693957541, -0.19999999999999996, 0.20000000000000001,
2151 1.3962634015954636 },
2152 { 1.4479323932249564, -0.19999999999999996, 0.20000000000000001,
2153 1.5707963267948966 },
2155 const double toler073
= 2.5000000000000020e-13;
2157 // Test data for k=-0.19999999999999996, nu=0.29999999999999999.
2158 // max(|f - f_GSL|): 6.6613381477509392e-16
2159 // max(|f - f_GSL| / |f_GSL|): 5.3140668101543467e-16
2160 const testcase_ellint_3
<double>
2163 { 0.0000000000000000, -0.19999999999999996, 0.29999999999999999,
2164 0.0000000000000000 },
2165 { 0.17404240913577704, -0.19999999999999996, 0.29999999999999999,
2166 0.17453292519943295 },
2167 { 0.34527248032587193, -0.19999999999999996, 0.29999999999999999,
2168 0.34906585039886590 },
2169 { 0.51147118981668416, -0.19999999999999996, 0.29999999999999999,
2170 0.52359877559829882 },
2171 { 0.67137107867777601, -0.19999999999999996, 0.29999999999999999,
2172 0.69813170079773179 },
2173 { 0.82470418188668893, -0.19999999999999996, 0.29999999999999999,
2174 0.87266462599716477 },
2175 { 0.97202873223594299, -0.19999999999999996, 0.29999999999999999,
2176 1.0471975511965976 },
2177 { 1.1144773569375266, -0.19999999999999996, 0.29999999999999999,
2178 1.2217304763960306 },
2179 { 1.2535292433701000, -0.19999999999999996, 0.29999999999999999,
2180 1.3962634015954636 },
2181 { 1.3908453514752477, -0.19999999999999996, 0.29999999999999999,
2182 1.5707963267948966 },
2184 const double toler074
= 2.5000000000000020e-13;
2186 // Test data for k=-0.19999999999999996, nu=0.40000000000000002.
2187 // max(|f - f_GSL|): 4.4408920985006262e-16
2188 // max(|f - f_GSL| / |f_GSL|): 4.6788709752760483e-16
2189 const testcase_ellint_3
<double>
2192 { 0.0000000000000000, -0.19999999999999996, 0.40000000000000002,
2193 0.0000000000000000 },
2194 { 0.17386841301066674, -0.19999999999999996, 0.40000000000000002,
2195 0.17453292519943295 },
2196 { 0.34395257914113253, -0.19999999999999996, 0.40000000000000002,
2197 0.34906585039886590 },
2198 { 0.50737088376869466, -0.19999999999999996, 0.40000000000000002,
2199 0.52359877559829882 },
2200 { 0.66262801717277631, -0.19999999999999996, 0.40000000000000002,
2201 0.69813170079773179 },
2202 { 0.80958766645079094, -0.19999999999999996, 0.40000000000000002,
2203 0.87266462599716477 },
2204 { 0.94913754236162040, -0.19999999999999996, 0.40000000000000002,
2205 1.0471975511965976 },
2206 { 1.0827985514222997, -0.19999999999999996, 0.40000000000000002,
2207 1.2217304763960306 },
2208 { 1.2124212429050478, -0.19999999999999996, 0.40000000000000002,
2209 1.3962634015954636 },
2210 { 1.3400002519661005, -0.19999999999999996, 0.40000000000000002,
2211 1.5707963267948966 },
2213 const double toler075
= 2.5000000000000020e-13;
2215 // Test data for k=-0.19999999999999996, nu=0.50000000000000000.
2216 // max(|f - f_GSL|): 4.4408920985006262e-16
2217 // max(|f - f_GSL| / |f_GSL|): 3.7788201301356829e-16
2218 const testcase_ellint_3
<double>
2221 { 0.0000000000000000, -0.19999999999999996, 0.50000000000000000,
2222 0.0000000000000000 },
2223 { 0.17369503942181799, -0.19999999999999996, 0.50000000000000000,
2224 0.17453292519943295 },
2225 { 0.34265043534362660, -0.19999999999999996, 0.50000000000000000,
2226 0.34906585039886590 },
2227 { 0.50338337208655415, -0.19999999999999996, 0.50000000000000000,
2228 0.52359877559829882 },
2229 { 0.65426373297163609, -0.19999999999999996, 0.50000000000000000,
2230 0.69813170079773179 },
2231 { 0.79536193036145808, -0.19999999999999996, 0.50000000000000000,
2232 0.87266462599716477 },
2233 { 0.92791875910061605, -0.19999999999999996, 0.50000000000000000,
2234 1.0471975511965976 },
2235 { 1.0538145052725829, -0.19999999999999996, 0.50000000000000000,
2236 1.2217304763960306 },
2237 { 1.1752060022875899, -0.19999999999999996, 0.50000000000000000,
2238 1.3962634015954636 },
2239 { 1.2943374404397372, -0.19999999999999996, 0.50000000000000000,
2240 1.5707963267948966 },
2242 const double toler076
= 2.5000000000000020e-13;
2244 // Test data for k=-0.19999999999999996, nu=0.59999999999999998.
2245 // max(|f - f_GSL|): 4.4408920985006262e-16
2246 // max(|f - f_GSL| / |f_GSL|): 4.8899223779598256e-16
2247 const testcase_ellint_3
<double>
2250 { 0.0000000000000000, -0.19999999999999996, 0.59999999999999998,
2251 0.0000000000000000 },
2252 { 0.17352228440746925, -0.19999999999999996, 0.59999999999999998,
2253 0.17453292519943295 },
2254 { 0.34136562863713626, -0.19999999999999996, 0.59999999999999998,
2255 0.34906585039886590 },
2256 { 0.49950328177638481, -0.19999999999999996, 0.59999999999999998,
2257 0.52359877559829882 },
2258 { 0.64625032705690799, -0.19999999999999996, 0.59999999999999998,
2259 0.69813170079773179 },
2260 { 0.78193941198403083, -0.19999999999999996, 0.59999999999999998,
2261 0.87266462599716477 },
2262 { 0.90817230934317128, -0.19999999999999996, 0.59999999999999998,
2263 1.0471975511965976 },
2264 { 1.0271563751276462, -0.19999999999999996, 0.59999999999999998,
2265 1.2217304763960306 },
2266 { 1.1412999379040518, -0.19999999999999996, 0.59999999999999998,
2267 1.3962634015954636 },
2268 { 1.2530330675914556, -0.19999999999999996, 0.59999999999999998,
2269 1.5707963267948966 },
2271 const double toler077
= 2.5000000000000020e-13;
2273 // Test data for k=-0.19999999999999996, nu=0.69999999999999996.
2274 // max(|f - f_GSL|): 6.6613381477509392e-16
2275 // max(|f - f_GSL| / |f_GSL|): 5.9999318361775115e-16
2276 const testcase_ellint_3
<double>
2279 { 0.0000000000000000, -0.19999999999999996, 0.69999999999999996,
2280 0.0000000000000000 },
2281 { 0.17335014404233895, -0.19999999999999996, 0.69999999999999996,
2282 0.17453292519943295 },
2283 { 0.34009775298617811, -0.19999999999999996, 0.69999999999999996,
2284 0.34906585039886590 },
2285 { 0.49572560201923810, -0.19999999999999996, 0.69999999999999996,
2286 0.52359877559829882 },
2287 { 0.63856276669886503, -0.19999999999999996, 0.69999999999999996,
2288 0.69813170079773179 },
2289 { 0.76924438644867565, -0.19999999999999996, 0.69999999999999996,
2290 0.87266462599716477 },
2291 { 0.88973060843856466, -0.19999999999999996, 0.69999999999999996,
2292 1.0471975511965976 },
2293 { 1.0025230471636377, -0.19999999999999996, 0.69999999999999996,
2294 1.2217304763960306 },
2295 { 1.1102356376093103, -0.19999999999999996, 0.69999999999999996,
2296 1.3962634015954636 },
2297 { 1.2154356555075863, -0.19999999999999996, 0.69999999999999996,
2298 1.5707963267948966 },
2300 const double toler078
= 2.5000000000000020e-13;
2302 // Test data for k=-0.19999999999999996, nu=0.80000000000000004.
2303 // max(|f - f_GSL|): 4.4408920985006262e-16
2304 // max(|f - f_GSL| / |f_GSL|): 5.0901276230707249e-16
2305 const testcase_ellint_3
<double>
2308 { 0.0000000000000000, -0.19999999999999996, 0.80000000000000004,
2309 0.0000000000000000 },
2310 { 0.17317861443718538, -0.19999999999999996, 0.80000000000000004,
2311 0.17453292519943295 },
2312 { 0.33884641598718701, -0.19999999999999996, 0.80000000000000004,
2313 0.34906585039886590 },
2314 { 0.49204565281259494, -0.19999999999999996, 0.80000000000000004,
2315 0.52359877559829882 },
2316 { 0.63117851188220320, -0.19999999999999996, 0.80000000000000004,
2317 0.69813170079773179 },
2318 { 0.75721095949544170, -0.19999999999999996, 0.80000000000000004,
2319 0.87266462599716477 },
2320 { 0.87245201443919118, -0.19999999999999996, 0.80000000000000004,
2321 1.0471975511965976 },
2322 { 0.97966584238831089, -0.19999999999999996, 0.80000000000000004,
2323 1.2217304763960306 },
2324 { 1.0816336325174360, -0.19999999999999996, 0.80000000000000004,
2325 1.3962634015954636 },
2326 { 1.1810223448909909, -0.19999999999999996, 0.80000000000000004,
2327 1.5707963267948966 },
2329 const double toler079
= 2.5000000000000020e-13;
2331 // Test data for k=-0.19999999999999996, nu=0.90000000000000002.
2332 // max(|f - f_GSL|): 6.6613381477509392e-16
2333 // max(|f - f_GSL| / |f_GSL|): 6.4833128442756722e-16
2334 const testcase_ellint_3
<double>
2337 { 0.0000000000000000, -0.19999999999999996, 0.90000000000000002,
2338 0.0000000000000000 },
2339 { 0.17300769173837277, -0.19999999999999996, 0.90000000000000002,
2340 0.17453292519943295 },
2341 { 0.33761123827372508, -0.19999999999999996, 0.90000000000000002,
2342 0.34906585039886590 },
2343 { 0.48845905690769426, -0.19999999999999996, 0.90000000000000002,
2344 0.52359877559829882 },
2345 { 0.62407720017324952, -0.19999999999999996, 0.90000000000000002,
2346 0.69813170079773179 },
2347 { 0.74578146525124289, -0.19999999999999996, 0.90000000000000002,
2348 0.87266462599716477 },
2349 { 0.85621583540073076, -0.19999999999999996, 0.90000000000000002,
2350 1.0471975511965976 },
2351 { 0.95837725988001199, -0.19999999999999996, 0.90000000000000002,
2352 1.2217304763960306 },
2353 { 1.0551821412633928, -0.19999999999999996, 0.90000000000000002,
2354 1.3962634015954636 },
2355 { 1.1493679916141861, -0.19999999999999996, 0.90000000000000002,
2356 1.5707963267948966 },
2358 const double toler080
= 2.5000000000000020e-13;
2360 // Test data for k=-0.099999999999999978, nu=0.0000000000000000.
2361 // max(|f - f_GSL|): 4.4408920985006262e-16
2362 // max(|f - f_GSL| / |f_GSL|): 3.1735566504509650e-16
2363 const testcase_ellint_3
<double>
2366 { 0.0000000000000000, -0.099999999999999978, 0.0000000000000000,
2367 0.0000000000000000 },
2368 { 0.17454173353063659, -0.099999999999999978, 0.0000000000000000,
2369 0.17453292519943295 },
2370 { 0.34913506721468091, -0.099999999999999978, 0.0000000000000000,
2371 0.34906585039886590 },
2372 { 0.52382550016538942, -0.099999999999999978, 0.0000000000000000,
2373 0.52359877559829882 },
2374 { 0.69864700854177020, -0.099999999999999978, 0.0000000000000000,
2375 0.69813170079773179 },
2376 { 0.87361792586964870, -0.099999999999999978, 0.0000000000000000,
2377 0.87266462599716477 },
2378 { 1.0487386319621683, -0.099999999999999978, 0.0000000000000000,
2379 1.0471975511965976 },
2380 { 1.2239913752078757, -0.099999999999999978, 0.0000000000000000,
2381 1.2217304763960306 },
2382 { 1.3993423113684049, -0.099999999999999978, 0.0000000000000000,
2383 1.3962634015954636 },
2384 { 1.5747455615173562, -0.099999999999999978, 0.0000000000000000,
2385 1.5707963267948966 },
2387 const double toler081
= 2.5000000000000020e-13;
2389 // Test data for k=-0.099999999999999978, nu=0.10000000000000001.
2390 // max(|f - f_GSL|): 4.4408920985006262e-16
2391 // max(|f - f_GSL| / |f_GSL|): 3.3097339877269682e-16
2392 const testcase_ellint_3
<double>
2395 { 0.0000000000000000, -0.099999999999999978, 0.10000000000000001,
2396 0.0000000000000000 },
2397 { 0.17436589347616613, -0.099999999999999978, 0.10000000000000001,
2398 0.17453292519943295 },
2399 { 0.34776067871237359, -0.099999999999999978, 0.10000000000000001,
2400 0.34906585039886590 },
2401 { 0.51936064354727796, -0.099999999999999978, 0.10000000000000001,
2402 0.52359877559829882 },
2403 { 0.68860303749364349, -0.099999999999999978, 0.10000000000000001,
2404 0.69813170079773179 },
2405 { 0.85524561882332051, -0.099999999999999978, 0.10000000000000001,
2406 0.87266462599716477 },
2407 { 1.0193708301908335, -0.099999999999999978, 0.10000000000000001,
2408 1.0471975511965976 },
2409 { 1.1813474067123044, -0.099999999999999978, 0.10000000000000001,
2410 1.2217304763960306 },
2411 { 1.3417670770424983, -0.099999999999999978, 0.10000000000000001,
2412 1.3962634015954636 },
2413 { 1.5013711111199950, -0.099999999999999978, 0.10000000000000001,
2414 1.5707963267948966 },
2416 const double toler082
= 2.5000000000000020e-13;
2418 // Test data for k=-0.099999999999999978, nu=0.20000000000000001.
2419 // max(|f - f_GSL|): 4.4408920985006262e-16
2420 // max(|f - f_GSL| / |f_GSL|): 3.4399947764827574e-16
2421 const testcase_ellint_3
<double>
2424 { 0.0000000000000000, -0.099999999999999978, 0.20000000000000001,
2425 0.0000000000000000 },
2426 { 0.17419068786141340, -0.099999999999999978, 0.20000000000000001,
2427 0.17453292519943295 },
2428 { 0.34640537686230133, -0.099999999999999978, 0.20000000000000001,
2429 0.34906585039886590 },
2430 { 0.51502689171753946, -0.099999999999999978, 0.20000000000000001,
2431 0.52359877559829882 },
2432 { 0.67904147863672715, -0.099999999999999978, 0.20000000000000001,
2433 0.69813170079773179 },
2434 { 0.83811885126105179, -0.099999999999999978, 0.20000000000000001,
2435 0.87266462599716477 },
2436 { 0.99255278555742787, -0.099999999999999978, 0.20000000000000001,
2437 1.0471975511965976 },
2438 { 1.1431260546194930, -0.099999999999999978, 0.20000000000000001,
2439 1.2217304763960306 },
2440 { 1.2909589656532101, -0.099999999999999978, 0.20000000000000001,
2441 1.3962634015954636 },
2442 { 1.4373749386463430, -0.099999999999999978, 0.20000000000000001,
2443 1.5707963267948966 },
2445 const double toler083
= 2.5000000000000020e-13;
2447 // Test data for k=-0.099999999999999978, nu=0.29999999999999999.
2448 // max(|f - f_GSL|): 4.4408920985006262e-16
2449 // max(|f - f_GSL| / |f_GSL|): 3.5650492137236872e-16
2450 const testcase_ellint_3
<double>
2453 { 0.0000000000000000, -0.099999999999999978, 0.29999999999999999,
2454 0.0000000000000000 },
2455 { 0.17401611261390104, -0.099999999999999978, 0.29999999999999999,
2456 0.17453292519943295 },
2457 { 0.34506869507511773, -0.099999999999999978, 0.29999999999999999,
2458 0.34906585039886590 },
2459 { 0.51081757604259859, -0.099999999999999978, 0.29999999999999999,
2460 0.52359877559829882 },
2461 { 0.66992297597712303, -0.099999999999999978, 0.29999999999999999,
2462 0.69813170079773179 },
2463 { 0.82209722856174228, -0.099999999999999978, 0.29999999999999999,
2464 0.87266462599716477 },
2465 { 0.96792430487669590, -0.099999999999999978, 0.29999999999999999,
2466 1.0471975511965976 },
2467 { 1.1085964108954092, -0.099999999999999978, 0.29999999999999999,
2468 1.2217304763960306 },
2469 { 1.2456748370836999, -0.099999999999999978, 0.29999999999999999,
2470 1.3962634015954636 },
2471 { 1.3809159606704959, -0.099999999999999978, 0.29999999999999999,
2472 1.5707963267948966 },
2474 const double toler084
= 2.5000000000000020e-13;
2476 // Test data for k=-0.099999999999999978, nu=0.40000000000000002.
2477 // max(|f - f_GSL|): 4.4408920985006262e-16
2478 // max(|f - f_GSL| / |f_GSL|): 3.6854758534459740e-16
2479 const testcase_ellint_3
<double>
2482 { 0.0000000000000000, -0.099999999999999978, 0.40000000000000002,
2483 0.0000000000000000 },
2484 { 0.17384216369897931, -0.099999999999999978, 0.40000000000000002,
2485 0.17453292519943295 },
2486 { 0.34375018311376787, -0.099999999999999978, 0.40000000000000002,
2487 0.34906585039886590 },
2488 { 0.50672650758380455, -0.099999999999999978, 0.40000000000000002,
2489 0.52359877559829882 },
2490 { 0.66121264213337616, -0.099999999999999978, 0.40000000000000002,
2491 0.69813170079773179 },
2492 { 0.80706202005774441, -0.099999999999999978, 0.40000000000000002,
2493 0.87266462599716477 },
2494 { 0.94519376138245870, -0.099999999999999978, 0.40000000000000002,
2495 1.0471975511965976 },
2496 { 1.0771880300759584, -0.099999999999999978, 0.40000000000000002,
2497 1.2217304763960306 },
2498 { 1.2049711557188272, -0.099999999999999978, 0.40000000000000002,
2499 1.3962634015954636 },
2500 { 1.3306223265207477, -0.099999999999999978, 0.40000000000000002,
2501 1.5707963267948966 },
2503 const double toler085
= 2.5000000000000020e-13;
2505 // Test data for k=-0.099999999999999978, nu=0.50000000000000000.
2506 // max(|f - f_GSL|): 4.4408920985006262e-16
2507 // max(|f - f_GSL| / |f_GSL|): 3.8017534281650347e-16
2508 const testcase_ellint_3
<double>
2511 { 0.0000000000000000, -0.099999999999999978, 0.50000000000000000,
2512 0.0000000000000000 },
2513 { 0.17366883711936548, -0.099999999999999978, 0.50000000000000000,
2514 0.17453292519943295 },
2515 { 0.34244940634881882, -0.099999999999999978, 0.50000000000000000,
2516 0.34906585039886590 },
2517 { 0.50274793281634367, -0.099999999999999978, 0.50000000000000000,
2518 0.52359877559829882 },
2519 { 0.65287941633275082, -0.099999999999999978, 0.50000000000000000,
2520 0.69813170079773179 },
2521 { 0.79291198790315398, -0.099999999999999978, 0.50000000000000000,
2522 0.87266462599716477 },
2523 { 0.92412201537880323, -0.099999999999999978, 0.50000000000000000,
2524 1.0471975511965976 },
2525 { 1.0484480076799372, -0.099999999999999978, 0.50000000000000000,
2526 1.2217304763960306 },
2527 { 1.1681168130475206, -0.099999999999999978, 0.50000000000000000,
2528 1.3962634015954636 },
2529 { 1.2854480708580160, -0.099999999999999978, 0.50000000000000000,
2530 1.5707963267948966 },
2532 const double toler086
= 2.5000000000000020e-13;
2534 // Test data for k=-0.099999999999999978, nu=0.59999999999999998.
2535 // max(|f - f_GSL|): 4.4408920985006262e-16
2536 // max(|f - f_GSL| / |f_GSL|): 3.9142834151672032e-16
2537 const testcase_ellint_3
<double>
2540 { 0.0000000000000000, -0.099999999999999978, 0.59999999999999998,
2541 0.0000000000000000 },
2542 { 0.17349612891469013, -0.099999999999999978, 0.59999999999999998,
2543 0.17453292519943295 },
2544 { 0.34116594505539444, -0.099999999999999978, 0.59999999999999998,
2545 0.34906585039886590 },
2546 { 0.49887649430466674, -0.099999999999999978, 0.59999999999999998,
2547 0.52359877559829882 },
2548 { 0.64489553282165146, -0.099999999999999978, 0.59999999999999998,
2549 0.69813170079773179 },
2550 { 0.77956016553782437, -0.099999999999999978, 0.59999999999999998,
2551 0.87266462599716477 },
2552 { 0.90451074530096287, -0.099999999999999978, 0.59999999999999998,
2553 1.0471975511965976 },
2554 { 1.0220113666961632, -0.099999999999999978, 0.59999999999999998,
2555 1.2217304763960306 },
2556 { 1.1345351441065563, -0.099999999999999978, 0.59999999999999998,
2557 1.3962634015954636 },
2558 { 1.2445798942989255, -0.099999999999999978, 0.59999999999999998,
2559 1.5707963267948966 },
2561 const double toler087
= 2.5000000000000020e-13;
2563 // Test data for k=-0.099999999999999978, nu=0.69999999999999996.
2564 // max(|f - f_GSL|): 6.6613381477509392e-16
2565 // max(|f - f_GSL| / |f_GSL|): 5.5172091551439012e-16
2566 const testcase_ellint_3
<double>
2569 { 0.0000000000000000, -0.099999999999999978, 0.69999999999999996,
2570 0.0000000000000000 },
2571 { 0.17332403516105047, -0.099999999999999978, 0.69999999999999996,
2572 0.17453292519943295 },
2573 { 0.33989939374896883, -0.099999999999999978, 0.69999999999999996,
2574 0.34906585039886590 },
2575 { 0.49510719568614070, -0.099999999999999978, 0.69999999999999996,
2576 0.52359877559829882 },
2577 { 0.63723607776354974, -0.099999999999999978, 0.69999999999999996,
2578 0.69813170079773179 },
2579 { 0.76693133887935327, -0.099999999999999978, 0.69999999999999996,
2580 0.87266462599716477 },
2581 { 0.88619382078823805, -0.099999999999999978, 0.69999999999999996,
2582 1.0471975511965976 },
2583 { 0.99758012018676490, -0.099999999999999978, 0.69999999999999996,
2584 1.2217304763960306 },
2585 { 1.1037642270814410, -0.099999999999999978, 0.69999999999999996,
2586 1.3962634015954636 },
2587 { 1.2073745911083185, -0.099999999999999978, 0.69999999999999996,
2588 1.5707963267948966 },
2590 const double toler088
= 2.5000000000000020e-13;
2592 // Test data for k=-0.099999999999999978, nu=0.80000000000000004.
2593 // max(|f - f_GSL|): 4.4408920985006262e-16
2594 // max(|f - f_GSL| / |f_GSL|): 4.1294144515772258e-16
2595 const testcase_ellint_3
<double>
2598 { 0.0000000000000000, -0.099999999999999978, 0.80000000000000004,
2599 0.0000000000000000 },
2600 { 0.17315255197057014, -0.099999999999999978, 0.80000000000000004,
2601 0.17453292519943295 },
2602 { 0.33864936055747991, -0.099999999999999978, 0.80000000000000004,
2603 0.34906585039886590 },
2604 { 0.49143537041117613, -0.099999999999999978, 0.80000000000000004,
2605 0.52359877559829882 },
2606 { 0.62987861760047492, -0.099999999999999978, 0.80000000000000004,
2607 0.69813170079773179 },
2608 { 0.75496005490917517, -0.099999999999999978, 0.80000000000000004,
2609 0.87266462599716477 },
2610 { 0.86903081862701881, -0.099999999999999978, 0.80000000000000004,
2611 1.0471975511965976 },
2612 { 0.97490814820725591, -0.099999999999999978, 0.80000000000000004,
2613 1.2217304763960306 },
2614 { 1.0754290107171083, -0.099999999999999978, 0.80000000000000004,
2615 1.3962634015954636 },
2616 { 1.1733158866987732, -0.099999999999999978, 0.80000000000000004,
2617 1.5707963267948966 },
2619 const double toler089
= 2.5000000000000020e-13;
2621 // Test data for k=-0.099999999999999978, nu=0.90000000000000002.
2622 // max(|f - f_GSL|): 4.4408920985006262e-16
2623 // max(|f - f_GSL| / |f_GSL|): 4.2325599449457852e-16
2624 const testcase_ellint_3
<double>
2627 { 0.0000000000000000, -0.099999999999999978, 0.90000000000000002,
2628 0.0000000000000000 },
2629 { 0.17298167549096563, -0.099999999999999978, 0.90000000000000002,
2630 0.17453292519943295 },
2631 { 0.33741546662741589, -0.099999999999999978, 0.90000000000000002,
2632 0.34906585039886590 },
2633 { 0.48785665376856868, -0.099999999999999978, 0.90000000000000002,
2634 0.52359877559829882 },
2635 { 0.62280288554518959, -0.099999999999999978, 0.90000000000000002,
2636 0.69813170079773179 },
2637 { 0.74358903115455188, -0.099999999999999978, 0.90000000000000002,
2638 0.87266462599716477 },
2639 { 0.85290207679298335, -0.099999999999999978, 0.90000000000000002,
2640 1.0471975511965976 },
2641 { 0.95379006645397379, -0.099999999999999978, 0.90000000000000002,
2642 1.2217304763960306 },
2643 { 1.0492213119872327, -0.099999999999999978, 0.90000000000000002,
2644 1.3962634015954636 },
2645 { 1.1419839485283374, -0.099999999999999978, 0.90000000000000002,
2646 1.5707963267948966 },
2648 const double toler090
= 2.5000000000000020e-13;
2650 // Test data for k=0.0000000000000000, nu=0.0000000000000000.
2651 // max(|f - f_GSL|): 2.2204460492503131e-16
2652 // max(|f - f_GSL| / |f_GSL|): 2.1203697876423452e-16
2653 const testcase_ellint_3
<double>
2656 { 0.0000000000000000, 0.0000000000000000, 0.0000000000000000,
2657 0.0000000000000000 },
2658 { 0.17453292519943292, 0.0000000000000000, 0.0000000000000000,
2659 0.17453292519943295 },
2660 { 0.34906585039886584, 0.0000000000000000, 0.0000000000000000,
2661 0.34906585039886590 },
2662 { 0.52359877559829870, 0.0000000000000000, 0.0000000000000000,
2663 0.52359877559829882 },
2664 { 0.69813170079773168, 0.0000000000000000, 0.0000000000000000,
2665 0.69813170079773179 },
2666 { 0.87266462599716477, 0.0000000000000000, 0.0000000000000000,
2667 0.87266462599716477 },
2668 { 1.0471975511965974, 0.0000000000000000, 0.0000000000000000,
2669 1.0471975511965976 },
2670 { 1.2217304763960304, 0.0000000000000000, 0.0000000000000000,
2671 1.2217304763960306 },
2672 { 1.3962634015954631, 0.0000000000000000, 0.0000000000000000,
2673 1.3962634015954636 },
2674 { 1.5707963267948966, 0.0000000000000000, 0.0000000000000000,
2675 1.5707963267948966 },
2677 const double toler091
= 2.5000000000000020e-13;
2679 // Test data for k=0.0000000000000000, nu=0.10000000000000001.
2680 // max(|f - f_GSL|): 2.2204460492503131e-16
2681 // max(|f - f_GSL| / |f_GSL|): 2.1813975824747021e-16
2682 const testcase_ellint_3
<double>
2685 { 0.0000000000000000, 0.0000000000000000, 0.10000000000000001,
2686 0.0000000000000000 },
2687 { 0.17435710107516605, 0.0000000000000000, 0.10000000000000001,
2688 0.17453292519943295 },
2689 { 0.34769194715329604, 0.0000000000000000, 0.10000000000000001,
2690 0.34906585039886590 },
2691 { 0.51913731575866107, 0.0000000000000000, 0.10000000000000001,
2692 0.52359877559829882 },
2693 { 0.68810051897078450, 0.0000000000000000, 0.10000000000000001,
2694 0.69813170079773179 },
2695 { 0.85432615661706823, 0.0000000000000000, 0.10000000000000001,
2696 0.87266462599716477 },
2697 { 1.0179006647340794, 0.0000000000000000, 0.10000000000000001,
2698 1.0471975511965976 },
2699 { 1.1792120640746322, 0.0000000000000000, 0.10000000000000001,
2700 1.2217304763960306 },
2701 { 1.3388834245070498, 0.0000000000000000, 0.10000000000000001,
2702 1.3962634015954636 },
2703 { 1.4976955329233277, 0.0000000000000000, 0.10000000000000001,
2704 1.5707963267948966 },
2706 const double toler092
= 2.5000000000000020e-13;
2708 // Test data for k=0.0000000000000000, nu=0.20000000000000001.
2709 // max(|f - f_GSL|): 2.2204460492503131e-16
2710 // max(|f - f_GSL| / |f_GSL|): 2.2402804784409065e-16
2711 const testcase_ellint_3
<double>
2714 { 0.0000000000000000, 0.0000000000000000, 0.20000000000000001,
2715 0.0000000000000000 },
2716 { 0.17418191132226074, 0.0000000000000000, 0.20000000000000001,
2717 0.17453292519943295 },
2718 { 0.34633712256943405, 0.0000000000000000, 0.20000000000000001,
2719 0.34906585039886590 },
2720 { 0.51480684302043700, 0.0000000000000000, 0.20000000000000001,
2721 0.52359877559829882 },
2722 { 0.67855102942481937, 0.0000000000000000, 0.20000000000000001,
2723 0.69813170079773179 },
2724 { 0.83723056090326253, 0.0000000000000000, 0.20000000000000001,
2725 0.87266462599716477 },
2726 { 0.99114645269578161, 0.0000000000000000, 0.20000000000000001,
2727 1.0471975511965976 },
2728 { 1.1411014627915537, 0.0000000000000000, 0.20000000000000001,
2729 1.2217304763960306 },
2730 { 1.2882448138013969, 0.0000000000000000, 0.20000000000000001,
2731 1.3962634015954636 },
2732 { 1.4339343023863691, 0.0000000000000000, 0.20000000000000001,
2733 1.5707963267948966 },
2735 const double toler093
= 2.5000000000000020e-13;
2737 // Test data for k=0.0000000000000000, nu=0.29999999999999999.
2738 // max(|f - f_GSL|): 2.2204460492503131e-16
2739 // max(|f - f_GSL| / |f_GSL|): 2.2972291118632678e-16
2740 const testcase_ellint_3
<double>
2743 { 0.0000000000000000, 0.0000000000000000, 0.29999999999999999,
2744 0.0000000000000000 },
2745 { 0.17400735186871724, 0.0000000000000000, 0.29999999999999999,
2746 0.17453292519943295 },
2747 { 0.34500091027020219, 0.0000000000000000, 0.29999999999999999,
2748 0.34906585039886590 },
2749 { 0.51060069523901530, 0.0000000000000000, 0.29999999999999999,
2750 0.52359877559829882 },
2751 { 0.66944393961375448, 0.0000000000000000, 0.29999999999999999,
2752 0.69813170079773179 },
2753 { 0.82123776744538157, 0.0000000000000000, 0.29999999999999999,
2754 0.87266462599716477 },
2755 { 0.96657579245516501, 0.0000000000000000, 0.29999999999999999,
2756 1.0471975511965976 },
2757 { 1.1066703663542414, 0.0000000000000000, 0.29999999999999999,
2758 1.2217304763960306 },
2759 { 1.2431094251944901, 0.0000000000000000, 0.29999999999999999,
2760 1.3962634015954636 },
2761 { 1.3776795151134889, 0.0000000000000000, 0.29999999999999999,
2762 1.5707963267948966 },
2764 const double toler094
= 2.5000000000000020e-13;
2766 // Test data for k=0.0000000000000000, nu=0.40000000000000002.
2767 // max(|f - f_GSL|): 2.2204460492503131e-16
2768 // max(|f - f_GSL| / |f_GSL|): 2.3524218164111537e-16
2769 const testcase_ellint_3
<double>
2772 { 0.0000000000000000, 0.0000000000000000, 0.40000000000000002,
2773 0.0000000000000000 },
2774 { 0.17383341868035862, 0.0000000000000000, 0.40000000000000002,
2775 0.17453292519943295 },
2776 { 0.34368286022299821, 0.0000000000000000, 0.40000000000000002,
2777 0.34906585039886590 },
2778 { 0.50651268947499395, 0.0000000000000000, 0.40000000000000002,
2779 0.52359877559829882 },
2780 { 0.66074441806097539, 0.0000000000000000, 0.40000000000000002,
2781 0.69813170079773179 },
2782 { 0.80622931670113474, 0.0000000000000000, 0.40000000000000002,
2783 0.87266462599716477 },
2784 { 0.94389791565435210, 0.0000000000000000, 0.40000000000000002,
2785 1.0471975511965976 },
2786 { 1.0753503387899728, 0.0000000000000000, 0.40000000000000002,
2787 1.2217304763960306 },
2788 { 1.2025374759127518, 0.0000000000000000, 0.40000000000000002,
2789 1.3962634015954636 },
2790 { 1.3275651989026320, 0.0000000000000000, 0.40000000000000002,
2791 1.5707963267948966 },
2793 const double toler095
= 2.5000000000000020e-13;
2795 // Test data for k=0.0000000000000000, nu=0.50000000000000000.
2796 // max(|f - f_GSL|): 3.3306690738754696e-16
2797 // max(|f - f_GSL| / |f_GSL|): 3.6090167266677240e-16
2798 const testcase_ellint_3
<double>
2801 { 0.0000000000000000, 0.0000000000000000, 0.50000000000000000,
2802 0.0000000000000000 },
2803 { 0.17366010776037044, 0.0000000000000000, 0.50000000000000000,
2804 0.17453292519943295 },
2805 { 0.34238253799539309, 0.0000000000000000, 0.50000000000000000,
2806 0.34906585039886590 },
2807 { 0.50253707775976397, 0.0000000000000000, 0.50000000000000000,
2808 0.52359877559829882 },
2809 { 0.65242145347295766, 0.0000000000000000, 0.50000000000000000,
2810 0.69813170079773179 },
2811 { 0.79210420018698058, 0.0000000000000000, 0.50000000000000000,
2812 0.87266462599716477 },
2813 { 0.92287437995632171, 0.0000000000000000, 0.50000000000000000,
2814 1.0471975511965976 },
2815 { 1.0466900550798659, 0.0000000000000000, 0.50000000000000000,
2816 1.2217304763960306 },
2817 { 1.1658007366618623, 0.0000000000000000, 0.50000000000000000,
2818 1.3962634015954636 },
2819 { 1.2825498301618641, 0.0000000000000000, 0.50000000000000000,
2820 1.5707963267948966 },
2822 const double toler096
= 2.5000000000000020e-13;
2824 // Test data for k=0.0000000000000000, nu=0.59999999999999998.
2825 // max(|f - f_GSL|): 2.2204460492503131e-16
2826 // max(|f - f_GSL| / |f_GSL|): 2.4581288258006758e-16
2827 const testcase_ellint_3
<double>
2830 { 0.0000000000000000, 0.0000000000000000, 0.59999999999999998,
2831 0.0000000000000000 },
2832 { 0.17348741514884700, 0.0000000000000000, 0.59999999999999998,
2833 0.17453292519943295 },
2834 { 0.34109952405241289, 0.0000000000000000, 0.59999999999999998,
2835 0.34906585039886590 },
2836 { 0.49866850781226285, 0.0000000000000000, 0.59999999999999998,
2837 0.52359877559829882 },
2838 { 0.64444732407062499, 0.0000000000000000, 0.59999999999999998,
2839 0.69813170079773179 },
2840 { 0.77877564686544720, 0.0000000000000000, 0.59999999999999998,
2841 0.87266462599716477 },
2842 { 0.90330743691883475, 0.0000000000000000, 0.59999999999999998,
2843 1.0471975511965976 },
2844 { 1.0203257987604104, 0.0000000000000000, 0.59999999999999998,
2845 1.2217304763960306 },
2846 { 1.1323247918768629, 0.0000000000000000, 0.59999999999999998,
2847 1.3962634015954636 },
2848 { 1.2418235332245127, 0.0000000000000000, 0.59999999999999998,
2849 1.5707963267948966 },
2851 const double toler097
= 2.5000000000000020e-13;
2853 // Test data for k=0.0000000000000000, nu=0.69999999999999996.
2854 // max(|f - f_GSL|): 2.2204460492503131e-16
2855 // max(|f - f_GSL| / |f_GSL|): 2.5088894797856263e-16
2856 const testcase_ellint_3
<double>
2859 { 0.0000000000000000, 0.0000000000000000, 0.69999999999999996,
2860 0.0000000000000000 },
2861 { 0.17331533692234474, 0.0000000000000000, 0.69999999999999996,
2862 0.17453292519943295 },
2863 { 0.33983341309265935, 0.0000000000000000, 0.69999999999999996,
2864 0.34906585039886590 },
2865 { 0.49490198805931979, 0.0000000000000000, 0.69999999999999996,
2866 0.52359877559829882 },
2867 { 0.63679715525145297, 0.0000000000000000, 0.69999999999999996,
2868 0.69813170079773179 },
2869 { 0.76616861049481944, 0.0000000000000000, 0.69999999999999996,
2870 0.87266462599716477 },
2871 { 0.88503143209004198, 0.0000000000000000, 0.69999999999999996,
2872 1.0471975511965976 },
2873 { 0.99596060249112173, 0.0000000000000000, 0.69999999999999996,
2874 1.2217304763960306 },
2875 { 1.1016495050260424, 0.0000000000000000, 0.69999999999999996,
2876 1.3962634015954636 },
2877 { 1.2047457872617382, 0.0000000000000000, 0.69999999999999996,
2878 1.5707963267948966 },
2880 const double toler098
= 2.5000000000000020e-13;
2882 // Test data for k=0.0000000000000000, nu=0.80000000000000004.
2883 // max(|f - f_GSL|): 3.3306690738754696e-16
2884 // max(|f - f_GSL| / |f_GSL|): 3.8375904358197891e-16
2885 const testcase_ellint_3
<double>
2888 { 0.0000000000000000, 0.0000000000000000, 0.80000000000000004,
2889 0.0000000000000000 },
2890 { 0.17314386919344210, 0.0000000000000000, 0.80000000000000004,
2891 0.17453292519943295 },
2892 { 0.33858381342073240, 0.0000000000000000, 0.80000000000000004,
2893 0.34906585039886590 },
2894 { 0.49123285640844727, 0.0000000000000000, 0.80000000000000004,
2895 0.52359877559829882 },
2896 { 0.62944854858904509, 0.0000000000000000, 0.80000000000000004,
2897 0.69813170079773179 },
2898 { 0.75421778305499343, 0.0000000000000000, 0.80000000000000004,
2899 0.87266462599716477 },
2900 { 0.86790634112156617, 0.0000000000000000, 0.80000000000000004,
2901 1.0471975511965976 },
2902 { 0.97334918087427558, 0.0000000000000000, 0.80000000000000004,
2903 1.2217304763960306 },
2904 { 1.0734012615283985, 0.0000000000000000, 0.80000000000000004,
2905 1.3962634015954636 },
2906 { 1.1708024551734544, 0.0000000000000000, 0.80000000000000004,
2907 1.5707963267948966 },
2909 const double toler099
= 2.5000000000000020e-13;
2911 // Test data for k=0.0000000000000000, nu=0.90000000000000002.
2912 // max(|f - f_GSL|): 1.1102230246251565e-16
2913 // max(|f - f_GSL| / |f_GSL|): 1.7838310376154469e-16
2914 const testcase_ellint_3
<double>
2917 { 0.0000000000000000, 0.0000000000000000, 0.90000000000000002,
2918 0.0000000000000000 },
2919 { 0.17297300811030597, 0.0000000000000000, 0.90000000000000002,
2920 0.17453292519943295 },
2921 { 0.33735034635360817, 0.0000000000000000, 0.90000000000000002,
2922 0.34906585039886590 },
2923 { 0.48765675230233130, 0.0000000000000000, 0.90000000000000002,
2924 0.52359877559829882 },
2925 { 0.62238126886123568, 0.0000000000000000, 0.90000000000000002,
2926 0.69813170079773179 },
2927 { 0.74286600807269243, 0.0000000000000000, 0.90000000000000002,
2928 0.87266462599716477 },
2929 { 0.85181283909264949, 0.0000000000000000, 0.90000000000000002,
2930 1.0471975511965976 },
2931 { 0.95228683995371133, 0.0000000000000000, 0.90000000000000002,
2932 1.2217304763960306 },
2933 { 1.0472730487412552, 0.0000000000000000, 0.90000000000000002,
2934 1.3962634015954636 },
2935 { 1.1395754288497419, 0.0000000000000000, 0.90000000000000002,
2936 1.5707963267948966 },
2938 const double toler100
= 2.5000000000000020e-13;
2940 // Test data for k=0.10000000000000009, nu=0.0000000000000000.
2941 // max(|f - f_GSL|): 4.4408920985006262e-16
2942 // max(|f - f_GSL| / |f_GSL|): 3.1735566504509650e-16
2943 const testcase_ellint_3
<double>
2946 { 0.0000000000000000, 0.10000000000000009, 0.0000000000000000,
2947 0.0000000000000000 },
2948 { 0.17454173353063659, 0.10000000000000009, 0.0000000000000000,
2949 0.17453292519943295 },
2950 { 0.34913506721468091, 0.10000000000000009, 0.0000000000000000,
2951 0.34906585039886590 },
2952 { 0.52382550016538942, 0.10000000000000009, 0.0000000000000000,
2953 0.52359877559829882 },
2954 { 0.69864700854177020, 0.10000000000000009, 0.0000000000000000,
2955 0.69813170079773179 },
2956 { 0.87361792586964870, 0.10000000000000009, 0.0000000000000000,
2957 0.87266462599716477 },
2958 { 1.0487386319621683, 0.10000000000000009, 0.0000000000000000,
2959 1.0471975511965976 },
2960 { 1.2239913752078757, 0.10000000000000009, 0.0000000000000000,
2961 1.2217304763960306 },
2962 { 1.3993423113684049, 0.10000000000000009, 0.0000000000000000,
2963 1.3962634015954636 },
2964 { 1.5747455615173562, 0.10000000000000009, 0.0000000000000000,
2965 1.5707963267948966 },
2967 const double toler101
= 2.5000000000000020e-13;
2969 // Test data for k=0.10000000000000009, nu=0.10000000000000001.
2970 // max(|f - f_GSL|): 4.4408920985006262e-16
2971 // max(|f - f_GSL| / |f_GSL|): 3.3097339877269682e-16
2972 const testcase_ellint_3
<double>
2975 { 0.0000000000000000, 0.10000000000000009, 0.10000000000000001,
2976 0.0000000000000000 },
2977 { 0.17436589347616613, 0.10000000000000009, 0.10000000000000001,
2978 0.17453292519943295 },
2979 { 0.34776067871237359, 0.10000000000000009, 0.10000000000000001,
2980 0.34906585039886590 },
2981 { 0.51936064354727796, 0.10000000000000009, 0.10000000000000001,
2982 0.52359877559829882 },
2983 { 0.68860303749364349, 0.10000000000000009, 0.10000000000000001,
2984 0.69813170079773179 },
2985 { 0.85524561882332051, 0.10000000000000009, 0.10000000000000001,
2986 0.87266462599716477 },
2987 { 1.0193708301908335, 0.10000000000000009, 0.10000000000000001,
2988 1.0471975511965976 },
2989 { 1.1813474067123044, 0.10000000000000009, 0.10000000000000001,
2990 1.2217304763960306 },
2991 { 1.3417670770424983, 0.10000000000000009, 0.10000000000000001,
2992 1.3962634015954636 },
2993 { 1.5013711111199950, 0.10000000000000009, 0.10000000000000001,
2994 1.5707963267948966 },
2996 const double toler102
= 2.5000000000000020e-13;
2998 // Test data for k=0.10000000000000009, nu=0.20000000000000001.
2999 // max(|f - f_GSL|): 4.4408920985006262e-16
3000 // max(|f - f_GSL| / |f_GSL|): 3.4399947764827574e-16
3001 const testcase_ellint_3
<double>
3004 { 0.0000000000000000, 0.10000000000000009, 0.20000000000000001,
3005 0.0000000000000000 },
3006 { 0.17419068786141340, 0.10000000000000009, 0.20000000000000001,
3007 0.17453292519943295 },
3008 { 0.34640537686230133, 0.10000000000000009, 0.20000000000000001,
3009 0.34906585039886590 },
3010 { 0.51502689171753946, 0.10000000000000009, 0.20000000000000001,
3011 0.52359877559829882 },
3012 { 0.67904147863672715, 0.10000000000000009, 0.20000000000000001,
3013 0.69813170079773179 },
3014 { 0.83811885126105179, 0.10000000000000009, 0.20000000000000001,
3015 0.87266462599716477 },
3016 { 0.99255278555742787, 0.10000000000000009, 0.20000000000000001,
3017 1.0471975511965976 },
3018 { 1.1431260546194930, 0.10000000000000009, 0.20000000000000001,
3019 1.2217304763960306 },
3020 { 1.2909589656532101, 0.10000000000000009, 0.20000000000000001,
3021 1.3962634015954636 },
3022 { 1.4373749386463430, 0.10000000000000009, 0.20000000000000001,
3023 1.5707963267948966 },
3025 const double toler103
= 2.5000000000000020e-13;
3027 // Test data for k=0.10000000000000009, nu=0.29999999999999999.
3028 // max(|f - f_GSL|): 4.4408920985006262e-16
3029 // max(|f - f_GSL| / |f_GSL|): 3.5650492137236872e-16
3030 const testcase_ellint_3
<double>
3033 { 0.0000000000000000, 0.10000000000000009, 0.29999999999999999,
3034 0.0000000000000000 },
3035 { 0.17401611261390104, 0.10000000000000009, 0.29999999999999999,
3036 0.17453292519943295 },
3037 { 0.34506869507511773, 0.10000000000000009, 0.29999999999999999,
3038 0.34906585039886590 },
3039 { 0.51081757604259859, 0.10000000000000009, 0.29999999999999999,
3040 0.52359877559829882 },
3041 { 0.66992297597712303, 0.10000000000000009, 0.29999999999999999,
3042 0.69813170079773179 },
3043 { 0.82209722856174228, 0.10000000000000009, 0.29999999999999999,
3044 0.87266462599716477 },
3045 { 0.96792430487669590, 0.10000000000000009, 0.29999999999999999,
3046 1.0471975511965976 },
3047 { 1.1085964108954092, 0.10000000000000009, 0.29999999999999999,
3048 1.2217304763960306 },
3049 { 1.2456748370836999, 0.10000000000000009, 0.29999999999999999,
3050 1.3962634015954636 },
3051 { 1.3809159606704959, 0.10000000000000009, 0.29999999999999999,
3052 1.5707963267948966 },
3054 const double toler104
= 2.5000000000000020e-13;
3056 // Test data for k=0.10000000000000009, nu=0.40000000000000002.
3057 // max(|f - f_GSL|): 4.4408920985006262e-16
3058 // max(|f - f_GSL| / |f_GSL|): 3.6854758534459740e-16
3059 const testcase_ellint_3
<double>
3062 { 0.0000000000000000, 0.10000000000000009, 0.40000000000000002,
3063 0.0000000000000000 },
3064 { 0.17384216369897931, 0.10000000000000009, 0.40000000000000002,
3065 0.17453292519943295 },
3066 { 0.34375018311376787, 0.10000000000000009, 0.40000000000000002,
3067 0.34906585039886590 },
3068 { 0.50672650758380455, 0.10000000000000009, 0.40000000000000002,
3069 0.52359877559829882 },
3070 { 0.66121264213337616, 0.10000000000000009, 0.40000000000000002,
3071 0.69813170079773179 },
3072 { 0.80706202005774441, 0.10000000000000009, 0.40000000000000002,
3073 0.87266462599716477 },
3074 { 0.94519376138245870, 0.10000000000000009, 0.40000000000000002,
3075 1.0471975511965976 },
3076 { 1.0771880300759584, 0.10000000000000009, 0.40000000000000002,
3077 1.2217304763960306 },
3078 { 1.2049711557188272, 0.10000000000000009, 0.40000000000000002,
3079 1.3962634015954636 },
3080 { 1.3306223265207477, 0.10000000000000009, 0.40000000000000002,
3081 1.5707963267948966 },
3083 const double toler105
= 2.5000000000000020e-13;
3085 // Test data for k=0.10000000000000009, nu=0.50000000000000000.
3086 // max(|f - f_GSL|): 4.4408920985006262e-16
3087 // max(|f - f_GSL| / |f_GSL|): 3.8017534281650347e-16
3088 const testcase_ellint_3
<double>
3091 { 0.0000000000000000, 0.10000000000000009, 0.50000000000000000,
3092 0.0000000000000000 },
3093 { 0.17366883711936548, 0.10000000000000009, 0.50000000000000000,
3094 0.17453292519943295 },
3095 { 0.34244940634881882, 0.10000000000000009, 0.50000000000000000,
3096 0.34906585039886590 },
3097 { 0.50274793281634367, 0.10000000000000009, 0.50000000000000000,
3098 0.52359877559829882 },
3099 { 0.65287941633275082, 0.10000000000000009, 0.50000000000000000,
3100 0.69813170079773179 },
3101 { 0.79291198790315398, 0.10000000000000009, 0.50000000000000000,
3102 0.87266462599716477 },
3103 { 0.92412201537880323, 0.10000000000000009, 0.50000000000000000,
3104 1.0471975511965976 },
3105 { 1.0484480076799372, 0.10000000000000009, 0.50000000000000000,
3106 1.2217304763960306 },
3107 { 1.1681168130475206, 0.10000000000000009, 0.50000000000000000,
3108 1.3962634015954636 },
3109 { 1.2854480708580160, 0.10000000000000009, 0.50000000000000000,
3110 1.5707963267948966 },
3112 const double toler106
= 2.5000000000000020e-13;
3114 // Test data for k=0.10000000000000009, nu=0.59999999999999998.
3115 // max(|f - f_GSL|): 4.4408920985006262e-16
3116 // max(|f - f_GSL| / |f_GSL|): 3.9142834151672032e-16
3117 const testcase_ellint_3
<double>
3120 { 0.0000000000000000, 0.10000000000000009, 0.59999999999999998,
3121 0.0000000000000000 },
3122 { 0.17349612891469013, 0.10000000000000009, 0.59999999999999998,
3123 0.17453292519943295 },
3124 { 0.34116594505539444, 0.10000000000000009, 0.59999999999999998,
3125 0.34906585039886590 },
3126 { 0.49887649430466674, 0.10000000000000009, 0.59999999999999998,
3127 0.52359877559829882 },
3128 { 0.64489553282165146, 0.10000000000000009, 0.59999999999999998,
3129 0.69813170079773179 },
3130 { 0.77956016553782437, 0.10000000000000009, 0.59999999999999998,
3131 0.87266462599716477 },
3132 { 0.90451074530096287, 0.10000000000000009, 0.59999999999999998,
3133 1.0471975511965976 },
3134 { 1.0220113666961632, 0.10000000000000009, 0.59999999999999998,
3135 1.2217304763960306 },
3136 { 1.1345351441065563, 0.10000000000000009, 0.59999999999999998,
3137 1.3962634015954636 },
3138 { 1.2445798942989255, 0.10000000000000009, 0.59999999999999998,
3139 1.5707963267948966 },
3141 const double toler107
= 2.5000000000000020e-13;
3143 // Test data for k=0.10000000000000009, nu=0.69999999999999996.
3144 // max(|f - f_GSL|): 6.6613381477509392e-16
3145 // max(|f - f_GSL| / |f_GSL|): 5.5172091551439012e-16
3146 const testcase_ellint_3
<double>
3149 { 0.0000000000000000, 0.10000000000000009, 0.69999999999999996,
3150 0.0000000000000000 },
3151 { 0.17332403516105047, 0.10000000000000009, 0.69999999999999996,
3152 0.17453292519943295 },
3153 { 0.33989939374896883, 0.10000000000000009, 0.69999999999999996,
3154 0.34906585039886590 },
3155 { 0.49510719568614070, 0.10000000000000009, 0.69999999999999996,
3156 0.52359877559829882 },
3157 { 0.63723607776354974, 0.10000000000000009, 0.69999999999999996,
3158 0.69813170079773179 },
3159 { 0.76693133887935327, 0.10000000000000009, 0.69999999999999996,
3160 0.87266462599716477 },
3161 { 0.88619382078823805, 0.10000000000000009, 0.69999999999999996,
3162 1.0471975511965976 },
3163 { 0.99758012018676490, 0.10000000000000009, 0.69999999999999996,
3164 1.2217304763960306 },
3165 { 1.1037642270814410, 0.10000000000000009, 0.69999999999999996,
3166 1.3962634015954636 },
3167 { 1.2073745911083185, 0.10000000000000009, 0.69999999999999996,
3168 1.5707963267948966 },
3170 const double toler108
= 2.5000000000000020e-13;
3172 // Test data for k=0.10000000000000009, nu=0.80000000000000004.
3173 // max(|f - f_GSL|): 4.4408920985006262e-16
3174 // max(|f - f_GSL| / |f_GSL|): 4.1294144515772258e-16
3175 const testcase_ellint_3
<double>
3178 { 0.0000000000000000, 0.10000000000000009, 0.80000000000000004,
3179 0.0000000000000000 },
3180 { 0.17315255197057014, 0.10000000000000009, 0.80000000000000004,
3181 0.17453292519943295 },
3182 { 0.33864936055747991, 0.10000000000000009, 0.80000000000000004,
3183 0.34906585039886590 },
3184 { 0.49143537041117613, 0.10000000000000009, 0.80000000000000004,
3185 0.52359877559829882 },
3186 { 0.62987861760047492, 0.10000000000000009, 0.80000000000000004,
3187 0.69813170079773179 },
3188 { 0.75496005490917517, 0.10000000000000009, 0.80000000000000004,
3189 0.87266462599716477 },
3190 { 0.86903081862701881, 0.10000000000000009, 0.80000000000000004,
3191 1.0471975511965976 },
3192 { 0.97490814820725591, 0.10000000000000009, 0.80000000000000004,
3193 1.2217304763960306 },
3194 { 1.0754290107171083, 0.10000000000000009, 0.80000000000000004,
3195 1.3962634015954636 },
3196 { 1.1733158866987732, 0.10000000000000009, 0.80000000000000004,
3197 1.5707963267948966 },
3199 const double toler109
= 2.5000000000000020e-13;
3201 // Test data for k=0.10000000000000009, nu=0.90000000000000002.
3202 // max(|f - f_GSL|): 4.4408920985006262e-16
3203 // max(|f - f_GSL| / |f_GSL|): 4.2325599449457852e-16
3204 const testcase_ellint_3
<double>
3207 { 0.0000000000000000, 0.10000000000000009, 0.90000000000000002,
3208 0.0000000000000000 },
3209 { 0.17298167549096563, 0.10000000000000009, 0.90000000000000002,
3210 0.17453292519943295 },
3211 { 0.33741546662741589, 0.10000000000000009, 0.90000000000000002,
3212 0.34906585039886590 },
3213 { 0.48785665376856868, 0.10000000000000009, 0.90000000000000002,
3214 0.52359877559829882 },
3215 { 0.62280288554518959, 0.10000000000000009, 0.90000000000000002,
3216 0.69813170079773179 },
3217 { 0.74358903115455188, 0.10000000000000009, 0.90000000000000002,
3218 0.87266462599716477 },
3219 { 0.85290207679298335, 0.10000000000000009, 0.90000000000000002,
3220 1.0471975511965976 },
3221 { 0.95379006645397379, 0.10000000000000009, 0.90000000000000002,
3222 1.2217304763960306 },
3223 { 1.0492213119872327, 0.10000000000000009, 0.90000000000000002,
3224 1.3962634015954636 },
3225 { 1.1419839485283374, 0.10000000000000009, 0.90000000000000002,
3226 1.5707963267948966 },
3228 const double toler110
= 2.5000000000000020e-13;
3230 // Test data for k=0.19999999999999996, nu=0.0000000000000000.
3231 // max(|f - f_GSL|): 4.4408920985006262e-16
3232 // max(|f - f_GSL| / |f_GSL|): 4.2156475739151676e-16
3233 const testcase_ellint_3
<double>
3236 { 0.0000000000000000, 0.19999999999999996, 0.0000000000000000,
3237 0.0000000000000000 },
3238 { 0.17456817290292809, 0.19999999999999996, 0.0000000000000000,
3239 0.17453292519943295 },
3240 { 0.34934315932086801, 0.19999999999999996, 0.0000000000000000,
3241 0.34906585039886590 },
3242 { 0.52450880529443988, 0.19999999999999996, 0.0000000000000000,
3243 0.52359877559829882 },
3244 { 0.70020491009844876, 0.19999999999999996, 0.0000000000000000,
3245 0.69813170079773179 },
3246 { 0.87651006649967955, 0.19999999999999996, 0.0000000000000000,
3247 0.87266462599716477 },
3248 { 1.0534305870298994, 0.19999999999999996, 0.0000000000000000,
3249 1.0471975511965976 },
3250 { 1.2308975521670784, 0.19999999999999996, 0.0000000000000000,
3251 1.2217304763960306 },
3252 { 1.4087733584990738, 0.19999999999999996, 0.0000000000000000,
3253 1.3962634015954636 },
3254 { 1.5868678474541660, 0.19999999999999996, 0.0000000000000000,
3255 1.5707963267948966 },
3257 const double toler111
= 2.5000000000000020e-13;
3259 // Test data for k=0.19999999999999996, nu=0.10000000000000001.
3260 // max(|f - f_GSL|): 4.4408920985006262e-16
3261 // max(|f - f_GSL| / |f_GSL|): 4.3374593253183472e-16
3262 const testcase_ellint_3
<double>
3265 { 0.0000000000000000, 0.19999999999999996, 0.10000000000000001,
3266 0.0000000000000000 },
3267 { 0.17439228502691748, 0.19999999999999996, 0.10000000000000001,
3268 0.17453292519943295 },
3269 { 0.34796731137565740, 0.19999999999999996, 0.10000000000000001,
3270 0.34906585039886590 },
3271 { 0.52003370294544848, 0.19999999999999996, 0.10000000000000001,
3272 0.52359877559829882 },
3273 { 0.69012222258631462, 0.19999999999999996, 0.10000000000000001,
3274 0.69813170079773179 },
3275 { 0.85803491465566772, 0.19999999999999996, 0.10000000000000001,
3276 0.87266462599716477 },
3277 { 1.0238463961099364, 0.19999999999999996, 0.10000000000000001,
3278 1.0471975511965976 },
3279 { 1.1878691059202153, 0.19999999999999996, 0.10000000000000001,
3280 1.2217304763960306 },
3281 { 1.3505985031831940, 0.19999999999999996, 0.10000000000000001,
3282 1.3962634015954636 },
3283 { 1.5126513474261087, 0.19999999999999996, 0.10000000000000001,
3284 1.5707963267948966 },
3286 const double toler112
= 2.5000000000000020e-13;
3288 // Test data for k=0.19999999999999996, nu=0.20000000000000001.
3289 // max(|f - f_GSL|): 4.4408920985006262e-16
3290 // max(|f - f_GSL| / |f_GSL|): 4.4549984059502760e-16
3291 const testcase_ellint_3
<double>
3294 { 0.0000000000000000, 0.19999999999999996, 0.20000000000000001,
3295 0.0000000000000000 },
3296 { 0.17421703179583747, 0.19999999999999996, 0.20000000000000001,
3297 0.17453292519943295 },
3298 { 0.34661057411998791, 0.19999999999999996, 0.20000000000000001,
3299 0.34906585039886590 },
3300 { 0.51569006052647393, 0.19999999999999996, 0.20000000000000001,
3301 0.52359877559829882 },
3302 { 0.68052412821107244, 0.19999999999999996, 0.20000000000000001,
3303 0.69813170079773179 },
3304 { 0.84081341263313825, 0.19999999999999996, 0.20000000000000001,
3305 0.87266462599716477 },
3306 { 0.99683359988842890, 0.19999999999999996, 0.20000000000000001,
3307 1.0471975511965976 },
3308 { 1.1493086715118852, 0.19999999999999996, 0.20000000000000001,
3309 1.2217304763960306 },
3310 { 1.2992699693957541, 0.19999999999999996, 0.20000000000000001,
3311 1.3962634015954636 },
3312 { 1.4479323932249564, 0.19999999999999996, 0.20000000000000001,
3313 1.5707963267948966 },
3315 const double toler113
= 2.5000000000000020e-13;
3317 // Test data for k=0.19999999999999996, nu=0.29999999999999999.
3318 // max(|f - f_GSL|): 6.6613381477509392e-16
3319 // max(|f - f_GSL| / |f_GSL|): 5.3140668101543467e-16
3320 const testcase_ellint_3
<double>
3323 { 0.0000000000000000, 0.19999999999999996, 0.29999999999999999,
3324 0.0000000000000000 },
3325 { 0.17404240913577704, 0.19999999999999996, 0.29999999999999999,
3326 0.17453292519943295 },
3327 { 0.34527248032587193, 0.19999999999999996, 0.29999999999999999,
3328 0.34906585039886590 },
3329 { 0.51147118981668416, 0.19999999999999996, 0.29999999999999999,
3330 0.52359877559829882 },
3331 { 0.67137107867777601, 0.19999999999999996, 0.29999999999999999,
3332 0.69813170079773179 },
3333 { 0.82470418188668893, 0.19999999999999996, 0.29999999999999999,
3334 0.87266462599716477 },
3335 { 0.97202873223594299, 0.19999999999999996, 0.29999999999999999,
3336 1.0471975511965976 },
3337 { 1.1144773569375266, 0.19999999999999996, 0.29999999999999999,
3338 1.2217304763960306 },
3339 { 1.2535292433701000, 0.19999999999999996, 0.29999999999999999,
3340 1.3962634015954636 },
3341 { 1.3908453514752477, 0.19999999999999996, 0.29999999999999999,
3342 1.5707963267948966 },
3344 const double toler114
= 2.5000000000000020e-13;
3346 // Test data for k=0.19999999999999996, nu=0.40000000000000002.
3347 // max(|f - f_GSL|): 4.4408920985006262e-16
3348 // max(|f - f_GSL| / |f_GSL|): 4.6788709752760483e-16
3349 const testcase_ellint_3
<double>
3352 { 0.0000000000000000, 0.19999999999999996, 0.40000000000000002,
3353 0.0000000000000000 },
3354 { 0.17386841301066674, 0.19999999999999996, 0.40000000000000002,
3355 0.17453292519943295 },
3356 { 0.34395257914113253, 0.19999999999999996, 0.40000000000000002,
3357 0.34906585039886590 },
3358 { 0.50737088376869466, 0.19999999999999996, 0.40000000000000002,
3359 0.52359877559829882 },
3360 { 0.66262801717277631, 0.19999999999999996, 0.40000000000000002,
3361 0.69813170079773179 },
3362 { 0.80958766645079094, 0.19999999999999996, 0.40000000000000002,
3363 0.87266462599716477 },
3364 { 0.94913754236162040, 0.19999999999999996, 0.40000000000000002,
3365 1.0471975511965976 },
3366 { 1.0827985514222997, 0.19999999999999996, 0.40000000000000002,
3367 1.2217304763960306 },
3368 { 1.2124212429050478, 0.19999999999999996, 0.40000000000000002,
3369 1.3962634015954636 },
3370 { 1.3400002519661005, 0.19999999999999996, 0.40000000000000002,
3371 1.5707963267948966 },
3373 const double toler115
= 2.5000000000000020e-13;
3375 // Test data for k=0.19999999999999996, nu=0.50000000000000000.
3376 // max(|f - f_GSL|): 4.4408920985006262e-16
3377 // max(|f - f_GSL| / |f_GSL|): 3.7788201301356829e-16
3378 const testcase_ellint_3
<double>
3381 { 0.0000000000000000, 0.19999999999999996, 0.50000000000000000,
3382 0.0000000000000000 },
3383 { 0.17369503942181799, 0.19999999999999996, 0.50000000000000000,
3384 0.17453292519943295 },
3385 { 0.34265043534362660, 0.19999999999999996, 0.50000000000000000,
3386 0.34906585039886590 },
3387 { 0.50338337208655415, 0.19999999999999996, 0.50000000000000000,
3388 0.52359877559829882 },
3389 { 0.65426373297163609, 0.19999999999999996, 0.50000000000000000,
3390 0.69813170079773179 },
3391 { 0.79536193036145808, 0.19999999999999996, 0.50000000000000000,
3392 0.87266462599716477 },
3393 { 0.92791875910061605, 0.19999999999999996, 0.50000000000000000,
3394 1.0471975511965976 },
3395 { 1.0538145052725829, 0.19999999999999996, 0.50000000000000000,
3396 1.2217304763960306 },
3397 { 1.1752060022875899, 0.19999999999999996, 0.50000000000000000,
3398 1.3962634015954636 },
3399 { 1.2943374404397372, 0.19999999999999996, 0.50000000000000000,
3400 1.5707963267948966 },
3402 const double toler116
= 2.5000000000000020e-13;
3404 // Test data for k=0.19999999999999996, nu=0.59999999999999998.
3405 // max(|f - f_GSL|): 4.4408920985006262e-16
3406 // max(|f - f_GSL| / |f_GSL|): 4.8899223779598256e-16
3407 const testcase_ellint_3
<double>
3410 { 0.0000000000000000, 0.19999999999999996, 0.59999999999999998,
3411 0.0000000000000000 },
3412 { 0.17352228440746925, 0.19999999999999996, 0.59999999999999998,
3413 0.17453292519943295 },
3414 { 0.34136562863713626, 0.19999999999999996, 0.59999999999999998,
3415 0.34906585039886590 },
3416 { 0.49950328177638481, 0.19999999999999996, 0.59999999999999998,
3417 0.52359877559829882 },
3418 { 0.64625032705690799, 0.19999999999999996, 0.59999999999999998,
3419 0.69813170079773179 },
3420 { 0.78193941198403083, 0.19999999999999996, 0.59999999999999998,
3421 0.87266462599716477 },
3422 { 0.90817230934317128, 0.19999999999999996, 0.59999999999999998,
3423 1.0471975511965976 },
3424 { 1.0271563751276462, 0.19999999999999996, 0.59999999999999998,
3425 1.2217304763960306 },
3426 { 1.1412999379040518, 0.19999999999999996, 0.59999999999999998,
3427 1.3962634015954636 },
3428 { 1.2530330675914556, 0.19999999999999996, 0.59999999999999998,
3429 1.5707963267948966 },
3431 const double toler117
= 2.5000000000000020e-13;
3433 // Test data for k=0.19999999999999996, nu=0.69999999999999996.
3434 // max(|f - f_GSL|): 6.6613381477509392e-16
3435 // max(|f - f_GSL| / |f_GSL|): 5.9999318361775115e-16
3436 const testcase_ellint_3
<double>
3439 { 0.0000000000000000, 0.19999999999999996, 0.69999999999999996,
3440 0.0000000000000000 },
3441 { 0.17335014404233895, 0.19999999999999996, 0.69999999999999996,
3442 0.17453292519943295 },
3443 { 0.34009775298617811, 0.19999999999999996, 0.69999999999999996,
3444 0.34906585039886590 },
3445 { 0.49572560201923810, 0.19999999999999996, 0.69999999999999996,
3446 0.52359877559829882 },
3447 { 0.63856276669886503, 0.19999999999999996, 0.69999999999999996,
3448 0.69813170079773179 },
3449 { 0.76924438644867565, 0.19999999999999996, 0.69999999999999996,
3450 0.87266462599716477 },
3451 { 0.88973060843856466, 0.19999999999999996, 0.69999999999999996,
3452 1.0471975511965976 },
3453 { 1.0025230471636377, 0.19999999999999996, 0.69999999999999996,
3454 1.2217304763960306 },
3455 { 1.1102356376093103, 0.19999999999999996, 0.69999999999999996,
3456 1.3962634015954636 },
3457 { 1.2154356555075863, 0.19999999999999996, 0.69999999999999996,
3458 1.5707963267948966 },
3460 const double toler118
= 2.5000000000000020e-13;
3462 // Test data for k=0.19999999999999996, nu=0.80000000000000004.
3463 // max(|f - f_GSL|): 4.4408920985006262e-16
3464 // max(|f - f_GSL| / |f_GSL|): 5.0901276230707249e-16
3465 const testcase_ellint_3
<double>
3468 { 0.0000000000000000, 0.19999999999999996, 0.80000000000000004,
3469 0.0000000000000000 },
3470 { 0.17317861443718538, 0.19999999999999996, 0.80000000000000004,
3471 0.17453292519943295 },
3472 { 0.33884641598718701, 0.19999999999999996, 0.80000000000000004,
3473 0.34906585039886590 },
3474 { 0.49204565281259494, 0.19999999999999996, 0.80000000000000004,
3475 0.52359877559829882 },
3476 { 0.63117851188220320, 0.19999999999999996, 0.80000000000000004,
3477 0.69813170079773179 },
3478 { 0.75721095949544170, 0.19999999999999996, 0.80000000000000004,
3479 0.87266462599716477 },
3480 { 0.87245201443919118, 0.19999999999999996, 0.80000000000000004,
3481 1.0471975511965976 },
3482 { 0.97966584238831089, 0.19999999999999996, 0.80000000000000004,
3483 1.2217304763960306 },
3484 { 1.0816336325174360, 0.19999999999999996, 0.80000000000000004,
3485 1.3962634015954636 },
3486 { 1.1810223448909909, 0.19999999999999996, 0.80000000000000004,
3487 1.5707963267948966 },
3489 const double toler119
= 2.5000000000000020e-13;
3491 // Test data for k=0.19999999999999996, nu=0.90000000000000002.
3492 // max(|f - f_GSL|): 6.6613381477509392e-16
3493 // max(|f - f_GSL| / |f_GSL|): 6.4833128442756722e-16
3494 const testcase_ellint_3
<double>
3497 { 0.0000000000000000, 0.19999999999999996, 0.90000000000000002,
3498 0.0000000000000000 },
3499 { 0.17300769173837277, 0.19999999999999996, 0.90000000000000002,
3500 0.17453292519943295 },
3501 { 0.33761123827372508, 0.19999999999999996, 0.90000000000000002,
3502 0.34906585039886590 },
3503 { 0.48845905690769426, 0.19999999999999996, 0.90000000000000002,
3504 0.52359877559829882 },
3505 { 0.62407720017324952, 0.19999999999999996, 0.90000000000000002,
3506 0.69813170079773179 },
3507 { 0.74578146525124289, 0.19999999999999996, 0.90000000000000002,
3508 0.87266462599716477 },
3509 { 0.85621583540073076, 0.19999999999999996, 0.90000000000000002,
3510 1.0471975511965976 },
3511 { 0.95837725988001199, 0.19999999999999996, 0.90000000000000002,
3512 1.2217304763960306 },
3513 { 1.0551821412633928, 0.19999999999999996, 0.90000000000000002,
3514 1.3962634015954636 },
3515 { 1.1493679916141861, 0.19999999999999996, 0.90000000000000002,
3516 1.5707963267948966 },
3518 const double toler120
= 2.5000000000000020e-13;
3520 // Test data for k=0.30000000000000004, nu=0.0000000000000000.
3521 // max(|f - f_GSL|): 8.8817841970012523e-16
3522 // max(|f - f_GSL| / |f_GSL|): 6.3361874537309281e-16
3523 const testcase_ellint_3
<double>
3526 { 0.0000000000000000, 0.30000000000000004, 0.0000000000000000,
3527 0.0000000000000000 },
3528 { 0.17461228653000099, 0.30000000000000004, 0.0000000000000000,
3529 0.17453292519943295 },
3530 { 0.34969146102798415, 0.30000000000000004, 0.0000000000000000,
3531 0.34906585039886590 },
3532 { 0.52565822873726320, 0.30000000000000004, 0.0000000000000000,
3533 0.52359877559829882 },
3534 { 0.70284226512408532, 0.30000000000000004, 0.0000000000000000,
3535 0.69813170079773179 },
3536 { 0.88144139195111182, 0.30000000000000004, 0.0000000000000000,
3537 0.87266462599716477 },
3538 { 1.0614897067260520, 0.30000000000000004, 0.0000000000000000,
3539 1.0471975511965976 },
3540 { 1.2428416824174218, 0.30000000000000004, 0.0000000000000000,
3541 1.2217304763960306 },
3542 { 1.4251795877015927, 0.30000000000000004, 0.0000000000000000,
3543 1.3962634015954636 },
3544 { 1.6080486199305128, 0.30000000000000004, 0.0000000000000000,
3545 1.5707963267948966 },
3547 const double toler121
= 2.5000000000000020e-13;
3549 // Test data for k=0.30000000000000004, nu=0.10000000000000001.
3550 // max(|f - f_GSL|): 8.8817841970012523e-16
3551 // max(|f - f_GSL| / |f_GSL|): 6.3908043711907203e-16
3552 const testcase_ellint_3
<double>
3555 { 0.0000000000000000, 0.30000000000000004, 0.10000000000000001,
3556 0.0000000000000000 },
3557 { 0.17443631884814376, 0.30000000000000004, 0.10000000000000001,
3558 0.17453292519943295 },
3559 { 0.34831316835124926, 0.30000000000000004, 0.10000000000000001,
3560 0.34906585039886590 },
3561 { 0.52116586276523857, 0.30000000000000004, 0.10000000000000001,
3562 0.52359877559829882 },
3563 { 0.69269385837910036, 0.30000000000000004, 0.10000000000000001,
3564 0.69813170079773179 },
3565 { 0.86279023163070856, 0.30000000000000004, 0.10000000000000001,
3566 0.87266462599716477 },
3567 { 1.0315321461438263, 0.30000000000000004, 0.10000000000000001,
3568 1.0471975511965976 },
3569 { 1.1991449111869024, 0.30000000000000004, 0.10000000000000001,
3570 1.2217304763960306 },
3571 { 1.3659561780923213, 0.30000000000000004, 0.10000000000000001,
3572 1.3962634015954636 },
3573 { 1.5323534693557528, 0.30000000000000004, 0.10000000000000001,
3574 1.5707963267948966 },
3576 const double toler122
= 2.5000000000000020e-13;
3578 // Test data for k=0.30000000000000004, nu=0.20000000000000001.
3579 // max(|f - f_GSL|): 8.8817841970012523e-16
3580 // max(|f - f_GSL| / |f_GSL|): 6.4447238179454079e-16
3581 const testcase_ellint_3
<double>
3584 { 0.0000000000000000, 0.30000000000000004, 0.20000000000000001,
3585 0.0000000000000000 },
3586 { 0.17426098615372088, 0.30000000000000004, 0.20000000000000001,
3587 0.17453292519943295 },
3588 { 0.34695402664689923, 0.30000000000000004, 0.20000000000000001,
3589 0.34906585039886590 },
3590 { 0.51680555567038933, 0.30000000000000004, 0.20000000000000001,
3591 0.52359877559829882 },
3592 { 0.68303375225260210, 0.30000000000000004, 0.20000000000000001,
3593 0.69813170079773179 },
3594 { 0.84540662891295026, 0.30000000000000004, 0.20000000000000001,
3595 0.87266462599716477 },
3596 { 1.0041834051646927, 0.30000000000000004, 0.20000000000000001,
3597 1.0471975511965976 },
3598 { 1.1599952702345711, 0.30000000000000004, 0.20000000000000001,
3599 1.2217304763960306 },
3600 { 1.3137179520499165, 0.30000000000000004, 0.20000000000000001,
3601 1.3962634015954636 },
3602 { 1.4663658145259877, 0.30000000000000004, 0.20000000000000001,
3603 1.5707963267948966 },
3605 const double toler123
= 2.5000000000000020e-13;
3607 // Test data for k=0.30000000000000004, nu=0.29999999999999999.
3608 // max(|f - f_GSL|): 8.8817841970012523e-16
3609 // max(|f - f_GSL| / |f_GSL|): 6.4979715256503266e-16
3610 const testcase_ellint_3
<double>
3613 { 0.0000000000000000, 0.30000000000000004, 0.29999999999999999,
3614 0.0000000000000000 },
3615 { 0.17408628437042842, 0.30000000000000004, 0.29999999999999999,
3616 0.17453292519943295 },
3617 { 0.34561356761638401, 0.30000000000000004, 0.29999999999999999,
3618 0.34906585039886590 },
3619 { 0.51257058617875850, 0.30000000000000004, 0.29999999999999999,
3620 0.52359877559829882 },
3621 { 0.67382207124602878, 0.30000000000000004, 0.29999999999999999,
3622 0.69813170079773179 },
3623 { 0.82914751587825131, 0.30000000000000004, 0.29999999999999999,
3624 0.87266462599716477 },
3625 { 0.97907434814374938, 0.30000000000000004, 0.29999999999999999,
3626 1.0471975511965976 },
3627 { 1.1246399297351584, 0.30000000000000004, 0.29999999999999999,
3628 1.2217304763960306 },
3629 { 1.2671793970398149, 0.30000000000000004, 0.29999999999999999,
3630 1.3962634015954636 },
3631 { 1.4081767433479091, 0.30000000000000004, 0.29999999999999999,
3632 1.5707963267948966 },
3634 const double toler124
= 2.5000000000000020e-13;
3636 // Test data for k=0.30000000000000004, nu=0.40000000000000002.
3637 // max(|f - f_GSL|): 8.8817841970012523e-16
3638 // max(|f - f_GSL| / |f_GSL|): 6.5505716921759864e-16
3639 const testcase_ellint_3
<double>
3642 { 0.0000000000000000, 0.30000000000000004, 0.40000000000000002,
3643 0.0000000000000000 },
3644 { 0.17391220945982727, 0.30000000000000004, 0.40000000000000002,
3645 0.17453292519943295 },
3646 { 0.34429133937639689, 0.30000000000000004, 0.40000000000000002,
3647 0.34906585039886590 },
3648 { 0.50845471668581632, 0.30000000000000004, 0.40000000000000002,
3649 0.52359877559829882 },
3650 { 0.66502347027873854, 0.30000000000000004, 0.40000000000000002,
3651 0.69813170079773179 },
3652 { 0.81389191978012254, 0.30000000000000004, 0.40000000000000002,
3653 0.87266462599716477 },
3654 { 0.95590618002140570, 0.30000000000000004, 0.40000000000000002,
3655 1.0471975511965976 },
3656 { 1.0924915195213121, 0.30000000000000004, 0.40000000000000002,
3657 1.2217304763960306 },
3658 { 1.2253651604038061, 0.30000000000000004, 0.40000000000000002,
3659 1.3962634015954636 },
3660 { 1.3563643538969763, 0.30000000000000004, 0.40000000000000002,
3661 1.5707963267948966 },
3663 const double toler125
= 2.5000000000000020e-13;
3665 // Test data for k=0.30000000000000004, nu=0.50000000000000000.
3666 // max(|f - f_GSL|): 8.8817841970012523e-16
3667 // max(|f - f_GSL| / |f_GSL|): 6.7807908859023716e-16
3668 const testcase_ellint_3
<double>
3671 { 0.0000000000000000, 0.30000000000000004, 0.50000000000000000,
3672 0.0000000000000000 },
3673 { 0.17373875742088232, 0.30000000000000004, 0.50000000000000000,
3674 0.17453292519943295 },
3675 { 0.34298690571124157, 0.30000000000000004, 0.50000000000000000,
3676 0.34906585039886590 },
3677 { 0.50445214859646936, 0.30000000000000004, 0.50000000000000000,
3678 0.52359877559829882 },
3679 { 0.65660648352418516, 0.30000000000000004, 0.50000000000000000,
3680 0.69813170079773179 },
3681 { 0.79953670639287289, 0.30000000000000004, 0.50000000000000000,
3682 0.87266462599716477 },
3683 { 0.93443393926588536, 0.30000000000000004, 0.50000000000000000,
3684 1.0471975511965976 },
3685 { 1.0630838369016911, 0.30000000000000004, 0.50000000000000000,
3686 1.2217304763960306 },
3687 { 1.1875197325653029, 0.30000000000000004, 0.50000000000000000,
3688 1.3962634015954636 },
3689 { 1.3098448759814962, 0.30000000000000004, 0.50000000000000000,
3690 1.5707963267948966 },
3692 const double toler126
= 2.5000000000000020e-13;
3694 // Test data for k=0.30000000000000004, nu=0.59999999999999998.
3695 // max(|f - f_GSL|): 8.8817841970012523e-16
3696 // max(|f - f_GSL| / |f_GSL|): 7.0057999499931649e-16
3697 const testcase_ellint_3
<double>
3700 { 0.0000000000000000, 0.30000000000000004, 0.59999999999999998,
3701 0.0000000000000000 },
3702 { 0.17356592428950823, 0.30000000000000004, 0.59999999999999998,
3703 0.17453292519943295 },
3704 { 0.34169984536697379, 0.30000000000000004, 0.59999999999999998,
3705 0.34906585039886590 },
3706 { 0.50055748266498457, 0.30000000000000004, 0.59999999999999998,
3707 0.52359877559829882 },
3708 { 0.64854298527106768, 0.30000000000000004, 0.59999999999999998,
3709 0.69813170079773179 },
3710 { 0.78599329284207431, 0.30000000000000004, 0.59999999999999998,
3711 0.87266462599716477 },
3712 { 0.91445452089128199, 0.30000000000000004, 0.59999999999999998,
3713 1.0471975511965976 },
3714 { 1.0360412952290587, 0.30000000000000004, 0.59999999999999998,
3715 1.2217304763960306 },
3716 { 1.1530473919778641, 0.30000000000000004, 0.59999999999999998,
3717 1.3962634015954636 },
3718 { 1.2677758800420669, 0.30000000000000004, 0.59999999999999998,
3719 1.5707963267948966 },
3721 const double toler127
= 2.5000000000000020e-13;
3723 // Test data for k=0.30000000000000004, nu=0.69999999999999996.
3724 // max(|f - f_GSL|): 8.8817841970012523e-16
3725 // max(|f - f_GSL| / |f_GSL|): 7.2239502844122443e-16
3726 const testcase_ellint_3
<double>
3729 { 0.0000000000000000, 0.30000000000000004, 0.69999999999999996,
3730 0.0000000000000000 },
3731 { 0.17339370613812224, 0.30000000000000004, 0.69999999999999996,
3732 0.17453292519943295 },
3733 { 0.34042975138455933, 0.30000000000000004, 0.69999999999999996,
3734 0.34906585039886590 },
3735 { 0.49676568368075985, 0.30000000000000004, 0.69999999999999996,
3736 0.52359877559829882 },
3737 { 0.64080774055753720, 0.30000000000000004, 0.69999999999999996,
3738 0.69813170079773179 },
3739 { 0.77318507779667278, 0.30000000000000004, 0.69999999999999996,
3740 0.87266462599716477 },
3741 { 0.89579782346548609, 0.30000000000000004, 0.69999999999999996,
3742 1.0471975511965976 },
3743 { 1.0110573286052202, 0.30000000000000004, 0.69999999999999996,
3744 1.2217304763960306 },
3745 { 1.1214710972949635, 0.30000000000000004, 0.69999999999999996,
3746 1.3962634015954636 },
3747 { 1.2294913236274982, 0.30000000000000004, 0.69999999999999996,
3748 1.5707963267948966 },
3750 const double toler128
= 2.5000000000000020e-13;
3752 // Test data for k=0.30000000000000004, nu=0.80000000000000004.
3753 // max(|f - f_GSL|): 8.8817841970012523e-16
3754 // max(|f - f_GSL| / |f_GSL|): 7.4358357000101250e-16
3755 const testcase_ellint_3
<double>
3758 { 0.0000000000000000, 0.30000000000000004, 0.80000000000000004,
3759 0.0000000000000000 },
3760 { 0.17322209907520358, 0.30000000000000004, 0.80000000000000004,
3761 0.17453292519943295 },
3762 { 0.33917623046949996, 0.30000000000000004, 0.80000000000000004,
3763 0.34906585039886590 },
3764 { 0.49307204894329176, 0.30000000000000004, 0.80000000000000004,
3765 0.52359877559829882 },
3766 { 0.63337802830291734, 0.30000000000000004, 0.80000000000000004,
3767 0.69813170079773179 },
3768 { 0.76104540997689407, 0.30000000000000004, 0.80000000000000004,
3769 0.87266462599716477 },
3770 { 0.87832009635450714, 0.30000000000000004, 0.80000000000000004,
3771 1.0471975511965976 },
3772 { 0.98787879723171790, 0.30000000000000004, 0.80000000000000004,
3773 1.2217304763960306 },
3774 { 1.0924036340069339, 0.30000000000000004, 0.80000000000000004,
3775 1.3962634015954636 },
3776 { 1.1944567571590048, 0.30000000000000004, 0.80000000000000004,
3777 1.5707963267948966 },
3779 const double toler129
= 2.5000000000000020e-13;
3781 // Test data for k=0.30000000000000004, nu=0.90000000000000002.
3782 // max(|f - f_GSL|): 8.8817841970012523e-16
3783 // max(|f - f_GSL| / |f_GSL|): 7.6419688299804087e-16
3784 const testcase_ellint_3
<double>
3787 { 0.0000000000000000, 0.30000000000000004, 0.90000000000000002,
3788 0.0000000000000000 },
3789 { 0.17305109924485945, 0.30000000000000004, 0.90000000000000002,
3790 0.17453292519943295 },
3791 { 0.33793890239556984, 0.30000000000000004, 0.90000000000000002,
3792 0.34906585039886590 },
3793 { 0.48947218005089738, 0.30000000000000004, 0.90000000000000002,
3794 0.52359877559829882 },
3795 { 0.62623332340775151, 0.30000000000000004, 0.90000000000000002,
3796 0.69813170079773179 },
3797 { 0.74951596581511148, 0.30000000000000004, 0.90000000000000002,
3798 0.87266462599716477 },
3799 { 0.86189886597755994, 0.30000000000000004, 0.90000000000000002,
3800 1.0471975511965976 },
3801 { 0.96629451153092005, 0.30000000000000004, 0.90000000000000002,
3802 1.2217304763960306 },
3803 { 1.0655269133492682, 0.30000000000000004, 0.90000000000000002,
3804 1.3962634015954636 },
3805 { 1.1622376896064914, 0.30000000000000004, 0.90000000000000002,
3806 1.5707963267948966 },
3808 const double toler130
= 2.5000000000000020e-13;
3810 // Test data for k=0.39999999999999991, nu=0.0000000000000000.
3811 // max(|f - f_GSL|): 8.8817841970012523e-16
3812 // max(|f - f_GSL| / |f_GSL|): 5.4157225142938039e-16
3813 const testcase_ellint_3
<double>
3816 { 0.0000000000000000, 0.39999999999999991, 0.0000000000000000,
3817 0.0000000000000000 },
3818 { 0.17467414669441528, 0.39999999999999991, 0.0000000000000000,
3819 0.17453292519943295 },
3820 { 0.35018222772483443, 0.39999999999999991, 0.0000000000000000,
3821 0.34906585039886590 },
3822 { 0.52729015917508737, 0.39999999999999991, 0.0000000000000000,
3823 0.52359877559829882 },
3824 { 0.70662374407341244, 0.39999999999999991, 0.0000000000000000,
3825 0.69813170079773179 },
3826 { 0.88859210497602170, 0.39999999999999991, 0.0000000000000000,
3827 0.87266462599716477 },
3828 { 1.0733136290471379, 0.39999999999999991, 0.0000000000000000,
3829 1.0471975511965976 },
3830 { 1.2605612170157061, 0.39999999999999991, 0.0000000000000000,
3831 1.2217304763960306 },
3832 { 1.4497513956433439, 0.39999999999999991, 0.0000000000000000,
3833 1.3962634015954636 },
3834 { 1.6399998658645112, 0.39999999999999991, 0.0000000000000000,
3835 1.5707963267948966 },
3837 const double toler131
= 2.5000000000000020e-13;
3839 // Test data for k=0.39999999999999991, nu=0.10000000000000001.
3840 // max(|f - f_GSL|): 8.8817841970012523e-16
3841 // max(|f - f_GSL| / |f_GSL|): 5.6859551010103832e-16
3842 const testcase_ellint_3
<double>
3845 { 0.0000000000000000, 0.39999999999999991, 0.10000000000000001,
3846 0.0000000000000000 },
3847 { 0.17449806706684670, 0.39999999999999991, 0.10000000000000001,
3848 0.17453292519943295 },
3849 { 0.34880048623856075, 0.39999999999999991, 0.10000000000000001,
3850 0.34906585039886590 },
3851 { 0.52277322065757392, 0.39999999999999991, 0.10000000000000001,
3852 0.52359877559829882 },
3853 { 0.69638072056918365, 0.39999999999999991, 0.10000000000000001,
3854 0.69813170079773179 },
3855 { 0.86968426619831540, 0.39999999999999991, 0.10000000000000001,
3856 0.87266462599716477 },
3857 { 1.0428044206578095, 0.39999999999999991, 0.10000000000000001,
3858 1.0471975511965976 },
3859 { 1.2158651158274378, 0.39999999999999991, 0.10000000000000001,
3860 1.2217304763960306 },
3861 { 1.3889447129893324, 0.39999999999999991, 0.10000000000000001,
3862 1.3962634015954636 },
3863 { 1.5620566886683604, 0.39999999999999991, 0.10000000000000001,
3864 1.5707963267948966 },
3866 const double toler132
= 2.5000000000000020e-13;
3868 // Test data for k=0.39999999999999991, nu=0.20000000000000001.
3869 // max(|f - f_GSL|): 8.8817841970012523e-16
3870 // max(|f - f_GSL| / |f_GSL|): 5.9444065952225719e-16
3871 const testcase_ellint_3
<double>
3874 { 0.0000000000000000, 0.39999999999999991, 0.20000000000000001,
3875 0.0000000000000000 },
3876 { 0.17432262290723397, 0.39999999999999991, 0.20000000000000001,
3877 0.17453292519943295 },
3878 { 0.34743795258968596, 0.39999999999999991, 0.20000000000000001,
3879 0.34906585039886590 },
3880 { 0.51838919472805112, 0.39999999999999991, 0.20000000000000001,
3881 0.52359877559829882 },
3882 { 0.68663134739057907, 0.39999999999999991, 0.20000000000000001,
3883 0.69813170079773179 },
3884 { 0.85206432981833979, 0.39999999999999991, 0.20000000000000001,
3885 0.87266462599716477 },
3886 { 1.0149595349004430, 0.39999999999999991, 0.20000000000000001,
3887 1.0471975511965976 },
3888 { 1.1758349405464676, 0.39999999999999991, 0.20000000000000001,
3889 1.2217304763960306 },
3890 { 1.3353337673882637, 0.39999999999999991, 0.20000000000000001,
3891 1.3962634015954636 },
3892 { 1.4941414344266770, 0.39999999999999991, 0.20000000000000001,
3893 1.5707963267948966 },
3895 const double toler133
= 2.5000000000000020e-13;
3897 // Test data for k=0.39999999999999991, nu=0.29999999999999999.
3898 // max(|f - f_GSL|): 1.1102230246251565e-15
3899 // max(|f - f_GSL| / |f_GSL|): 7.7406350888907249e-16
3900 const testcase_ellint_3
<double>
3903 { 0.0000000000000000, 0.39999999999999991, 0.29999999999999999,
3904 0.0000000000000000 },
3905 { 0.17414781013591540, 0.39999999999999991, 0.29999999999999999,
3906 0.17453292519943295 },
3907 { 0.34609415696777285, 0.39999999999999991, 0.29999999999999999,
3908 0.34906585039886590 },
3909 { 0.51413131295862535, 0.39999999999999991, 0.29999999999999999,
3910 0.52359877559829882 },
3911 { 0.67733527622935630, 0.39999999999999991, 0.29999999999999999,
3912 0.69813170079773179 },
3913 { 0.83558675182733266, 0.39999999999999991, 0.29999999999999999,
3914 0.87266462599716477 },
3915 { 0.98940140808865906, 0.39999999999999991, 0.29999999999999999,
3916 1.0471975511965976 },
3917 { 1.1396968797728058, 0.39999999999999991, 0.29999999999999999,
3918 1.2217304763960306 },
3919 { 1.2875920037865090, 0.39999999999999991, 0.29999999999999999,
3920 1.3962634015954636 },
3921 { 1.4342789859950078, 0.39999999999999991, 0.29999999999999999,
3922 1.5707963267948966 },
3924 const double toler134
= 2.5000000000000020e-13;
3926 // Test data for k=0.39999999999999991, nu=0.40000000000000002.
3927 // max(|f - f_GSL|): 8.8817841970012523e-16
3928 // max(|f - f_GSL| / |f_GSL|): 6.4314214811441816e-16
3929 const testcase_ellint_3
<double>
3932 { 0.0000000000000000, 0.39999999999999991, 0.40000000000000002,
3933 0.0000000000000000 },
3934 { 0.17397362471112707, 0.39999999999999991, 0.40000000000000002,
3935 0.17453292519943295 },
3936 { 0.34476864603333196, 0.39999999999999991, 0.40000000000000002,
3937 0.34906585039886590 },
3938 { 0.50999329415379346, 0.39999999999999991, 0.40000000000000002,
3939 0.52359877559829882 },
3940 { 0.66845674551396006, 0.39999999999999991, 0.40000000000000002,
3941 0.69813170079773179 },
3942 { 0.82012848346231748, 0.39999999999999991, 0.40000000000000002,
3943 0.87266462599716477 },
3944 { 0.96582449258349057, 0.39999999999999991, 0.40000000000000002,
3945 1.0471975511965976 },
3946 { 1.1068473749476286, 0.39999999999999991, 0.40000000000000002,
3947 1.2217304763960306 },
3948 { 1.2447132729159989, 0.39999999999999991, 0.40000000000000002,
3949 1.3962634015954636 },
3950 { 1.3809986210732901, 0.39999999999999991, 0.40000000000000002,
3951 1.5707963267948966 },
3953 const double toler135
= 2.5000000000000020e-13;
3955 // Test data for k=0.39999999999999991, nu=0.50000000000000000.
3956 // max(|f - f_GSL|): 8.8817841970012523e-16
3957 // max(|f - f_GSL| / |f_GSL|): 6.6621057007519435e-16
3958 const testcase_ellint_3
<double>
3961 { 0.0000000000000000, 0.39999999999999991, 0.50000000000000000,
3962 0.0000000000000000 },
3963 { 0.17380006262854136, 0.39999999999999991, 0.50000000000000000,
3964 0.17453292519943295 },
3965 { 0.34346098216756610, 0.39999999999999991, 0.50000000000000000,
3966 0.34906585039886590 },
3967 { 0.50596929935059420, 0.39999999999999991, 0.50000000000000000,
3968 0.52359877559829882 },
3969 { 0.65996392089131251, 0.39999999999999991, 0.50000000000000000,
3970 0.69813170079773179 },
3971 { 0.80558463511364786, 0.39999999999999991, 0.50000000000000000,
3972 0.87266462599716477 },
3973 { 0.94397834522857704, 0.39999999999999991, 0.50000000000000000,
3974 1.0471975511965976 },
3975 { 1.0768075114108115, 0.39999999999999991, 0.50000000000000000,
3976 1.2217304763960306 },
3977 { 1.2059184624251333, 0.39999999999999991, 0.50000000000000000,
3978 1.3962634015954636 },
3979 { 1.3331797176377398, 0.39999999999999991, 0.50000000000000000,
3980 1.5707963267948966 },
3982 const double toler136
= 2.5000000000000020e-13;
3984 // Test data for k=0.39999999999999991, nu=0.59999999999999998.
3985 // max(|f - f_GSL|): 8.8817841970012523e-16
3986 // max(|f - f_GSL| / |f_GSL|): 6.8853630717730749e-16
3987 const testcase_ellint_3
<double>
3990 { 0.0000000000000000, 0.39999999999999991, 0.59999999999999998,
3991 0.0000000000000000 },
3992 { 0.17362711992081245, 0.39999999999999991, 0.59999999999999998,
3993 0.17453292519943295 },
3994 { 0.34217074276403953, 0.39999999999999991, 0.59999999999999998,
3995 0.34906585039886590 },
3996 { 0.50205389185761606, 0.39999999999999991, 0.59999999999999998,
3997 0.52359877559829882 },
3998 { 0.65182834920372734, 0.39999999999999991, 0.59999999999999998,
3999 0.69813170079773179 },
4000 { 0.79186512820565136, 0.39999999999999991, 0.59999999999999998,
4001 0.87266462599716477 },
4002 { 0.92365535916287134, 0.39999999999999991, 0.59999999999999998,
4003 1.0471975511965976 },
4004 { 1.0491915663957907, 0.39999999999999991, 0.59999999999999998,
4005 1.2217304763960306 },
4006 { 1.1705934291745106, 0.39999999999999991, 0.59999999999999998,
4007 1.3962634015954636 },
4008 { 1.2899514672527024, 0.39999999999999991, 0.59999999999999998,
4009 1.5707963267948966 },
4011 const double toler137
= 2.5000000000000020e-13;
4013 // Test data for k=0.39999999999999991, nu=0.69999999999999996.
4014 // max(|f - f_GSL|): 8.8817841970012523e-16
4015 // max(|f - f_GSL| / |f_GSL|): 7.1018730557776469e-16
4016 const testcase_ellint_3
<double>
4019 { 0.0000000000000000, 0.39999999999999991, 0.69999999999999996,
4020 0.0000000000000000 },
4021 { 0.17345479265712868, 0.39999999999999991, 0.69999999999999996,
4022 0.17453292519943295 },
4023 { 0.34089751955950354, 0.39999999999999991, 0.69999999999999996,
4024 0.34906585039886590 },
4025 { 0.49824200167361332, 0.39999999999999991, 0.69999999999999996,
4026 0.52359877559829882 },
4027 { 0.64402450341199402, 0.39999999999999991, 0.69999999999999996,
4028 0.69813170079773179 },
4029 { 0.77889207804122873, 0.39999999999999991, 0.69999999999999996,
4030 0.87266462599716477 },
4031 { 0.90468169720957992, 0.39999999999999991, 0.69999999999999996,
4032 1.0471975511965976 },
4033 { 1.0236847823692916, 0.39999999999999991, 0.69999999999999996,
4034 1.2217304763960306 },
4035 { 1.1382465247425166, 0.39999999999999991, 0.69999999999999996,
4036 1.3962634015954636 },
4037 { 1.2506255923253344, 0.39999999999999991, 0.69999999999999996,
4038 1.5707963267948966 },
4040 const double toler138
= 2.5000000000000020e-13;
4042 // Test data for k=0.39999999999999991, nu=0.80000000000000004.
4043 // max(|f - f_GSL|): 8.8817841970012523e-16
4044 // max(|f - f_GSL| / |f_GSL|): 7.3122171115555478e-16
4045 const testcase_ellint_3
<double>
4048 { 0.0000000000000000, 0.39999999999999991, 0.80000000000000004,
4049 0.0000000000000000 },
4050 { 0.17328307694277154, 0.39999999999999991, 0.80000000000000004,
4051 0.17453292519943295 },
4052 { 0.33964091800132007, 0.39999999999999991, 0.80000000000000004,
4053 0.34906585039886590 },
4054 { 0.49452889372467440, 0.39999999999999991, 0.80000000000000004,
4055 0.52359877559829882 },
4056 { 0.63652940095937316, 0.39999999999999991, 0.80000000000000004,
4057 0.69813170079773179 },
4058 { 0.76659772511159097, 0.39999999999999991, 0.80000000000000004,
4059 0.87266462599716477 },
4060 { 0.88691047977338111, 0.39999999999999991, 0.80000000000000004,
4061 1.0471975511965976 },
4062 { 1.0000273200611638, 0.39999999999999991, 0.80000000000000004,
4063 1.2217304763960306 },
4064 { 1.1084787902188009, 0.39999999999999991, 0.80000000000000004,
4065 1.3962634015954636 },
4066 { 1.2146499565727209, 0.39999999999999991, 0.80000000000000004,
4067 1.5707963267948966 },
4069 const double toler139
= 2.5000000000000020e-13;
4071 // Test data for k=0.39999999999999991, nu=0.90000000000000002.
4072 // max(|f - f_GSL|): 8.8817841970012523e-16
4073 // max(|f - f_GSL| / |f_GSL|): 7.5168974431077345e-16
4074 const testcase_ellint_3
<double>
4077 { 0.0000000000000000, 0.39999999999999991, 0.90000000000000002,
4078 0.0000000000000000 },
4079 { 0.17311196891868127, 0.39999999999999991, 0.90000000000000002,
4080 0.17453292519943295 },
4081 { 0.33840055664911906, 0.39999999999999991, 0.90000000000000002,
4082 0.34906585039886590 },
4083 { 0.49091013944075329, 0.39999999999999991, 0.90000000000000002,
4084 0.52359877559829882 },
4085 { 0.62932228186809580, 0.39999999999999991, 0.90000000000000002,
4086 0.69813170079773179 },
4087 { 0.75492278323019801, 0.39999999999999991, 0.90000000000000002,
4088 0.87266462599716477 },
4089 { 0.87021659043854294, 0.39999999999999991, 0.90000000000000002,
4090 1.0471975511965976 },
4091 { 0.97800245228239246, 0.39999999999999991, 0.90000000000000002,
4092 1.2217304763960306 },
4093 { 1.0809625773173697, 0.39999999999999991, 0.90000000000000002,
4094 1.3962634015954636 },
4095 { 1.1815758115929846, 0.39999999999999991, 0.90000000000000002,
4096 1.5707963267948966 },
4098 const double toler140
= 2.5000000000000020e-13;
4100 // Test data for k=0.50000000000000000, nu=0.0000000000000000.
4101 // max(|f - f_GSL|): 2.2204460492503131e-16
4102 // max(|f - f_GSL| / |f_GSL|): 3.1201497220602069e-16
4103 const testcase_ellint_3
<double>
4106 { 0.0000000000000000, 0.50000000000000000, 0.0000000000000000,
4107 0.0000000000000000 },
4108 { 0.17475385514035785, 0.50000000000000000, 0.0000000000000000,
4109 0.17453292519943295 },
4110 { 0.35081868470101585, 0.50000000000000000, 0.0000000000000000,
4111 0.34906585039886590 },
4112 { 0.52942862705190574, 0.50000000000000000, 0.0000000000000000,
4113 0.52359877559829882 },
4114 { 0.71164727562630314, 0.50000000000000000, 0.0000000000000000,
4115 0.69813170079773179 },
4116 { 0.89824523594227768, 0.50000000000000000, 0.0000000000000000,
4117 0.87266462599716477 },
4118 { 1.0895506700518851, 0.50000000000000000, 0.0000000000000000,
4119 1.0471975511965976 },
4120 { 1.2853005857432931, 0.50000000000000000, 0.0000000000000000,
4121 1.2217304763960306 },
4122 { 1.4845545520549484, 0.50000000000000000, 0.0000000000000000,
4123 1.3962634015954636 },
4124 { 1.6857503548125963, 0.50000000000000000, 0.0000000000000000,
4125 1.5707963267948966 },
4127 const double toler141
= 2.5000000000000020e-13;
4129 // Test data for k=0.50000000000000000, nu=0.10000000000000001.
4130 // max(|f - f_GSL|): 2.2204460492503131e-16
4131 // max(|f - f_GSL| / |f_GSL|): 3.1662857256911530e-16
4132 const testcase_ellint_3
<double>
4135 { 0.0000000000000000, 0.50000000000000000, 0.10000000000000001,
4136 0.0000000000000000 },
4137 { 0.17457763120814676, 0.50000000000000000, 0.10000000000000001,
4138 0.17453292519943295 },
4139 { 0.34943246340849154, 0.50000000000000000, 0.10000000000000001,
4140 0.34906585039886590 },
4141 { 0.52487937869610790, 0.50000000000000000, 0.10000000000000001,
4142 0.52359877559829882 },
4143 { 0.70127785096388384, 0.50000000000000000, 0.10000000000000001,
4144 0.69813170079773179 },
4145 { 0.87898815988624479, 0.50000000000000000, 0.10000000000000001,
4146 0.87266462599716477 },
4147 { 1.0582764576094172, 0.50000000000000000, 0.10000000000000001,
4148 1.0471975511965976 },
4149 { 1.2391936844060205, 0.50000000000000000, 0.10000000000000001,
4150 1.2217304763960306 },
4151 { 1.4214793542995841, 0.50000000000000000, 0.10000000000000001,
4152 1.3962634015954636 },
4153 { 1.6045524936084892, 0.50000000000000000, 0.10000000000000001,
4154 1.5707963267948966 },
4156 const double toler142
= 2.5000000000000020e-13;
4158 // Test data for k=0.50000000000000000, nu=0.20000000000000001.
4159 // max(|f - f_GSL|): 2.2204460492503131e-16
4160 // max(|f - f_GSL| / |f_GSL|): 3.2114786773102175e-16
4161 const testcase_ellint_3
<double>
4164 { 0.0000000000000000, 0.50000000000000000, 0.20000000000000001,
4165 0.0000000000000000 },
4166 { 0.17440204336345433, 0.50000000000000000, 0.20000000000000001,
4167 0.17453292519943295 },
4168 { 0.34806552388338824, 0.50000000000000000, 0.20000000000000001,
4169 0.34906585039886590 },
4170 { 0.52046416757129810, 0.50000000000000000, 0.20000000000000001,
4171 0.52359877559829882 },
4172 { 0.69140924550993865, 0.50000000000000000, 0.20000000000000001,
4173 0.69813170079773179 },
4174 { 0.86104678636125520, 0.50000000000000000, 0.20000000000000001,
4175 0.87266462599716477 },
4176 { 1.0297439459053981, 0.50000000000000000, 0.20000000000000001,
4177 1.0471975511965976 },
4178 { 1.1979214112912033, 0.50000000000000000, 0.20000000000000001,
4179 1.2217304763960306 },
4180 { 1.3659033858648930, 0.50000000000000000, 0.20000000000000001,
4181 1.3962634015954636 },
4182 { 1.5338490483665983, 0.50000000000000000, 0.20000000000000001,
4183 1.5707963267948966 },
4185 const double toler143
= 2.5000000000000020e-13;
4187 // Test data for k=0.50000000000000000, nu=0.29999999999999999.
4188 // max(|f - f_GSL|): 2.2204460492503131e-16
4189 // max(|f - f_GSL| / |f_GSL|): 3.2557837230041312e-16
4190 const testcase_ellint_3
<double>
4193 { 0.0000000000000000, 0.50000000000000000, 0.29999999999999999,
4194 0.0000000000000000 },
4195 { 0.17422708752228896, 0.50000000000000000, 0.29999999999999999,
4196 0.17453292519943295 },
4197 { 0.34671739434855858, 0.50000000000000000, 0.29999999999999999,
4198 0.34906585039886590 },
4199 { 0.51617616305641878, 0.50000000000000000, 0.29999999999999999,
4200 0.52359877559829882 },
4201 { 0.68200047612545167, 0.50000000000000000, 0.29999999999999999,
4202 0.69813170079773179 },
4203 { 0.84427217869498372, 0.50000000000000000, 0.29999999999999999,
4204 0.87266462599716477 },
4205 { 1.0035637821389782, 0.50000000000000000, 0.29999999999999999,
4206 1.0471975511965976 },
4207 { 1.1606800483933111, 0.50000000000000000, 0.29999999999999999,
4208 1.2217304763960306 },
4209 { 1.3164407134643459, 0.50000000000000000, 0.29999999999999999,
4210 1.3962634015954636 },
4211 { 1.4715681939859637, 0.50000000000000000, 0.29999999999999999,
4212 1.5707963267948966 },
4214 const double toler144
= 2.5000000000000020e-13;
4216 // Test data for k=0.50000000000000000, nu=0.40000000000000002.
4217 // max(|f - f_GSL|): 2.2204460492503131e-16
4218 // max(|f - f_GSL| / |f_GSL|): 3.2992508582900068e-16
4219 const testcase_ellint_3
<double>
4222 { 0.0000000000000000, 0.50000000000000000, 0.40000000000000002,
4223 0.0000000000000000 },
4224 { 0.17405275963859917, 0.50000000000000000, 0.40000000000000002,
4225 0.17453292519943295 },
4226 { 0.34538761957029329, 0.50000000000000000, 0.40000000000000002,
4227 0.34906585039886590 },
4228 { 0.51200902646603907, 0.50000000000000000, 0.40000000000000002,
4229 0.52359877559829882 },
4230 { 0.67301522212868792, 0.50000000000000000, 0.40000000000000002,
4231 0.69813170079773179 },
4232 { 0.82853844466313320, 0.50000000000000000, 0.40000000000000002,
4233 0.87266462599716477 },
4234 { 0.97942097862681488, 0.50000000000000000, 0.40000000000000002,
4235 1.0471975511965976 },
4236 { 1.1268429801220614, 0.50000000000000000, 0.40000000000000002,
4237 1.2217304763960306 },
4238 { 1.2720406704533922, 0.50000000000000000, 0.40000000000000002,
4239 1.3962634015954636 },
4240 { 1.4161679518465340, 0.50000000000000000, 0.40000000000000002,
4241 1.5707963267948966 },
4243 const double toler145
= 2.5000000000000020e-13;
4245 // Test data for k=0.50000000000000000, nu=0.50000000000000000.
4246 // max(|f - f_GSL|): 2.2204460492503131e-16
4247 // max(|f - f_GSL| / |f_GSL|): 3.3419255755184137e-16
4248 const testcase_ellint_3
<double>
4251 { 0.0000000000000000, 0.50000000000000000, 0.50000000000000000,
4252 0.0000000000000000 },
4253 { 0.17387905570381157, 0.50000000000000000, 0.50000000000000000,
4254 0.17453292519943295 },
4255 { 0.34407576010465207, 0.50000000000000000, 0.50000000000000000,
4256 0.34906585039886590 },
4257 { 0.50795686560160824, 0.50000000000000000, 0.50000000000000000,
4258 0.52359877559829882 },
4259 { 0.66442115453330164, 0.50000000000000000, 0.50000000000000000,
4260 0.69813170079773179 },
4261 { 0.81373829119355345, 0.50000000000000000, 0.50000000000000000,
4262 0.87266462599716477 },
4263 { 0.95705743313235825, 0.50000000000000000, 0.50000000000000000,
4264 1.0471975511965976 },
4265 { 1.0959131991362554, 0.50000000000000000, 0.50000000000000000,
4266 1.2217304763960306 },
4267 { 1.2318900529754597, 0.50000000000000000, 0.50000000000000000,
4268 1.3962634015954636 },
4269 { 1.3664739530045971, 0.50000000000000000, 0.50000000000000000,
4270 1.5707963267948966 },
4272 const double toler146
= 2.5000000000000020e-13;
4274 // Test data for k=0.50000000000000000, nu=0.59999999999999998.
4275 // max(|f - f_GSL|): 2.2204460492503131e-16
4276 // max(|f - f_GSL| / |f_GSL|): 3.3838494104749599e-16
4277 const testcase_ellint_3
<double>
4280 { 0.0000000000000000, 0.50000000000000000, 0.59999999999999998,
4281 0.0000000000000000 },
4282 { 0.17370597174637581, 0.50000000000000000, 0.59999999999999998,
4283 0.17453292519943295 },
4284 { 0.34278139158591414, 0.50000000000000000, 0.59999999999999998,
4285 0.34906585039886590 },
4286 { 0.50401419439302708, 0.50000000000000000, 0.59999999999999998,
4287 0.52359877559829882 },
4288 { 0.65618938076167210, 0.50000000000000000, 0.59999999999999998,
4289 0.69813170079773179 },
4290 { 0.79977959248855424, 0.50000000000000000, 0.59999999999999998,
4291 0.87266462599716477 },
4292 { 0.93625925190753545, 0.50000000000000000, 0.59999999999999998,
4293 1.0471975511965976 },
4294 { 1.0674905658379708, 0.50000000000000000, 0.59999999999999998,
4295 1.2217304763960306 },
4296 { 1.1953481298023050, 0.50000000000000000, 0.59999999999999998,
4297 1.3962634015954636 },
4298 { 1.3215740290190876, 0.50000000000000000, 0.59999999999999998,
4299 1.5707963267948966 },
4301 const double toler147
= 2.5000000000000020e-13;
4303 // Test data for k=0.50000000000000000, nu=0.69999999999999996.
4304 // max(|f - f_GSL|): 2.2204460492503131e-16
4305 // max(|f - f_GSL| / |f_GSL|): 3.4250604066951477e-16
4306 const testcase_ellint_3
<double>
4309 { 0.0000000000000000, 0.50000000000000000, 0.69999999999999996,
4310 0.0000000000000000 },
4311 { 0.17353350383131641, 0.50000000000000000, 0.69999999999999996,
4312 0.17453292519943295 },
4313 { 0.34150410405436771, 0.50000000000000000, 0.69999999999999996,
4314 0.34906585039886590 },
4315 { 0.50017589696443487, 0.50000000000000000, 0.69999999999999996,
4316 0.52359877559829882 },
4317 { 0.64829398188419951, 0.50000000000000000, 0.69999999999999996,
4318 0.69813170079773179 },
4319 { 0.78658270782402073, 0.50000000000000000, 0.69999999999999996,
4320 0.87266462599716477 },
4321 { 0.91684738336675053, 0.50000000000000000, 0.69999999999999996,
4322 1.0471975511965976 },
4323 { 1.0412486789555935, 0.50000000000000000, 0.69999999999999996,
4324 1.2217304763960306 },
4325 { 1.1619021847612001, 0.50000000000000000, 0.69999999999999996,
4326 1.3962634015954636 },
4327 { 1.2807475181182502, 0.50000000000000000, 0.69999999999999996,
4328 1.5707963267948966 },
4330 const double toler148
= 2.5000000000000020e-13;
4332 // Test data for k=0.50000000000000000, nu=0.80000000000000004.
4333 // max(|f - f_GSL|): 4.4408920985006262e-16
4334 // max(|f - f_GSL| / |f_GSL|): 3.5715240651179632e-16
4335 const testcase_ellint_3
<double>
4338 { 0.0000000000000000, 0.50000000000000000, 0.80000000000000004,
4339 0.0000000000000000 },
4340 { 0.17336164805979126, 0.50000000000000000, 0.80000000000000004,
4341 0.17453292519943295 },
4342 { 0.34024350132086773, 0.50000000000000000, 0.80000000000000004,
4343 0.34906585039886590 },
4344 { 0.49643719555734073, 0.50000000000000000, 0.80000000000000004,
4345 0.52359877559829882 },
4346 { 0.64071162456976150, 0.50000000000000000, 0.80000000000000004,
4347 0.69813170079773179 },
4348 { 0.77407836177211908, 0.50000000000000000, 0.80000000000000004,
4349 0.87266462599716477 },
4350 { 0.89867058251905652, 0.50000000000000000, 0.80000000000000004,
4351 1.0471975511965976 },
4352 { 1.0169181822134910, 0.50000000000000000, 0.80000000000000004,
4353 1.2217304763960306 },
4354 { 1.1311363312779448, 0.50000000000000000, 0.80000000000000004,
4355 1.3962634015954636 },
4356 { 1.2434165408189539, 0.50000000000000000, 0.80000000000000004,
4357 1.5707963267948966 },
4359 const double toler149
= 2.5000000000000020e-13;
4361 // Test data for k=0.50000000000000000, nu=0.90000000000000002.
4362 // max(|f - f_GSL|): 4.4408920985006262e-16
4363 // max(|f - f_GSL| / |f_GSL|): 4.4664649039489274e-16
4364 const testcase_ellint_3
<double>
4367 { 0.0000000000000000, 0.50000000000000000, 0.90000000000000002,
4368 0.0000000000000000 },
4369 { 0.17319040056865681, 0.50000000000000000, 0.90000000000000002,
4370 0.17453292519943295 },
4371 { 0.33899920036578557, 0.50000000000000000, 0.90000000000000002,
4372 0.34906585039886590 },
4373 { 0.49279362182695174, 0.50000000000000000, 0.90000000000000002,
4374 0.52359877559829882 },
4375 { 0.63342123379746151, 0.50000000000000000, 0.90000000000000002,
4376 0.69813170079773179 },
4377 { 0.76220595179550321, 0.50000000000000000, 0.90000000000000002,
4378 0.87266462599716477 },
4379 { 0.88160004743532294, 0.50000000000000000, 0.90000000000000002,
4380 1.0471975511965976 },
4381 { 0.99427448642310123, 0.50000000000000000, 0.90000000000000002,
4382 1.2217304763960306 },
4383 { 1.1027091512470095, 0.50000000000000000, 0.90000000000000002,
4384 1.3962634015954636 },
4385 { 1.2091116095504744, 0.50000000000000000, 0.90000000000000002,
4386 1.5707963267948966 },
4388 const double toler150
= 2.5000000000000020e-13;
4390 // Test data for k=0.60000000000000009, nu=0.0000000000000000.
4391 // max(|f - f_GSL|): 4.4408920985006262e-16
4392 // max(|f - f_GSL| / |f_GSL|): 3.3664899092028927e-16
4393 const testcase_ellint_3
<double>
4396 { 0.0000000000000000, 0.60000000000000009, 0.0000000000000000,
4397 0.0000000000000000 },
4398 { 0.17485154362988359, 0.60000000000000009, 0.0000000000000000,
4399 0.17453292519943295 },
4400 { 0.35160509865544326, 0.60000000000000009, 0.0000000000000000,
4401 0.34906585039886590 },
4402 { 0.53210652578446138, 0.60000000000000009, 0.0000000000000000,
4403 0.52359877559829882 },
4404 { 0.71805304664485659, 0.60000000000000009, 0.0000000000000000,
4405 0.69813170079773179 },
4406 { 0.91082759030195970, 0.60000000000000009, 0.0000000000000000,
4407 0.87266462599716477 },
4408 { 1.1112333229323361, 0.60000000000000009, 0.0000000000000000,
4409 1.0471975511965976 },
4410 { 1.3191461190365270, 0.60000000000000009, 0.0000000000000000,
4411 1.2217304763960306 },
4412 { 1.5332022105084775, 0.60000000000000009, 0.0000000000000000,
4413 1.3962634015954636 },
4414 { 1.7507538029157526, 0.60000000000000009, 0.0000000000000000,
4415 1.5707963267948966 },
4417 const double toler151
= 2.5000000000000020e-13;
4419 // Test data for k=0.60000000000000009, nu=0.10000000000000001.
4420 // max(|f - f_GSL|): 4.4408920985006262e-16
4421 // max(|f - f_GSL| / |f_GSL|): 3.4937942733669112e-16
4422 const testcase_ellint_3
<double>
4425 { 0.0000000000000000, 0.60000000000000009, 0.10000000000000001,
4426 0.0000000000000000 },
4427 { 0.17467514275022011, 0.60000000000000009, 0.10000000000000001,
4428 0.17453292519943295 },
4429 { 0.35021333086258255, 0.60000000000000009, 0.10000000000000001,
4430 0.34906585039886590 },
4431 { 0.52751664092962691, 0.60000000000000009, 0.10000000000000001,
4432 0.52359877559829882 },
4433 { 0.70752126971957874, 0.60000000000000009, 0.10000000000000001,
4434 0.69813170079773179 },
4435 { 0.89111058756112871, 0.60000000000000009, 0.10000000000000001,
4436 0.87266462599716477 },
4437 { 1.0789241202877768, 0.60000000000000009, 0.10000000000000001,
4438 1.0471975511965976 },
4439 { 1.2710800210399946, 0.60000000000000009, 0.10000000000000001,
4440 1.2217304763960306 },
4441 { 1.4669060574440276, 0.60000000000000009, 0.10000000000000001,
4442 1.3962634015954636 },
4443 { 1.6648615773343014, 0.60000000000000009, 0.10000000000000001,
4444 1.5707963267948966 },
4446 const double toler152
= 2.5000000000000020e-13;
4448 // Test data for k=0.60000000000000009, nu=0.20000000000000001.
4449 // max(|f - f_GSL|): 6.6613381477509392e-16
4450 // max(|f - f_GSL| / |f_GSL|): 4.1891472451898755e-16
4451 const testcase_ellint_3
<double>
4454 { 0.0000000000000000, 0.60000000000000009, 0.20000000000000001,
4455 0.0000000000000000 },
4456 { 0.17449937871800650, 0.60000000000000009, 0.20000000000000001,
4457 0.17453292519943295 },
4458 { 0.34884093647346553, 0.60000000000000009, 0.20000000000000001,
4459 0.34906585039886590 },
4460 { 0.52306221119844087, 0.60000000000000009, 0.20000000000000001,
4461 0.52359877559829882 },
4462 { 0.69749955678982223, 0.60000000000000009, 0.20000000000000001,
4463 0.69813170079773179 },
4464 { 0.87274610682416853, 0.60000000000000009, 0.20000000000000001,
4465 0.87266462599716477 },
4466 { 1.0494620540750792, 0.60000000000000009, 0.20000000000000001,
4467 1.0471975511965976 },
4468 { 1.2280847305507339, 0.60000000000000009, 0.20000000000000001,
4469 1.2217304763960306 },
4470 { 1.4085436279696888, 0.60000000000000009, 0.20000000000000001,
4471 1.3962634015954636 },
4472 { 1.5901418016279374, 0.60000000000000009, 0.20000000000000001,
4473 1.5707963267948966 },
4475 const double toler153
= 2.5000000000000020e-13;
4477 // Test data for k=0.60000000000000009, nu=0.29999999999999999.
4478 // max(|f - f_GSL|): 4.4408920985006262e-16
4479 // max(|f - f_GSL| / |f_GSL|): 3.7339932380431439e-16
4480 const testcase_ellint_3
<double>
4483 { 0.0000000000000000, 0.60000000000000009, 0.29999999999999999,
4484 0.0000000000000000 },
4485 { 0.17432424744393932, 0.60000000000000009, 0.29999999999999999,
4486 0.17453292519943295 },
4487 { 0.34748744127146447, 0.60000000000000009, 0.29999999999999999,
4488 0.34906585039886590 },
4489 { 0.51873632743924825, 0.60000000000000009, 0.29999999999999999,
4490 0.52359877559829882 },
4491 { 0.68794610396313116, 0.60000000000000009, 0.29999999999999999,
4492 0.69813170079773179 },
4493 { 0.85558070175468726, 0.60000000000000009, 0.29999999999999999,
4494 0.87266462599716477 },
4495 { 1.0224416343605653, 0.60000000000000009, 0.29999999999999999,
4496 1.0471975511965976 },
4497 { 1.1893144457936788, 0.60000000000000009, 0.29999999999999999,
4498 1.2217304763960306 },
4499 { 1.3566435377982575, 0.60000000000000009, 0.29999999999999999,
4500 1.3962634015954636 },
4501 { 1.5243814243493585, 0.60000000000000009, 0.29999999999999999,
4502 1.5707963267948966 },
4504 const double toler154
= 2.5000000000000020e-13;
4506 // Test data for k=0.60000000000000009, nu=0.40000000000000002.
4507 // max(|f - f_GSL|): 6.6613381477509392e-16
4508 // max(|f - f_GSL| / |f_GSL|): 4.5440898085101625e-16
4509 const testcase_ellint_3
<double>
4512 { 0.0000000000000000, 0.60000000000000009, 0.40000000000000002,
4513 0.0000000000000000 },
4514 { 0.17414974487670717, 0.60000000000000009, 0.40000000000000002,
4515 0.17453292519943295 },
4516 { 0.34615238767335027, 0.60000000000000009, 0.40000000000000002,
4517 0.34906585039886590 },
4518 { 0.51453257838108557, 0.60000000000000009, 0.40000000000000002,
4519 0.52359877559829882 },
4520 { 0.67882386787534399, 0.60000000000000009, 0.40000000000000002,
4521 0.69813170079773179 },
4522 { 0.83948470233173578, 0.60000000000000009, 0.40000000000000002,
4523 0.87266462599716477 },
4524 { 0.99753496200073977, 0.60000000000000009, 0.40000000000000002,
4525 1.0471975511965976 },
4526 { 1.1541101404388487, 0.60000000000000009, 0.40000000000000002,
4527 1.2217304763960306 },
4528 { 1.3100911323398816, 0.60000000000000009, 0.40000000000000002,
4529 1.3962634015954636 },
4530 { 1.4659345278069984, 0.60000000000000009, 0.40000000000000002,
4531 1.5707963267948966 },
4533 const double toler155
= 2.5000000000000020e-13;
4535 // Test data for k=0.60000000000000009, nu=0.50000000000000000.
4536 // max(|f - f_GSL|): 6.6613381477509392e-16
4537 // max(|f - f_GSL| / |f_GSL|): 4.7124937590522226e-16
4538 const testcase_ellint_3
<double>
4541 { 0.0000000000000000, 0.60000000000000009, 0.50000000000000000,
4542 0.0000000000000000 },
4543 { 0.17397586700252807, 0.60000000000000009, 0.50000000000000000,
4544 0.17453292519943295 },
4545 { 0.34483533397138516, 0.60000000000000009, 0.50000000000000000,
4546 0.34906585039886590 },
4547 { 0.51044500461706477, 0.60000000000000009, 0.50000000000000000,
4548 0.52359877559829882 },
4549 { 0.67009988034712664, 0.60000000000000009, 0.50000000000000000,
4550 0.69813170079773179 },
4551 { 0.82434762375735193, 0.60000000000000009, 0.50000000000000000,
4552 0.87266462599716477 },
4553 { 0.97447346702798998, 0.60000000000000009, 0.50000000000000000,
4554 1.0471975511965976 },
4555 { 1.1219494000522143, 0.60000000000000009, 0.50000000000000000,
4556 1.2217304763960306 },
4557 { 1.2680242605954486, 0.60000000000000009, 0.50000000000000000,
4558 1.3962634015954636 },
4559 { 1.4135484285693078, 0.60000000000000009, 0.50000000000000000,
4560 1.5707963267948966 },
4562 const double toler156
= 2.5000000000000020e-13;
4564 // Test data for k=0.60000000000000009, nu=0.59999999999999998.
4565 // max(|f - f_GSL|): 4.4408920985006262e-16
4566 // max(|f - f_GSL| / |f_GSL|): 4.0652177678695900e-16
4567 const testcase_ellint_3
<double>
4570 { 0.0000000000000000, 0.60000000000000009, 0.59999999999999998,
4571 0.0000000000000000 },
4572 { 0.17380260984469353, 0.60000000000000009, 0.59999999999999998,
4573 0.17453292519943295 },
4574 { 0.34353585361777839, 0.60000000000000009, 0.59999999999999998,
4575 0.34906585039886590 },
4576 { 0.50646805774321380, 0.60000000000000009, 0.59999999999999998,
4577 0.52359877559829882 },
4578 { 0.66174468108625506, 0.60000000000000009, 0.59999999999999998,
4579 0.69813170079773179 },
4580 { 0.81007462280278408, 0.60000000000000009, 0.59999999999999998,
4581 0.87266462599716477 },
4582 { 0.95303466945718729, 0.60000000000000009, 0.59999999999999998,
4583 1.0471975511965976 },
4584 { 1.0924118588677505, 0.60000000000000009, 0.59999999999999998,
4585 1.2217304763960306 },
4586 { 1.2297640574847937, 0.60000000000000009, 0.59999999999999998,
4587 1.3962634015954636 },
4588 { 1.3662507535812816, 0.60000000000000009, 0.59999999999999998,
4589 1.5707963267948966 },
4591 const double toler157
= 2.5000000000000020e-13;
4593 // Test data for k=0.60000000000000009, nu=0.69999999999999996.
4594 // max(|f - f_GSL|): 4.4408920985006262e-16
4595 // max(|f - f_GSL| / |f_GSL|): 4.1692457486457856e-16
4596 const testcase_ellint_3
<double>
4599 { 0.0000000000000000, 0.60000000000000009, 0.69999999999999996,
4600 0.0000000000000000 },
4601 { 0.17362996946312007, 0.60000000000000009, 0.69999999999999996,
4602 0.17453292519943295 },
4603 { 0.34225353454870588, 0.60000000000000009, 0.69999999999999996,
4604 0.34906585039886590 },
4605 { 0.50259656397799524, 0.60000000000000009, 0.69999999999999996,
4606 0.52359877559829882 },
4607 { 0.65373184496628933, 0.60000000000000009, 0.69999999999999996,
4608 0.69813170079773179 },
4609 { 0.79658372884056439, 0.60000000000000009, 0.69999999999999996,
4610 0.87266462599716477 },
4611 { 0.93303240100245421, 0.60000000000000009, 0.69999999999999996,
4612 1.0471975511965976 },
4613 { 1.0651547944716557, 0.60000000000000009, 0.69999999999999996,
4614 1.2217304763960306 },
4615 { 1.1947676204853441, 0.60000000000000009, 0.69999999999999996,
4616 1.3962634015954636 },
4617 { 1.3232737468822813, 0.60000000000000009, 0.69999999999999996,
4618 1.5707963267948966 },
4620 const double toler158
= 2.5000000000000020e-13;
4622 // Test data for k=0.60000000000000009, nu=0.80000000000000004.
4623 // max(|f - f_GSL|): 4.4408920985006262e-16
4624 // max(|f - f_GSL| / |f_GSL|): 4.2705175719241326e-16
4625 const testcase_ellint_3
<double>
4628 { 0.0000000000000000, 0.60000000000000009, 0.80000000000000004,
4629 0.0000000000000000 },
4630 { 0.17345794195390685, 0.60000000000000009, 0.80000000000000004,
4631 0.17453292519943295 },
4632 { 0.34098797854531027, 0.60000000000000009, 0.80000000000000004,
4633 0.34906585039886590 },
4634 { 0.49882569168826213, 0.60000000000000009, 0.80000000000000004,
4635 0.52359877559829882 },
4636 { 0.64603758566475511, 0.60000000000000009, 0.80000000000000004,
4637 0.69813170079773179 },
4638 { 0.78380365594769730, 0.60000000000000009, 0.80000000000000004,
4639 0.87266462599716477 },
4640 { 0.91430946255611190, 0.60000000000000009, 0.80000000000000004,
4641 1.0471975511965976 },
4642 { 1.0398955217270607, 0.60000000000000009, 0.80000000000000004,
4643 1.2217304763960306 },
4644 { 1.1625948314277679, 0.60000000000000009, 0.80000000000000004,
4645 1.3962634015954636 },
4646 { 1.2840021261752192, 0.60000000000000009, 0.80000000000000004,
4647 1.5707963267948966 },
4649 const double toler159
= 2.5000000000000020e-13;
4651 // Test data for k=0.60000000000000009, nu=0.90000000000000002.
4652 // max(|f - f_GSL|): 4.4408920985006262e-16
4653 // max(|f - f_GSL| / |f_GSL|): 3.5585887739668036e-16
4654 const testcase_ellint_3
<double>
4657 { 0.0000000000000000, 0.60000000000000009, 0.90000000000000002,
4658 0.0000000000000000 },
4659 { 0.17328652344890030, 0.60000000000000009, 0.90000000000000002,
4660 0.17453292519943295 },
4661 { 0.33973880062929018, 0.60000000000000009, 0.90000000000000002,
4662 0.34906585039886590 },
4663 { 0.49515092233122743, 0.60000000000000009, 0.90000000000000002,
4664 0.52359877559829882 },
4665 { 0.63864042139737043, 0.60000000000000009, 0.90000000000000002,
4666 0.69813170079773179 },
4667 { 0.77167205646538850, 0.60000000000000009, 0.90000000000000002,
4668 0.87266462599716477 },
4669 { 0.89673202848034383, 0.60000000000000009, 0.90000000000000002,
4670 1.0471975511965976 },
4671 { 1.0163984492661304, 0.60000000000000009, 0.90000000000000002,
4672 1.2217304763960306 },
4673 { 1.1328845785162431, 0.60000000000000009, 0.90000000000000002,
4674 1.3962634015954636 },
4675 { 1.2479362973851873, 0.60000000000000009, 0.90000000000000002,
4676 1.5707963267948966 },
4678 const double toler160
= 2.5000000000000020e-13;
4680 // Test data for k=0.69999999999999996, nu=0.0000000000000000.
4681 // max(|f - f_GSL|): 3.3306690738754696e-16
4682 // max(|f - f_GSL| / |f_GSL|): 3.5930208052157665e-16
4683 const testcase_ellint_3
<double>
4686 { 0.0000000000000000, 0.69999999999999996, 0.0000000000000000,
4687 0.0000000000000000 },
4688 { 0.17496737466916723, 0.69999999999999996, 0.0000000000000000,
4689 0.17453292519943295 },
4690 { 0.35254687535677925, 0.69999999999999996, 0.0000000000000000,
4691 0.34906585039886590 },
4692 { 0.53536740275997119, 0.69999999999999996, 0.0000000000000000,
4693 0.52359877559829882 },
4694 { 0.72603797651684454, 0.69999999999999996, 0.0000000000000000,
4695 0.69813170079773179 },
4696 { 0.92698296348313458, 0.69999999999999996, 0.0000000000000000,
4697 0.87266462599716477 },
4698 { 1.1400447527693316, 0.69999999999999996, 0.0000000000000000,
4699 1.0471975511965976 },
4700 { 1.3657668117194073, 0.69999999999999996, 0.0000000000000000,
4701 1.2217304763960306 },
4702 { 1.6024686895959159, 0.69999999999999996, 0.0000000000000000,
4703 1.3962634015954636 },
4704 { 1.8456939983747236, 0.69999999999999996, 0.0000000000000000,
4705 1.5707963267948966 },
4707 const double toler161
= 2.5000000000000020e-13;
4709 // Test data for k=0.69999999999999996, nu=0.10000000000000001.
4710 // max(|f - f_GSL|): 3.3306690738754696e-16
4711 // max(|f - f_GSL| / |f_GSL|): 3.6735282577377367e-16
4712 const testcase_ellint_3
<double>
4715 { 0.0000000000000000, 0.69999999999999996, 0.10000000000000001,
4716 0.0000000000000000 },
4717 { 0.17479076384884684, 0.69999999999999996, 0.10000000000000001,
4718 0.17453292519943295 },
4719 { 0.35114844900396364, 0.69999999999999996, 0.10000000000000001,
4720 0.34906585039886590 },
4721 { 0.53072776947527001, 0.69999999999999996, 0.10000000000000001,
4722 0.52359877559829882 },
4723 { 0.71530198262386235, 0.69999999999999996, 0.10000000000000001,
4724 0.69813170079773179 },
4725 { 0.90666760677828306, 0.69999999999999996, 0.10000000000000001,
4726 0.87266462599716477 },
4727 { 1.1063366517438080, 0.69999999999999996, 0.10000000000000001,
4728 1.0471975511965976 },
4729 { 1.3149477243092149, 0.69999999999999996, 0.10000000000000001,
4730 1.2217304763960306 },
4731 { 1.5314886725038925, 0.69999999999999996, 0.10000000000000001,
4732 1.3962634015954636 },
4733 { 1.7528050171757608, 0.69999999999999996, 0.10000000000000001,
4734 1.5707963267948966 },
4736 const double toler162
= 2.5000000000000020e-13;
4738 // Test data for k=0.69999999999999996, nu=0.20000000000000001.
4739 // max(|f - f_GSL|): 3.3306690738754696e-16
4740 // max(|f - f_GSL| / |f_GSL|): 3.7517969287516802e-16
4741 const testcase_ellint_3
<double>
4744 { 0.0000000000000000, 0.69999999999999996, 0.20000000000000001,
4745 0.0000000000000000 },
4746 { 0.17461479077791475, 0.69999999999999996, 0.20000000000000001,
4747 0.17453292519943295 },
4748 { 0.34976950621407538, 0.69999999999999996, 0.20000000000000001,
4749 0.34906585039886590 },
4750 { 0.52622533231350177, 0.69999999999999996, 0.20000000000000001,
4751 0.52359877559829882 },
4752 { 0.70508774017895215, 0.69999999999999996, 0.20000000000000001,
4753 0.69813170079773179 },
4754 { 0.88775302531730294, 0.69999999999999996, 0.20000000000000001,
4755 0.87266462599716477 },
4756 { 1.0756195476149006, 0.69999999999999996, 0.20000000000000001,
4757 1.0471975511965976 },
4758 { 1.2695349716654374, 0.69999999999999996, 0.20000000000000001,
4759 1.2217304763960306 },
4760 { 1.4690814617070540, 0.69999999999999996, 0.20000000000000001,
4761 1.3962634015954636 },
4762 { 1.6721098780092145, 0.69999999999999996, 0.20000000000000001,
4763 1.5707963267948966 },
4765 const double toler163
= 2.5000000000000020e-13;
4767 // Test data for k=0.69999999999999996, nu=0.29999999999999999.
4768 // max(|f - f_GSL|): 4.4408920985006262e-16
4769 // max(|f - f_GSL| / |f_GSL|): 3.8280039841080712e-16
4770 const testcase_ellint_3
<double>
4773 { 0.0000000000000000, 0.69999999999999996, 0.29999999999999999,
4774 0.0000000000000000 },
4775 { 0.17443945136076175, 0.69999999999999996, 0.29999999999999999,
4776 0.17453292519943295 },
4777 { 0.34840956983535287, 0.69999999999999996, 0.29999999999999999,
4778 0.34906585039886590 },
4779 { 0.52185308551329168, 0.69999999999999996, 0.29999999999999999,
4780 0.52359877559829882 },
4781 { 0.69535240431168255, 0.69999999999999996, 0.29999999999999999,
4782 0.69813170079773179 },
4783 { 0.87007983473964923, 0.69999999999999996, 0.29999999999999999,
4784 0.87266462599716477 },
4785 { 1.0474657975577066, 0.69999999999999996, 0.29999999999999999,
4786 1.0471975511965976 },
4787 { 1.2286225419931891, 0.69999999999999996, 0.29999999999999999,
4788 1.2217304763960306 },
4789 { 1.4136490671013271, 0.69999999999999996, 0.29999999999999999,
4790 1.3962634015954636 },
4791 { 1.6011813647733213, 0.69999999999999996, 0.29999999999999999,
4792 1.5707963267948966 },
4794 const double toler164
= 2.5000000000000020e-13;
4796 // Test data for k=0.69999999999999996, nu=0.40000000000000002.
4797 // max(|f - f_GSL|): 4.4408920985006262e-16
4798 // max(|f - f_GSL| / |f_GSL|): 4.3472957053482092e-16
4799 const testcase_ellint_3
<double>
4802 { 0.0000000000000000, 0.69999999999999996, 0.40000000000000002,
4803 0.0000000000000000 },
4804 { 0.17426474153983229, 0.69999999999999996, 0.40000000000000002,
4805 0.17453292519943295 },
4806 { 0.34706817945773732, 0.69999999999999996, 0.40000000000000002,
4807 0.34906585039886590 },
4808 { 0.51760452851738148, 0.69999999999999996, 0.40000000000000002,
4809 0.52359877559829882 },
4810 { 0.68605801534722755, 0.69999999999999996, 0.40000000000000002,
4811 0.69813170079773179 },
4812 { 0.85351339387296532, 0.69999999999999996, 0.40000000000000002,
4813 0.87266462599716477 },
4814 { 1.0215297967969539, 0.69999999999999996, 0.40000000000000002,
4815 1.0471975511965976 },
4816 { 1.1915051074460530, 0.69999999999999996, 0.40000000000000002,
4817 1.2217304763960306 },
4818 { 1.3639821911744707, 0.69999999999999996, 0.40000000000000002,
4819 1.3962634015954636 },
4820 { 1.5382162002954762, 0.69999999999999996, 0.40000000000000002,
4821 1.5707963267948966 },
4823 const double toler165
= 2.5000000000000020e-13;
4825 // Test data for k=0.69999999999999996, nu=0.50000000000000000.
4826 // max(|f - f_GSL|): 3.3306690738754696e-16
4827 // max(|f - f_GSL| / |f_GSL|): 3.9748346743390620e-16
4828 const testcase_ellint_3
<double>
4831 { 0.0000000000000000, 0.69999999999999996, 0.50000000000000000,
4832 0.0000000000000000 },
4833 { 0.17409065729516096, 0.69999999999999996, 0.50000000000000000,
4834 0.17453292519943295 },
4835 { 0.34574489064986091, 0.69999999999999996, 0.50000000000000000,
4836 0.34906585039886590 },
4837 { 0.51347361925579782, 0.69999999999999996, 0.50000000000000000,
4838 0.52359877559829882 },
4839 { 0.67717079489579279, 0.69999999999999996, 0.50000000000000000,
4840 0.69813170079773179 },
4841 { 0.83793902055292280, 0.69999999999999996, 0.50000000000000000,
4842 0.87266462599716477 },
4843 { 0.99752863545289705, 0.69999999999999996, 0.50000000000000000,
4844 1.0471975511965976 },
4845 { 1.1576240080401501, 0.69999999999999996, 0.50000000000000000,
4846 1.2217304763960306 },
4847 { 1.3191464023923762, 0.69999999999999996, 0.50000000000000000,
4848 1.3962634015954636 },
4849 { 1.4818433192178544, 0.69999999999999996, 0.50000000000000000,
4850 1.5707963267948966 },
4852 const double toler166
= 2.5000000000000020e-13;
4854 // Test data for k=0.69999999999999996, nu=0.59999999999999998.
4855 // max(|f - f_GSL|): 3.3306690738754696e-16
4856 // max(|f - f_GSL| / |f_GSL|): 4.0457157538295173e-16
4857 const testcase_ellint_3
<double>
4860 { 0.0000000000000000, 0.69999999999999996, 0.59999999999999998,
4861 0.0000000000000000 },
4862 { 0.17391719464391614, 0.69999999999999996, 0.59999999999999998,
4863 0.17453292519943295 },
4864 { 0.34443927423869031, 0.69999999999999996, 0.59999999999999998,
4865 0.34906585039886590 },
4866 { 0.50945473266486063, 0.69999999999999996, 0.59999999999999998,
4867 0.52359877559829882 },
4868 { 0.66866056326513812, 0.69999999999999996, 0.59999999999999998,
4869 0.69813170079773179 },
4870 { 0.82325830002337352, 0.69999999999999996, 0.59999999999999998,
4871 0.87266462599716477 },
4872 { 0.97522808245669368, 0.69999999999999996, 0.59999999999999998,
4873 1.0471975511965976 },
4874 { 1.1265300613705285, 0.69999999999999996, 0.59999999999999998,
4875 1.2217304763960306 },
4876 { 1.2784066076152001, 0.69999999999999996, 0.59999999999999998,
4877 1.3962634015954636 },
4878 { 1.4309994736080540, 0.69999999999999996, 0.59999999999999998,
4879 1.5707963267948966 },
4881 const double toler167
= 2.5000000000000020e-13;
4883 // Test data for k=0.69999999999999996, nu=0.69999999999999996.
4884 // max(|f - f_GSL|): 4.4408920985006262e-16
4885 // max(|f - f_GSL| / |f_GSL|): 5.4867405596732161e-16
4886 const testcase_ellint_3
<double>
4889 { 0.0000000000000000, 0.69999999999999996, 0.69999999999999996,
4890 0.0000000000000000 },
4891 { 0.17374434963995031, 0.69999999999999996, 0.69999999999999996,
4892 0.17453292519943295 },
4893 { 0.34315091562900674, 0.69999999999999996, 0.69999999999999996,
4894 0.34906585039886590 },
4895 { 0.50554262375653347, 0.69999999999999996, 0.69999999999999996,
4896 0.52359877559829882 },
4897 { 0.66050025406305801, 0.69999999999999996, 0.69999999999999996,
4898 0.69813170079773179 },
4899 { 0.80938620118847404, 0.69999999999999996, 0.69999999999999996,
4900 0.87266462599716477 },
4901 { 0.95443223855852144, 0.69999999999999996, 0.69999999999999996,
4902 1.0471975511965976 },
4903 { 1.0978573207128304, 0.69999999999999996, 0.69999999999999996,
4904 1.2217304763960306 },
4905 { 1.2411754575007123, 0.69999999999999996, 0.69999999999999996,
4906 1.3962634015954636 },
4907 { 1.3848459188329196, 0.69999999999999996, 0.69999999999999996,
4908 1.5707963267948966 },
4910 const double toler168
= 2.5000000000000020e-13;
4912 // Test data for k=0.69999999999999996, nu=0.80000000000000004.
4913 // max(|f - f_GSL|): 4.4408920985006262e-16
4914 // max(|f - f_GSL| / |f_GSL|): 4.1829502028913879e-16
4915 const testcase_ellint_3
<double>
4918 { 0.0000000000000000, 0.69999999999999996, 0.80000000000000004,
4919 0.0000000000000000 },
4920 { 0.17357211837335740, 0.69999999999999996, 0.80000000000000004,
4921 0.17453292519943295 },
4922 { 0.34187941416012108, 0.69999999999999996, 0.80000000000000004,
4923 0.34906585039886590 },
4924 { 0.50173239465478259, 0.69999999999999996, 0.80000000000000004,
4925 0.52359877559829882 },
4926 { 0.65266550725988315, 0.69999999999999996, 0.80000000000000004,
4927 0.69813170079773179 },
4928 { 0.79624879865249298, 0.69999999999999996, 0.80000000000000004,
4929 0.87266462599716477 },
4930 { 0.93497577043296920, 0.69999999999999996, 0.80000000000000004,
4931 1.0471975511965976 },
4932 { 1.0713041566930750, 0.69999999999999996, 0.80000000000000004,
4933 1.2217304763960306 },
4934 { 1.2069772023255654, 0.69999999999999996, 0.80000000000000004,
4935 1.3962634015954636 },
4936 { 1.3427110650397531, 0.69999999999999996, 0.80000000000000004,
4937 1.5707963267948966 },
4939 const double toler169
= 2.5000000000000020e-13;
4941 // Test data for k=0.69999999999999996, nu=0.90000000000000002.
4942 // max(|f - f_GSL|): 3.3306690738754696e-16
4943 // max(|f - f_GSL| / |f_GSL|): 4.2494869624129105e-16
4944 const testcase_ellint_3
<double>
4947 { 0.0000000000000000, 0.69999999999999996, 0.90000000000000002,
4948 0.0000000000000000 },
4949 { 0.17340049697003637, 0.69999999999999996, 0.90000000000000002,
4950 0.17453292519943295 },
4951 { 0.34062438249741556, 0.69999999999999996, 0.90000000000000002,
4952 0.34906585039886590 },
4953 { 0.49801946510076867, 0.69999999999999996, 0.90000000000000002,
4954 0.52359877559829882 },
4955 { 0.64513432604750476, 0.69999999999999996, 0.90000000000000002,
4956 0.69813170079773179 },
4957 { 0.78378145487573758, 0.69999999999999996, 0.90000000000000002,
4958 0.87266462599716477 },
4959 { 0.91671799500854623, 0.69999999999999996, 0.90000000000000002,
4960 1.0471975511965976 },
4961 { 1.0466193579463123, 0.69999999999999996, 0.90000000000000002,
4962 1.2217304763960306 },
4963 { 1.1754218079199146, 0.69999999999999996, 0.90000000000000002,
4964 1.3962634015954636 },
4965 { 1.3040500499695913, 0.69999999999999996, 0.90000000000000002,
4966 1.5707963267948966 },
4968 const double toler170
= 2.5000000000000020e-13;
4970 // Test data for k=0.80000000000000004, nu=0.0000000000000000.
4971 // max(|f - f_GSL|): 4.4408920985006262e-16
4972 // max(|f - f_GSL| / |f_GSL|): 4.1175183168766718e-16
4973 const testcase_ellint_3
<double>
4976 { 0.0000000000000000, 0.80000000000000004, 0.0000000000000000,
4977 0.0000000000000000 },
4978 { 0.17510154241338899, 0.80000000000000004, 0.0000000000000000,
4979 0.17453292519943295 },
4980 { 0.35365068839779390, 0.80000000000000004, 0.0000000000000000,
4981 0.34906585039886590 },
4982 { 0.53926804409084550, 0.80000000000000004, 0.0000000000000000,
4983 0.52359877559829882 },
4984 { 0.73587926028070361, 0.80000000000000004, 0.0000000000000000,
4985 0.69813170079773179 },
4986 { 0.94770942970071170, 0.80000000000000004, 0.0000000000000000,
4987 0.87266462599716477 },
4988 { 1.1789022995388236, 0.80000000000000004, 0.0000000000000000,
4989 1.0471975511965976 },
4990 { 1.4323027881876009, 0.80000000000000004, 0.0000000000000000,
4991 1.2217304763960306 },
4992 { 1.7069629739121674, 0.80000000000000004, 0.0000000000000000,
4993 1.3962634015954636 },
4994 { 1.9953027776647296, 0.80000000000000004, 0.0000000000000000,
4995 1.5707963267948966 },
4997 const double toler171
= 2.5000000000000020e-13;
4999 // Test data for k=0.80000000000000004, nu=0.10000000000000001.
5000 // max(|f - f_GSL|): 4.4408920985006262e-16
5001 // max(|f - f_GSL| / |f_GSL|): 4.1537164503193145e-16
5002 const testcase_ellint_3
<double>
5005 { 0.0000000000000000, 0.80000000000000004, 0.10000000000000001,
5006 0.0000000000000000 },
5007 { 0.17492468824017163, 0.80000000000000004, 0.10000000000000001,
5008 0.17453292519943295 },
5009 { 0.35224443521476911, 0.80000000000000004, 0.10000000000000001,
5010 0.34906585039886590 },
5011 { 0.53456851853226950, 0.80000000000000004, 0.10000000000000001,
5012 0.52359877559829882 },
5013 { 0.72488875602364922, 0.80000000000000004, 0.10000000000000001,
5014 0.69813170079773179 },
5015 { 0.92661354274638952, 0.80000000000000004, 0.10000000000000001,
5016 0.87266462599716477 },
5017 { 1.1432651144499075, 0.80000000000000004, 0.10000000000000001,
5018 1.0471975511965976 },
5019 { 1.3774479927211429, 0.80000000000000004, 0.10000000000000001,
5020 1.2217304763960306 },
5021 { 1.6287092337196041, 0.80000000000000004, 0.10000000000000001,
5022 1.3962634015954636 },
5023 { 1.8910755418379521, 0.80000000000000004, 0.10000000000000001,
5024 1.5707963267948966 },
5026 const double toler172
= 2.5000000000000020e-13;
5028 // Test data for k=0.80000000000000004, nu=0.20000000000000001.
5029 // max(|f - f_GSL|): 4.4408920985006262e-16
5030 // max(|f - f_GSL| / |f_GSL|): 4.1894552974436829e-16
5031 const testcase_ellint_3
<double>
5034 { 0.0000000000000000, 0.80000000000000004, 0.20000000000000001,
5035 0.0000000000000000 },
5036 { 0.17474847286224940, 0.80000000000000004, 0.20000000000000001,
5037 0.17453292519943295 },
5038 { 0.35085779529084682, 0.80000000000000004, 0.20000000000000001,
5039 0.34906585039886590 },
5040 { 0.53000829263059146, 0.80000000000000004, 0.20000000000000001,
5041 0.52359877559829882 },
5042 { 0.71443466027453384, 0.80000000000000004, 0.20000000000000001,
5043 0.69813170079773179 },
5044 { 0.90698196872715420, 0.80000000000000004, 0.20000000000000001,
5045 0.87266462599716477 },
5046 { 1.1108198200558579, 0.80000000000000004, 0.20000000000000001,
5047 1.0471975511965976 },
5048 { 1.3284988909963957, 0.80000000000000004, 0.20000000000000001,
5049 1.2217304763960306 },
5050 { 1.5600369318140328, 0.80000000000000004, 0.20000000000000001,
5051 1.3962634015954636 },
5052 { 1.8007226661734588, 0.80000000000000004, 0.20000000000000001,
5053 1.5707963267948966 },
5055 const double toler173
= 2.5000000000000020e-13;
5057 // Test data for k=0.80000000000000004, nu=0.29999999999999999.
5058 // max(|f - f_GSL|): 4.4408920985006262e-16
5059 // max(|f - f_GSL| / |f_GSL|): 4.2247517409029886e-16
5060 const testcase_ellint_3
<double>
5063 { 0.0000000000000000, 0.80000000000000004, 0.29999999999999999,
5064 0.0000000000000000 },
5065 { 0.17457289217669889, 0.80000000000000004, 0.29999999999999999,
5066 0.17453292519943295 },
5067 { 0.34949028801501258, 0.80000000000000004, 0.29999999999999999,
5068 0.34906585039886590 },
5069 { 0.52558024362769307, 0.80000000000000004, 0.29999999999999999,
5070 0.52359877559829882 },
5071 { 0.70447281740094891, 0.80000000000000004, 0.29999999999999999,
5072 0.69813170079773179 },
5073 { 0.88864745641528986, 0.80000000000000004, 0.29999999999999999,
5074 0.87266462599716477 },
5075 { 1.0811075819341462, 0.80000000000000004, 0.29999999999999999,
5076 1.0471975511965976 },
5077 { 1.2844589654082377, 0.80000000000000004, 0.29999999999999999,
5078 1.2217304763960306 },
5079 { 1.4991461361277847, 0.80000000000000004, 0.29999999999999999,
5080 1.3962634015954636 },
5081 { 1.7214611048717301, 0.80000000000000004, 0.29999999999999999,
5082 1.5707963267948966 },
5084 const double toler174
= 2.5000000000000020e-13;
5086 // Test data for k=0.80000000000000004, nu=0.40000000000000002.
5087 // max(|f - f_GSL|): 4.4408920985006262e-16
5088 // max(|f - f_GSL| / |f_GSL|): 4.2596216594752862e-16
5089 const testcase_ellint_3
<double>
5092 { 0.0000000000000000, 0.80000000000000004, 0.40000000000000002,
5093 0.0000000000000000 },
5094 { 0.17439794211872175, 0.80000000000000004, 0.40000000000000002,
5095 0.17453292519943295 },
5096 { 0.34814144964568972, 0.80000000000000004, 0.40000000000000002,
5097 0.34906585039886590 },
5098 { 0.52127776285273064, 0.80000000000000004, 0.40000000000000002,
5099 0.52359877559829882 },
5100 { 0.69496411438966588, 0.80000000000000004, 0.40000000000000002,
5101 0.69813170079773179 },
5102 { 0.87146878427509589, 0.80000000000000004, 0.40000000000000002,
5103 0.87266462599716477 },
5104 { 1.0537579024937762, 0.80000000000000004, 0.40000000000000002,
5105 1.0471975511965976 },
5106 { 1.2445534387922637, 0.80000000000000004, 0.40000000000000002,
5107 1.2217304763960306 },
5108 { 1.4446769766361993, 0.80000000000000004, 0.40000000000000002,
5109 1.3962634015954636 },
5110 { 1.6512267838651289, 0.80000000000000004, 0.40000000000000002,
5111 1.5707963267948966 },
5113 const double toler175
= 2.5000000000000020e-13;
5115 // Test data for k=0.80000000000000004, nu=0.50000000000000000.
5116 // max(|f - f_GSL|): 4.4408920985006262e-16
5117 // max(|f - f_GSL| / |f_GSL|): 4.2940800093915668e-16
5118 const testcase_ellint_3
<double>
5121 { 0.0000000000000000, 0.80000000000000004, 0.50000000000000000,
5122 0.0000000000000000 },
5123 { 0.17422361866118044, 0.80000000000000004, 0.50000000000000000,
5124 0.17453292519943295 },
5125 { 0.34681083254170475, 0.80000000000000004, 0.50000000000000000,
5126 0.34906585039886590 },
5127 { 0.51709470815494440, 0.80000000000000004, 0.50000000000000000,
5128 0.52359877559829882 },
5129 { 0.68587375344080237, 0.80000000000000004, 0.50000000000000000,
5130 0.69813170079773179 },
5131 { 0.85532571852810624, 0.80000000000000004, 0.50000000000000000,
5132 0.87266462599716477 },
5133 { 1.0284677391874903, 0.80000000000000004, 0.50000000000000000,
5134 1.0471975511965976 },
5135 { 1.2081693942686225, 0.80000000000000004, 0.50000000000000000,
5136 1.2217304763960306 },
5137 { 1.3955803006426311, 0.80000000000000004, 0.50000000000000000,
5138 1.3962634015954636 },
5139 { 1.5884528947755532, 0.80000000000000004, 0.50000000000000000,
5140 1.5707963267948966 },
5142 const double toler176
= 2.5000000000000020e-13;
5144 // Test data for k=0.80000000000000004, nu=0.59999999999999998.
5145 // max(|f - f_GSL|): 4.4408920985006262e-16
5146 // max(|f - f_GSL| / |f_GSL|): 4.3281408974056389e-16
5147 const testcase_ellint_3
<double>
5150 { 0.0000000000000000, 0.80000000000000004, 0.59999999999999998,
5151 0.0000000000000000 },
5152 { 0.17404991781414089, 0.80000000000000004, 0.59999999999999998,
5153 0.17453292519943295 },
5154 { 0.34549800443625167, 0.80000000000000004, 0.59999999999999998,
5155 0.34906585039886590 },
5156 { 0.51302536167001545, 0.80000000000000004, 0.59999999999999998,
5157 0.52359877559829882 },
5158 { 0.67717065003912236, 0.80000000000000004, 0.59999999999999998,
5159 0.69813170079773179 },
5160 { 0.84011512421134416, 0.80000000000000004, 0.59999999999999998,
5161 0.87266462599716477 },
5162 { 1.0049863847088740, 0.80000000000000004, 0.59999999999999998,
5163 1.0471975511965976 },
5164 { 1.1748145941898920, 0.80000000000000004, 0.59999999999999998,
5165 1.2217304763960306 },
5166 { 1.3510319699755071, 0.80000000000000004, 0.59999999999999998,
5167 1.3962634015954636 },
5168 { 1.5319262547427865, 0.80000000000000004, 0.59999999999999998,
5169 1.5707963267948966 },
5171 const double toler177
= 2.5000000000000020e-13;
5173 // Test data for k=0.80000000000000004, nu=0.69999999999999996.
5174 // max(|f - f_GSL|): 2.2204460492503131e-16
5175 // max(|f - f_GSL| / |f_GSL|): 4.3618176466061808e-16
5176 const testcase_ellint_3
<double>
5179 { 0.0000000000000000, 0.80000000000000004, 0.69999999999999996,
5180 0.0000000000000000 },
5181 { 0.17387683562442199, 0.80000000000000004, 0.69999999999999996,
5182 0.17453292519943295 },
5183 { 0.34420254775101611, 0.80000000000000004, 0.69999999999999996,
5184 0.34906585039886590 },
5185 { 0.50906439222143673, 0.80000000000000004, 0.69999999999999996,
5186 0.52359877559829882 },
5187 { 0.66882693152688422, 0.80000000000000004, 0.69999999999999996,
5188 0.69813170079773179 },
5189 { 0.82574792844091316, 0.80000000000000004, 0.69999999999999996,
5190 0.87266462599716477 },
5191 { 0.98310431309490931, 0.80000000000000004, 0.69999999999999996,
5192 1.0471975511965976 },
5193 { 1.1440884535113258, 0.80000000000000004, 0.69999999999999996,
5194 1.2217304763960306 },
5195 { 1.3103743938952537, 0.80000000000000004, 0.69999999999999996,
5196 1.3962634015954636 },
5197 { 1.4806912324625332, 0.80000000000000004, 0.69999999999999996,
5198 1.5707963267948966 },
5200 const double toler178
= 2.5000000000000020e-13;
5202 // Test data for k=0.80000000000000004, nu=0.80000000000000004.
5203 // max(|f - f_GSL|): 4.4408920985006262e-16
5204 // max(|f - f_GSL| / |f_GSL|): 4.3951228558314112e-16
5205 const testcase_ellint_3
<double>
5208 { 0.0000000000000000, 0.80000000000000004, 0.80000000000000004,
5209 0.0000000000000000 },
5210 { 0.17370436817515203, 0.80000000000000004, 0.80000000000000004,
5211 0.17453292519943295 },
5212 { 0.34292405894783395, 0.80000000000000004, 0.80000000000000004,
5213 0.34906585039886590 },
5214 { 0.50520682176250076, 0.80000000000000004, 0.80000000000000004,
5215 0.52359877559829882 },
5216 { 0.66081751679736178, 0.80000000000000004, 0.80000000000000004,
5217 0.69813170079773179 },
5218 { 0.81214672249355102, 0.80000000000000004, 0.80000000000000004,
5219 0.87266462599716477 },
5220 { 0.96264481387685552, 0.80000000000000004, 0.80000000000000004,
5221 1.0471975511965976 },
5222 { 1.1156611352656258, 0.80000000000000004, 0.80000000000000004,
5223 1.2217304763960306 },
5224 { 1.2730756225143889, 0.80000000000000004, 0.80000000000000004,
5225 1.3962634015954636 },
5226 { 1.4339837018309471, 0.80000000000000004, 0.80000000000000004,
5227 1.5707963267948966 },
5229 const double toler179
= 2.5000000000000020e-13;
5231 // Test data for k=0.80000000000000004, nu=0.90000000000000002.
5232 // max(|f - f_GSL|): 3.3306690738754696e-16
5233 // max(|f - f_GSL| / |f_GSL|): 4.4280684534289690e-16
5234 const testcase_ellint_3
<double>
5237 { 0.0000000000000000, 0.80000000000000004, 0.90000000000000002,
5238 0.0000000000000000 },
5239 { 0.17353251158533151, 0.80000000000000004, 0.90000000000000002,
5240 0.17453292519943295 },
5241 { 0.34166214791545768, 0.80000000000000004, 0.90000000000000002,
5242 0.34906585039886590 },
5243 { 0.50144799535130569, 0.80000000000000004, 0.90000000000000002,
5244 0.52359877559829882 },
5245 { 0.65311976193814425, 0.80000000000000004, 0.90000000000000002,
5246 0.69813170079773179 },
5247 { 0.79924384892320866, 0.80000000000000004, 0.90000000000000002,
5248 0.87266462599716477 },
5249 { 0.94345762353365603, 0.80000000000000004, 0.90000000000000002,
5250 1.0471975511965976 },
5251 { 1.0892582069219161, 0.80000000000000004, 0.90000000000000002,
5252 1.2217304763960306 },
5253 { 1.2387000876610268, 0.80000000000000004, 0.90000000000000002,
5254 1.3962634015954636 },
5255 { 1.3911845406776222, 0.80000000000000004, 0.90000000000000002,
5256 1.5707963267948966 },
5258 const double toler180
= 2.5000000000000020e-13;
5260 // Test data for k=0.89999999999999991, nu=0.0000000000000000.
5261 // max(|f - f_GSL|): 8.8817841970012523e-16
5262 // max(|f - f_GSL| / |f_GSL|): 3.8945813740035884e-16
5263 const testcase_ellint_3
<double>
5266 { 0.0000000000000000, 0.89999999999999991, 0.0000000000000000,
5267 0.0000000000000000 },
5268 { 0.17525427376115024, 0.89999999999999991, 0.0000000000000000,
5269 0.17453292519943295 },
5270 { 0.35492464591297446, 0.89999999999999991, 0.0000000000000000,
5271 0.34906585039886590 },
5272 { 0.54388221416157112, 0.89999999999999991, 0.0000000000000000,
5273 0.52359877559829882 },
5274 { 0.74797400423532490, 0.89999999999999991, 0.0000000000000000,
5275 0.69813170079773179 },
5276 { 0.97463898451966458, 0.89999999999999991, 0.0000000000000000,
5277 0.87266462599716477 },
5278 { 1.2334463254523440, 0.89999999999999991, 0.0000000000000000,
5279 1.0471975511965976 },
5280 { 1.5355247765594910, 0.89999999999999991, 0.0000000000000000,
5281 1.2217304763960306 },
5282 { 1.8882928567775117, 0.89999999999999991, 0.0000000000000000,
5283 1.3962634015954636 },
5284 { 2.2805491384227703, 0.89999999999999991, 0.0000000000000000,
5285 1.5707963267948966 },
5287 const double toler181
= 2.5000000000000020e-13;
5289 // Test data for k=0.89999999999999991, nu=0.10000000000000001.
5290 // max(|f - f_GSL|): 8.8817841970012523e-16
5291 // max(|f - f_GSL| / |f_GSL|): 4.1237990617685137e-16
5292 const testcase_ellint_3
<double>
5295 { 0.0000000000000000, 0.89999999999999991, 0.10000000000000001,
5296 0.0000000000000000 },
5297 { 0.17507714233254656, 0.89999999999999991, 0.10000000000000001,
5298 0.17453292519943295 },
5299 { 0.35350932904326521, 0.89999999999999991, 0.10000000000000001,
5300 0.34906585039886590 },
5301 { 0.53911129989870976, 0.89999999999999991, 0.10000000000000001,
5302 0.52359877559829882 },
5303 { 0.73666644254508395, 0.89999999999999991, 0.10000000000000001,
5304 0.69813170079773179 },
5305 { 0.95250736612100195, 0.89999999999999991, 0.10000000000000001,
5306 0.87266462599716477 },
5307 { 1.1950199550905594, 0.89999999999999991, 0.10000000000000001,
5308 1.0471975511965976 },
5309 { 1.4741687286340848, 0.89999999999999991, 0.10000000000000001,
5310 1.2217304763960306 },
5311 { 1.7968678183506053, 0.89999999999999991, 0.10000000000000001,
5312 1.3962634015954636 },
5313 { 2.1537868513875287, 0.89999999999999991, 0.10000000000000001,
5314 1.5707963267948966 },
5316 const double toler182
= 2.5000000000000020e-13;
5318 // Test data for k=0.89999999999999991, nu=0.20000000000000001.
5319 // max(|f - f_GSL|): 8.8817841970012523e-16
5320 // max(|f - f_GSL| / |f_GSL|): 4.3446165733924066e-16
5321 const testcase_ellint_3
<double>
5324 { 0.0000000000000000, 0.89999999999999991, 0.20000000000000001,
5325 0.0000000000000000 },
5326 { 0.17490065089140927, 0.89999999999999991, 0.20000000000000001,
5327 0.17453292519943295 },
5328 { 0.35211377590661436, 0.89999999999999991, 0.20000000000000001,
5329 0.34906585039886590 },
5330 { 0.53448220334204100, 0.89999999999999991, 0.20000000000000001,
5331 0.52359877559829882 },
5332 { 0.72591368943179579, 0.89999999999999991, 0.20000000000000001,
5333 0.69813170079773179 },
5334 { 0.93192539780038763, 0.89999999999999991, 0.20000000000000001,
5335 0.87266462599716477 },
5336 { 1.1600809679692683, 0.89999999999999991, 0.20000000000000001,
5337 1.0471975511965976 },
5338 { 1.4195407225882508, 0.89999999999999991, 0.20000000000000001,
5339 1.2217304763960306 },
5340 { 1.7168966476424521, 0.89999999999999991, 0.20000000000000001,
5341 1.3962634015954636 },
5342 { 2.0443194576468895, 0.89999999999999991, 0.20000000000000001,
5343 1.5707963267948966 },
5345 const double toler183
= 2.5000000000000020e-13;
5347 // Test data for k=0.89999999999999991, nu=0.29999999999999999.
5348 // max(|f - f_GSL|): 1.1102230246251565e-15
5349 // max(|f - f_GSL| / |f_GSL|): 5.6974600067013622e-16
5350 const testcase_ellint_3
<double>
5353 { 0.0000000000000000, 0.89999999999999991, 0.29999999999999999,
5354 0.0000000000000000 },
5355 { 0.17472479532647531, 0.89999999999999991, 0.29999999999999999,
5356 0.17453292519943295 },
5357 { 0.35073750187374114, 0.89999999999999991, 0.29999999999999999,
5358 0.34906585039886590 },
5359 { 0.52998766129466957, 0.89999999999999991, 0.29999999999999999,
5360 0.52359877559829882 },
5361 { 0.71566993548699553, 0.89999999999999991, 0.29999999999999999,
5362 0.69813170079773179 },
5363 { 0.91271517762560195, 0.89999999999999991, 0.29999999999999999,
5364 0.87266462599716477 },
5365 { 1.1281241199843370, 0.89999999999999991, 0.29999999999999999,
5366 1.0471975511965976 },
5367 { 1.3704929576917448, 0.89999999999999991, 0.29999999999999999,
5368 1.2217304763960306 },
5369 { 1.6461981511487711, 0.89999999999999991, 0.29999999999999999,
5370 1.3962634015954636 },
5371 { 1.9486280260314426, 0.89999999999999991, 0.29999999999999999,
5372 1.5707963267948966 },
5374 const double toler184
= 2.5000000000000020e-13;
5376 // Test data for k=0.89999999999999991, nu=0.40000000000000002.
5377 // max(|f - f_GSL|): 8.8817841970012523e-16
5378 // max(|f - f_GSL| / |f_GSL|): 4.7646208744449464e-16
5379 const testcase_ellint_3
<double>
5382 { 0.0000000000000000, 0.89999999999999991, 0.40000000000000002,
5383 0.0000000000000000 },
5384 { 0.17454957156468837, 0.89999999999999991, 0.40000000000000002,
5385 0.17453292519943295 },
5386 { 0.34938003933330430, 0.89999999999999991, 0.40000000000000002,
5387 0.34906585039886590 },
5388 { 0.52562093533067433, 0.89999999999999991, 0.40000000000000002,
5389 0.52359877559829882 },
5390 { 0.70589461324915670, 0.89999999999999991, 0.40000000000000002,
5391 0.69813170079773179 },
5392 { 0.89472658511942849, 0.89999999999999991, 0.40000000000000002,
5393 0.87266462599716477 },
5394 { 1.0987419542323440, 0.89999999999999991, 0.40000000000000002,
5395 1.0471975511965976 },
5396 { 1.3261349565496301, 0.89999999999999991, 0.40000000000000002,
5397 1.2217304763960306 },
5398 { 1.5831293909853763, 0.89999999999999991, 0.40000000000000002,
5399 1.3962634015954636 },
5400 { 1.8641114227238351, 0.89999999999999991, 0.40000000000000002,
5401 1.5707963267948966 },
5403 const double toler185
= 2.5000000000000020e-13;
5405 // Test data for k=0.89999999999999991, nu=0.50000000000000000.
5406 // max(|f - f_GSL|): 8.8817841970012523e-16
5407 // max(|f - f_GSL| / |f_GSL|): 4.9652155758573562e-16
5408 const testcase_ellint_3
<double>
5411 { 0.0000000000000000, 0.89999999999999991, 0.50000000000000000,
5412 0.0000000000000000 },
5413 { 0.17437497557073334, 0.89999999999999991, 0.50000000000000000,
5414 0.17453292519943295 },
5415 { 0.34804093691586013, 0.89999999999999991, 0.50000000000000000,
5416 0.34906585039886590 },
5417 { 0.52137576320372891, 0.89999999999999991, 0.50000000000000000,
5418 0.52359877559829882 },
5419 { 0.69655163996912262, 0.89999999999999991, 0.50000000000000000,
5420 0.69813170079773179 },
5421 { 0.87783188683054236, 0.89999999999999991, 0.50000000000000000,
5422 0.87266462599716477 },
5423 { 1.0716015959755185, 0.89999999999999991, 0.50000000000000000,
5424 1.0471975511965976 },
5425 { 1.2857636916026749, 0.89999999999999991, 0.50000000000000000,
5426 1.2217304763960306 },
5427 { 1.5264263913252358, 0.89999999999999991, 0.50000000000000000,
5428 1.3962634015954636 },
5429 { 1.7888013241937863, 0.89999999999999991, 0.50000000000000000,
5430 1.5707963267948966 },
5432 const double toler186
= 2.5000000000000020e-13;
5434 // Test data for k=0.89999999999999991, nu=0.59999999999999998.
5435 // max(|f - f_GSL|): 6.6613381477509392e-16
5436 // max(|f - f_GSL| / |f_GSL|): 3.8702201113622378e-16
5437 const testcase_ellint_3
<double>
5440 { 0.0000000000000000, 0.89999999999999991, 0.59999999999999998,
5441 0.0000000000000000 },
5442 { 0.17420100334657812, 0.89999999999999991, 0.59999999999999998,
5443 0.17453292519943295 },
5444 { 0.34671975876122157, 0.89999999999999991, 0.59999999999999998,
5445 0.34906585039886590 },
5446 { 0.51724631570707946, 0.89999999999999991, 0.59999999999999998,
5447 0.52359877559829882 },
5448 { 0.68760879113743023, 0.89999999999999991, 0.59999999999999998,
5449 0.69813170079773179 },
5450 { 0.86192157779698364, 0.89999999999999991, 0.59999999999999998,
5451 0.87266462599716477 },
5452 { 1.0464279696166354, 0.89999999999999991, 0.59999999999999998,
5453 1.0471975511965976 },
5454 { 1.2488156247094004, 0.89999999999999991, 0.59999999999999998,
5455 1.2217304763960306 },
5456 { 1.4750988777188470, 0.89999999999999991, 0.59999999999999998,
5457 1.3962634015954636 },
5458 { 1.7211781128919525, 0.89999999999999991, 0.59999999999999998,
5459 1.5707963267948966 },
5461 const double toler187
= 2.5000000000000020e-13;
5463 // Test data for k=0.89999999999999991, nu=0.69999999999999996.
5464 // max(|f - f_GSL|): 4.4408920985006262e-16
5465 // max(|f - f_GSL| / |f_GSL|): 4.3410843563834748e-16
5466 const testcase_ellint_3
<double>
5469 { 0.0000000000000000, 0.89999999999999991, 0.69999999999999996,
5470 0.0000000000000000 },
5471 { 0.17402765093102207, 0.89999999999999991, 0.69999999999999996,
5472 0.17453292519943295 },
5473 { 0.34541608382635131, 0.89999999999999991, 0.69999999999999996,
5474 0.34906585039886590 },
5475 { 0.51322715827061682, 0.89999999999999991, 0.69999999999999996,
5476 0.52359877559829882 },
5477 { 0.67903717872440272, 0.89999999999999991, 0.69999999999999996,
5478 0.69813170079773179 },
5479 { 0.84690113601682671, 0.89999999999999991, 0.69999999999999996,
5480 0.87266462599716477 },
5481 { 1.0229914311548418, 0.89999999999999991, 0.69999999999999996,
5482 1.0471975511965976 },
5483 { 1.2148329639709381, 0.89999999999999991, 0.69999999999999996,
5484 1.2217304763960306 },
5485 { 1.4283586501307799, 0.89999999999999991, 0.69999999999999996,
5486 1.3962634015954636 },
5487 { 1.6600480747670940, 0.89999999999999991, 0.69999999999999996,
5488 1.5707963267948966 },
5490 const double toler188
= 2.5000000000000020e-13;
5492 // Test data for k=0.89999999999999991, nu=0.80000000000000004.
5493 // max(|f - f_GSL|): 4.4408920985006262e-16
5494 // max(|f - f_GSL| / |f_GSL|): 3.3100928058463168e-16
5495 const testcase_ellint_3
<double>
5498 { 0.0000000000000000, 0.89999999999999991, 0.80000000000000004,
5499 0.0000000000000000 },
5500 { 0.17385491439925146, 0.89999999999999991, 0.80000000000000004,
5501 0.17453292519943295 },
5502 { 0.34412950523113928, 0.89999999999999991, 0.80000000000000004,
5503 0.34906585039886590 },
5504 { 0.50931321668729590, 0.89999999999999991, 0.80000000000000004,
5505 0.52359877559829882 },
5506 { 0.67081081392296327, 0.89999999999999991, 0.80000000000000004,
5507 0.69813170079773179 },
5508 { 0.83268846097293259, 0.89999999999999991, 0.80000000000000004,
5509 0.87266462599716477 },
5510 { 1.0010985015814027, 0.89999999999999991, 0.80000000000000004,
5511 1.0471975511965976 },
5512 { 1.1834394045489678, 0.89999999999999991, 0.80000000000000004,
5513 1.2217304763960306 },
5514 { 1.3855695891683182, 0.89999999999999991, 0.80000000000000004,
5515 1.3962634015954636 },
5516 { 1.6044591960982202, 0.89999999999999991, 0.80000000000000004,
5517 1.5707963267948966 },
5519 const double toler189
= 2.5000000000000020e-13;
5521 // Test data for k=0.89999999999999991, nu=0.90000000000000002.
5522 // max(|f - f_GSL|): 8.8817841970012523e-16
5523 // max(|f - f_GSL| / |f_GSL|): 5.7167507456081732e-16
5524 const testcase_ellint_3
<double>
5527 { 0.0000000000000000, 0.89999999999999991, 0.90000000000000002,
5528 0.0000000000000000 },
5529 { 0.17368278986240135, 0.89999999999999991, 0.90000000000000002,
5530 0.17453292519943295 },
5531 { 0.34285962963961397, 0.89999999999999991, 0.90000000000000002,
5532 0.34906585039886590 },
5533 { 0.50549974644993312, 0.89999999999999991, 0.90000000000000002,
5534 0.52359877559829882 },
5535 { 0.66290623857720876, 0.89999999999999991, 0.90000000000000002,
5536 0.69813170079773179 },
5537 { 0.81921183128847175, 0.89999999999999991, 0.90000000000000002,
5538 0.87266462599716477 },
5539 { 0.98058481956066390, 0.89999999999999991, 0.90000000000000002,
5540 1.0471975511965976 },
5541 { 1.1543223520473569, 0.89999999999999991, 0.90000000000000002,
5542 1.2217304763960306 },
5543 { 1.3462119782292934, 0.89999999999999991, 0.90000000000000002,
5544 1.3962634015954636 },
5545 { 1.5536420236310948, 0.89999999999999991, 0.90000000000000002,
5546 1.5707963267948966 },
5548 const double toler190
= 2.5000000000000020e-13;
5550 template<typename Tp
, unsigned int Num
>
5552 test(const testcase_ellint_3
<Tp
> (&data
)[Num
], Tp toler
)
5554 bool test
__attribute__((unused
)) = true;
5555 const Tp eps
= std::numeric_limits
<Tp
>::epsilon();
5556 Tp max_abs_diff
= -Tp(1);
5557 Tp max_abs_frac
= -Tp(1);
5558 unsigned int num_datum
= Num
;
5559 for (unsigned int i
= 0; i
< num_datum
; ++i
)
5561 const Tp f
= std::ellint_3(data
[i
].k
, data
[i
].nu
,
5563 const Tp f0
= data
[i
].f0
;
5564 const Tp diff
= f
- f0
;
5565 if (std::abs(diff
) > max_abs_diff
)
5566 max_abs_diff
= std::abs(diff
);
5567 if (std::abs(f0
) > Tp(10) * eps
5568 && std::abs(f
) > Tp(10) * eps
)
5570 const Tp frac
= diff
/ f0
;
5571 if (std::abs(frac
) > max_abs_frac
)
5572 max_abs_frac
= std::abs(frac
);
5575 VERIFY(max_abs_frac
< toler
);
5581 test(data001
, toler001
);
5582 test(data002
, toler002
);
5583 test(data003
, toler003
);
5584 test(data004
, toler004
);
5585 test(data005
, toler005
);
5586 test(data006
, toler006
);
5587 test(data007
, toler007
);
5588 test(data008
, toler008
);
5589 test(data009
, toler009
);
5590 test(data010
, toler010
);
5591 test(data011
, toler011
);
5592 test(data012
, toler012
);
5593 test(data013
, toler013
);
5594 test(data014
, toler014
);
5595 test(data015
, toler015
);
5596 test(data016
, toler016
);
5597 test(data017
, toler017
);
5598 test(data018
, toler018
);
5599 test(data019
, toler019
);
5600 test(data020
, toler020
);
5601 test(data021
, toler021
);
5602 test(data022
, toler022
);
5603 test(data023
, toler023
);
5604 test(data024
, toler024
);
5605 test(data025
, toler025
);
5606 test(data026
, toler026
);
5607 test(data027
, toler027
);
5608 test(data028
, toler028
);
5609 test(data029
, toler029
);
5610 test(data030
, toler030
);
5611 test(data031
, toler031
);
5612 test(data032
, toler032
);
5613 test(data033
, toler033
);
5614 test(data034
, toler034
);
5615 test(data035
, toler035
);
5616 test(data036
, toler036
);
5617 test(data037
, toler037
);
5618 test(data038
, toler038
);
5619 test(data039
, toler039
);
5620 test(data040
, toler040
);
5621 test(data041
, toler041
);
5622 test(data042
, toler042
);
5623 test(data043
, toler043
);
5624 test(data044
, toler044
);
5625 test(data045
, toler045
);
5626 test(data046
, toler046
);
5627 test(data047
, toler047
);
5628 test(data048
, toler048
);
5629 test(data049
, toler049
);
5630 test(data050
, toler050
);
5631 test(data051
, toler051
);
5632 test(data052
, toler052
);
5633 test(data053
, toler053
);
5634 test(data054
, toler054
);
5635 test(data055
, toler055
);
5636 test(data056
, toler056
);
5637 test(data057
, toler057
);
5638 test(data058
, toler058
);
5639 test(data059
, toler059
);
5640 test(data060
, toler060
);
5641 test(data061
, toler061
);
5642 test(data062
, toler062
);
5643 test(data063
, toler063
);
5644 test(data064
, toler064
);
5645 test(data065
, toler065
);
5646 test(data066
, toler066
);
5647 test(data067
, toler067
);
5648 test(data068
, toler068
);
5649 test(data069
, toler069
);
5650 test(data070
, toler070
);
5651 test(data071
, toler071
);
5652 test(data072
, toler072
);
5653 test(data073
, toler073
);
5654 test(data074
, toler074
);
5655 test(data075
, toler075
);
5656 test(data076
, toler076
);
5657 test(data077
, toler077
);
5658 test(data078
, toler078
);
5659 test(data079
, toler079
);
5660 test(data080
, toler080
);
5661 test(data081
, toler081
);
5662 test(data082
, toler082
);
5663 test(data083
, toler083
);
5664 test(data084
, toler084
);
5665 test(data085
, toler085
);
5666 test(data086
, toler086
);
5667 test(data087
, toler087
);
5668 test(data088
, toler088
);
5669 test(data089
, toler089
);
5670 test(data090
, toler090
);
5671 test(data091
, toler091
);
5672 test(data092
, toler092
);
5673 test(data093
, toler093
);
5674 test(data094
, toler094
);
5675 test(data095
, toler095
);
5676 test(data096
, toler096
);
5677 test(data097
, toler097
);
5678 test(data098
, toler098
);
5679 test(data099
, toler099
);
5680 test(data100
, toler100
);
5681 test(data101
, toler101
);
5682 test(data102
, toler102
);
5683 test(data103
, toler103
);
5684 test(data104
, toler104
);
5685 test(data105
, toler105
);
5686 test(data106
, toler106
);
5687 test(data107
, toler107
);
5688 test(data108
, toler108
);
5689 test(data109
, toler109
);
5690 test(data110
, toler110
);
5691 test(data111
, toler111
);
5692 test(data112
, toler112
);
5693 test(data113
, toler113
);
5694 test(data114
, toler114
);
5695 test(data115
, toler115
);
5696 test(data116
, toler116
);
5697 test(data117
, toler117
);
5698 test(data118
, toler118
);
5699 test(data119
, toler119
);
5700 test(data120
, toler120
);
5701 test(data121
, toler121
);
5702 test(data122
, toler122
);
5703 test(data123
, toler123
);
5704 test(data124
, toler124
);
5705 test(data125
, toler125
);
5706 test(data126
, toler126
);
5707 test(data127
, toler127
);
5708 test(data128
, toler128
);
5709 test(data129
, toler129
);
5710 test(data130
, toler130
);
5711 test(data131
, toler131
);
5712 test(data132
, toler132
);
5713 test(data133
, toler133
);
5714 test(data134
, toler134
);
5715 test(data135
, toler135
);
5716 test(data136
, toler136
);
5717 test(data137
, toler137
);
5718 test(data138
, toler138
);
5719 test(data139
, toler139
);
5720 test(data140
, toler140
);
5721 test(data141
, toler141
);
5722 test(data142
, toler142
);
5723 test(data143
, toler143
);
5724 test(data144
, toler144
);
5725 test(data145
, toler145
);
5726 test(data146
, toler146
);
5727 test(data147
, toler147
);
5728 test(data148
, toler148
);
5729 test(data149
, toler149
);
5730 test(data150
, toler150
);
5731 test(data151
, toler151
);
5732 test(data152
, toler152
);
5733 test(data153
, toler153
);
5734 test(data154
, toler154
);
5735 test(data155
, toler155
);
5736 test(data156
, toler156
);
5737 test(data157
, toler157
);
5738 test(data158
, toler158
);
5739 test(data159
, toler159
);
5740 test(data160
, toler160
);
5741 test(data161
, toler161
);
5742 test(data162
, toler162
);
5743 test(data163
, toler163
);
5744 test(data164
, toler164
);
5745 test(data165
, toler165
);
5746 test(data166
, toler166
);
5747 test(data167
, toler167
);
5748 test(data168
, toler168
);
5749 test(data169
, toler169
);
5750 test(data170
, toler170
);
5751 test(data171
, toler171
);
5752 test(data172
, toler172
);
5753 test(data173
, toler173
);
5754 test(data174
, toler174
);
5755 test(data175
, toler175
);
5756 test(data176
, toler176
);
5757 test(data177
, toler177
);
5758 test(data178
, toler178
);
5759 test(data179
, toler179
);
5760 test(data180
, toler180
);
5761 test(data181
, toler181
);
5762 test(data182
, toler182
);
5763 test(data183
, toler183
);
5764 test(data184
, toler184
);
5765 test(data185
, toler185
);
5766 test(data186
, toler186
);
5767 test(data187
, toler187
);
5768 test(data188
, toler188
);
5769 test(data189
, toler189
);
5770 test(data190
, toler190
);