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