• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<html>
2<head>
3<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
4<title>Comparison of Elliptic Integral Root Finding Algorithms</title>
5<link rel="stylesheet" href="../../math.css" type="text/css">
6<meta name="generator" content="DocBook XSL Stylesheets V1.79.1">
7<link rel="home" href="../../index.html" title="Math Toolkit 2.12.0">
8<link rel="up" href="../root_comparison.html" title="Comparison of Root Finding Algorithms">
9<link rel="prev" href="root_n_comparison.html" title="Comparison of Nth-root Finding Algorithms">
10<link rel="next" href="../../poly.html" title="Chapter 11. Polynomials and Rational Functions">
11</head>
12<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
13<table cellpadding="2" width="100%"><tr>
14<td valign="top"><img alt="Boost C++ Libraries" width="277" height="86" src="../../../../../../boost.png"></td>
15<td align="center"><a href="../../../../../../index.html">Home</a></td>
16<td align="center"><a href="../../../../../../libs/libraries.htm">Libraries</a></td>
17<td align="center"><a href="http://www.boost.org/users/people.html">People</a></td>
18<td align="center"><a href="http://www.boost.org/users/faq.html">FAQ</a></td>
19<td align="center"><a href="../../../../../../more/index.htm">More</a></td>
20</tr></table>
21<hr>
22<div class="spirit-nav">
23<a accesskey="p" href="root_n_comparison.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../root_comparison.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../poly.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
24</div>
25<div class="section">
26<div class="titlepage"><div><div><h3 class="title">
27<a name="math_toolkit.root_comparison.elliptic_comparison"></a><a class="link" href="elliptic_comparison.html" title="Comparison of Elliptic Integral Root Finding Algorithms">Comparison
28      of Elliptic Integral Root Finding Algorithms</a>
29</h3></div></div></div>
30<p>
31        A second example compares four root finding algorithms for locating the second
32        radius of an ellipse with first radius 28 and arc length 300, for four floating-point
33        types, <code class="computeroutput"><span class="keyword">float</span></code>, <code class="computeroutput"><span class="keyword">double</span></code>, <code class="computeroutput"><span class="keyword">long</span>
34        <span class="keyword">double</span></code> and a <a href="../../../../../../libs/multiprecision/doc/html/index.html" target="_top">Boost.Multiprecision</a>
35        type <code class="computeroutput"><span class="identifier">cpp_bin_float_50</span></code>.
36      </p>
37<p>
38        Which is to say we're solving:
39      </p>
40<pre class="programlisting">4xE(sqrt(1 - 28<sup>2</sup> / x<sup>2</sup>)) - 300 = 0</pre>
41<p>
42        In each case the target accuracy was set using our "recommended"
43        accuracy limits (or at least limits that make a good starting point - which
44        is likely to give close to full accuracy without resorting to unnecessary
45        iterations).
46      </p>
47<div class="informaltable"><table class="table">
48<colgroup>
49<col>
50<col>
51</colgroup>
52<thead><tr>
53<th>
54                <p>
55                  Function
56                </p>
57              </th>
58<th>
59                <p>
60                  Precision Requested
61                </p>
62              </th>
63</tr></thead>
64<tbody>
65<tr>
66<td>
67                <p>
68                  TOMS748
69                </p>
70              </td>
71<td>
72                <p>
73                  numeric_limits&lt;T&gt;::digits - 2
74                </p>
75              </td>
76</tr>
77<tr>
78<td>
79                <p>
80                  Newton
81                </p>
82              </td>
83<td>
84                <p>
85                  floor(numeric_limits&lt;T&gt;::digits * 0.6)
86                </p>
87              </td>
88</tr>
89<tr>
90<td>
91                <p>
92                  Halley
93                </p>
94              </td>
95<td>
96                <p>
97                  floor(numeric_limits&lt;T&gt;::digits * 0.4)
98                </p>
99              </td>
100</tr>
101<tr>
102<td>
103                <p>
104                  Schröder
105                </p>
106              </td>
107<td>
108                <p>
109                  floor(numeric_limits&lt;T&gt;::digits * 0.4)
110                </p>
111              </td>
112</tr>
113</tbody>
114</table></div>
115<p>
116        Tests used Microsoft Visual Studio 2013 (Update 1) and GCC 4.9.1 using source
117        code <a href="../../../../example/root_elliptic_finding.cpp" target="_top">root_elliptic_finding.cpp</a>.
118      </p>
119<p>
120        The timing uncertainty (especially using MSVC) is at least 5% of normalized
121        time 'Norm'.
122      </p>
123<p>
124        To pick out the 'best' and 'worst' algorithms are highlighted in blue and
125        red. More than one result can be 'best' when normalized times are indistinguishable
126        within the uncertainty.
127      </p>
128<h4>
129<a name="math_toolkit.root_comparison.elliptic_comparison.h0"></a>
130        <span class="phrase"><a name="math_toolkit.root_comparison.elliptic_comparison.program_example_root_elliptic_fi"></a></span><a class="link" href="elliptic_comparison.html#math_toolkit.root_comparison.elliptic_comparison.program_example_root_elliptic_fi">Program
131        root_elliptic_finding.cpp,
132        Microsoft Visual C++ version 14.1, Dinkumware standard library version 650,
133        Win32 Compiled in optimise mode., _X86_SSE2</a>
134      </h4>
135<div class="table">
136<a name="math_toolkit.root_comparison.elliptic_comparison.elliptic"></a><p class="title"><b>Table 10.12. root with radius 28 and arc length 300) for float, double, long double
137        and cpp_bin_float_50 types, using _X86_SSE2</b></p>
138<div class="table-contents"><table class="table" summary="root with radius 28 and arc length 300) for float, double, long double
139        and cpp_bin_float_50 types, using _X86_SSE2">
140<colgroup>
141<col>
142<col>
143<col>
144<col>
145<col>
146<col>
147<col>
148<col>
149<col>
150<col>
151<col>
152<col>
153<col>
154<col>
155<col>
156<col>
157<col>
158<col>
159<col>
160<col>
161<col>
162</colgroup>
163<thead><tr>
164<th>
165              </th>
166<th>
167                <p>
168                  float
169                </p>
170              </th>
171<th>
172              </th>
173<th>
174              </th>
175<th>
176              </th>
177<th>
178              </th>
179<th>
180                <p>
181                  double
182                </p>
183              </th>
184<th>
185              </th>
186<th>
187              </th>
188<th>
189              </th>
190<th>
191              </th>
192<th>
193                <p>
194                  long d
195                </p>
196              </th>
197<th>
198              </th>
199<th>
200              </th>
201<th>
202              </th>
203<th>
204              </th>
205<th>
206                <p>
207                  cpp50
208                </p>
209              </th>
210<th>
211              </th>
212<th>
213              </th>
214<td class="auto-generated"> </td>
215<td class="auto-generated"> </td>
216</tr></thead>
217<tbody>
218<tr>
219<td>
220                <p>
221                  Algo
222                </p>
223              </td>
224<td>
225                <p>
226                  Its
227                </p>
228              </td>
229<td>
230                <p>
231                  Times
232                </p>
233              </td>
234<td>
235                <p>
236                  Norm
237                </p>
238              </td>
239<td>
240                <p>
241                  Dis
242                </p>
243              </td>
244<td>
245              </td>
246<td>
247                <p>
248                  Its
249                </p>
250              </td>
251<td>
252                <p>
253                  Times
254                </p>
255              </td>
256<td>
257                <p>
258                  Norm
259                </p>
260              </td>
261<td>
262                <p>
263                  Dis
264                </p>
265              </td>
266<td>
267              </td>
268<td>
269                <p>
270                  Its
271                </p>
272              </td>
273<td>
274                <p>
275                  Times
276                </p>
277              </td>
278<td>
279                <p>
280                  Norm
281                </p>
282              </td>
283<td>
284                <p>
285                  Dis
286                </p>
287              </td>
288<td>
289              </td>
290<td>
291                <p>
292                  Its
293                </p>
294              </td>
295<td>
296                <p>
297                  Times
298                </p>
299              </td>
300<td>
301                <p>
302                  Norm
303                </p>
304              </td>
305<td>
306                <p>
307                  Dis
308                </p>
309              </td>
310<td>
311              </td>
312</tr>
313<tr>
314<td>
315                <p>
316                  TOMS748
317                </p>
318              </td>
319<td>
320                <p>
321                  6
322                </p>
323              </td>
324<td>
325                <p>
326                  906
327                </p>
328              </td>
329<td>
330                <p>
331                  2.07
332                </p>
333              </td>
334<td>
335                <p>
336                  0
337                </p>
338              </td>
339<td>
340              </td>
341<td>
342                <p>
343                  9
344                </p>
345              </td>
346<td>
347                <p>
348                  1312
349                </p>
350              </td>
351<td>
352                <p>
353                  1.79
354                </p>
355              </td>
356<td>
357                <p>
358                  1
359                </p>
360              </td>
361<td>
362              </td>
363<td>
364                <p>
365                  9
366                </p>
367              </td>
368<td>
369                <p>
370                  1281
371                </p>
372              </td>
373<td>
374                <p>
375                  1.75
376                </p>
377              </td>
378<td>
379                <p>
380                  1
381                </p>
382              </td>
383<td>
384              </td>
385<td>
386                <p>
387                  11
388                </p>
389              </td>
390<td>
391                <p>
392                  1690625
393                </p>
394              </td>
395<td>
396                <p>
397                  1.52
398                </p>
399              </td>
400<td>
401                <p>
402                  -3
403                </p>
404              </td>
405<td>
406              </td>
407</tr>
408<tr>
409<td>
410                <p>
411                  Newton
412                </p>
413              </td>
414<td>
415                <p>
416                  3
417                </p>
418              </td>
419<td>
420                <p>
421                  640
422                </p>
423              </td>
424<td>
425                <p>
426                  1.46
427                </p>
428              </td>
429<td>
430                <p>
431                  -1
432                </p>
433              </td>
434<td>
435              </td>
436<td>
437                <p>
438                  4
439                </p>
440              </td>
441<td>
442                <p>
443                  875
444                </p>
445              </td>
446<td>
447                <p>
448                  1.19
449                </p>
450              </td>
451<td>
452                <p>
453                  1
454                </p>
455              </td>
456<td>
457              </td>
458<td>
459                <p>
460                  4
461                </p>
462              </td>
463<td>
464                <p>
465                  843
466                </p>
467              </td>
468<td>
469                <p>
470                  1.15
471                </p>
472              </td>
473<td>
474                <p>
475                  1
476                </p>
477              </td>
478<td>
479              </td>
480<td>
481                <p>
482                  5
483                </p>
484              </td>
485<td>
486                <p>
487                  1368750
488                </p>
489              </td>
490<td>
491                <p>
492                  1.23
493                </p>
494              </td>
495<td>
496                <p>
497                  0
498                </p>
499              </td>
500<td>
501              </td>
502</tr>
503<tr>
504<td>
505                <p>
506                  Halley
507                </p>
508              </td>
509<td>
510                <p>
511                  2
512                </p>
513              </td>
514<td>
515                <p>
516                  437
517                </p>
518              </td>
519<td>
520                <p>
521                  <span class="blue">1.00</span>
522                </p>
523              </td>
524<td>
525                <p>
526                  0
527                </p>
528              </td>
529<td>
530              </td>
531<td>
532                <p>
533                  3
534                </p>
535              </td>
536<td>
537                <p>
538                  734
539                </p>
540              </td>
541<td>
542                <p>
543                  <span class="blue">1.00</span>
544                </p>
545              </td>
546<td>
547                <p>
548                  3
549                </p>
550              </td>
551<td>
552              </td>
553<td>
554                <p>
555                  3
556                </p>
557              </td>
558<td>
559                <p>
560                  734
561                </p>
562              </td>
563<td>
564                <p>
565                  <span class="blue">1.00</span>
566                </p>
567              </td>
568<td>
569                <p>
570                  3
571                </p>
572              </td>
573<td>
574              </td>
575<td>
576                <p>
577                  4
578                </p>
579              </td>
580<td>
581                <p>
582                  1109375
583                </p>
584              </td>
585<td>
586                <p>
587                  <span class="blue">1.00</span>
588                </p>
589              </td>
590<td>
591                <p>
592                  0
593                </p>
594              </td>
595<td>
596              </td>
597</tr>
598<tr>
599<td>
600                <p>
601                  Schröder
602                </p>
603              </td>
604<td>
605                <p>
606                  3
607                </p>
608              </td>
609<td>
610                <p>
611                  671
612                </p>
613              </td>
614<td>
615                <p>
616                  1.54
617                </p>
618              </td>
619<td>
620                <p>
621                  -1
622                </p>
623              </td>
624<td>
625              </td>
626<td>
627                <p>
628                  6
629                </p>
630              </td>
631<td>
632                <p>
633                  1296
634                </p>
635              </td>
636<td>
637                <p>
638                  1.77
639                </p>
640              </td>
641<td>
642                <p>
643                  1
644                </p>
645              </td>
646<td>
647              </td>
648<td>
649                <p>
650                  6
651                </p>
652              </td>
653<td>
654                <p>
655                  1406
656                </p>
657              </td>
658<td>
659                <p>
660                  1.92
661                </p>
662              </td>
663<td>
664                <p>
665                  1
666                </p>
667              </td>
668<td>
669              </td>
670<td>
671                <p>
672                  5
673                </p>
674              </td>
675<td>
676                <p>
677                  1462500
678                </p>
679              </td>
680<td>
681                <p>
682                  1.32
683                </p>
684              </td>
685<td>
686                <p>
687                  -2
688                </p>
689              </td>
690<td>
691              </td>
692</tr>
693</tbody>
694</table></div>
695</div>
696<br class="table-break"><h4>
697<a name="math_toolkit.root_comparison.elliptic_comparison.h1"></a>
698        <span class="phrase"><a name="math_toolkit.root_comparison.elliptic_comparison.program_example_root_elliptic_f0"></a></span><a class="link" href="elliptic_comparison.html#math_toolkit.root_comparison.elliptic_comparison.program_example_root_elliptic_f0">Program
699        root_elliptic_finding.cpp,
700        Microsoft Visual C++ version 12.0, Dinkumware standard library version 610,
701        Win32 Compiled in optimise mode., _X64_AVX</a>
702      </h4>
703<div class="table">
704<a name="math_toolkit.root_comparison.elliptic_comparison.elliptic0"></a><p class="title"><b>Table 10.13. root with radius 28 and arc length 300) for float, double, long double
705        and cpp_bin_float_50 types, using _X64_AVX</b></p>
706<div class="table-contents"><table class="table" summary="root with radius 28 and arc length 300) for float, double, long double
707        and cpp_bin_float_50 types, using _X64_AVX">
708<colgroup>
709<col>
710<col>
711<col>
712<col>
713<col>
714<col>
715<col>
716<col>
717<col>
718<col>
719<col>
720<col>
721<col>
722<col>
723<col>
724<col>
725<col>
726<col>
727<col>
728<col>
729<col>
730</colgroup>
731<thead><tr>
732<th>
733              </th>
734<th>
735                <p>
736                  float
737                </p>
738              </th>
739<th>
740              </th>
741<th>
742              </th>
743<th>
744              </th>
745<th>
746              </th>
747<th>
748                <p>
749                  double
750                </p>
751              </th>
752<th>
753              </th>
754<th>
755              </th>
756<th>
757              </th>
758<th>
759              </th>
760<th>
761                <p>
762                  long d
763                </p>
764              </th>
765<th>
766              </th>
767<th>
768              </th>
769<th>
770              </th>
771<th>
772              </th>
773<th>
774                <p>
775                  cpp50
776                </p>
777              </th>
778<th>
779              </th>
780<th>
781              </th>
782<td class="auto-generated"> </td>
783<td class="auto-generated"> </td>
784</tr></thead>
785<tbody>
786<tr>
787<td>
788                <p>
789                  Algo
790                </p>
791              </td>
792<td>
793                <p>
794                  Its
795                </p>
796              </td>
797<td>
798                <p>
799                  Times
800                </p>
801              </td>
802<td>
803                <p>
804                  Norm
805                </p>
806              </td>
807<td>
808                <p>
809                  Dis
810                </p>
811              </td>
812<td>
813              </td>
814<td>
815                <p>
816                  Its
817                </p>
818              </td>
819<td>
820                <p>
821                  Times
822                </p>
823              </td>
824<td>
825                <p>
826                  Norm
827                </p>
828              </td>
829<td>
830                <p>
831                  Dis
832                </p>
833              </td>
834<td>
835              </td>
836<td>
837                <p>
838                  Its
839                </p>
840              </td>
841<td>
842                <p>
843                  Times
844                </p>
845              </td>
846<td>
847                <p>
848                  Norm
849                </p>
850              </td>
851<td>
852                <p>
853                  Dis
854                </p>
855              </td>
856<td>
857              </td>
858<td>
859                <p>
860                  Its
861                </p>
862              </td>
863<td>
864                <p>
865                  Times
866                </p>
867              </td>
868<td>
869                <p>
870                  Norm
871                </p>
872              </td>
873<td>
874                <p>
875                  Dis
876                </p>
877              </td>
878<td>
879              </td>
880</tr>
881<tr>
882<td>
883                <p>
884                  TOMS748
885                </p>
886              </td>
887<td>
888                <p>
889                  5
890                </p>
891              </td>
892<td>
893                <p>
894                  500
895                </p>
896              </td>
897<td>
898                <p>
899                  1.33
900                </p>
901              </td>
902<td>
903                <p>
904                  -1
905                </p>
906              </td>
907<td>
908              </td>
909<td>
910                <p>
911                  9
912                </p>
913              </td>
914<td>
915                <p>
916                  1046
917                </p>
918              </td>
919<td>
920                <p>
921                  1.72
922                </p>
923              </td>
924<td>
925                <p>
926                  1
927                </p>
928              </td>
929<td>
930              </td>
931<td>
932                <p>
933                  9
934                </p>
935              </td>
936<td>
937                <p>
938                  1062
939                </p>
940              </td>
941<td>
942                <p>
943                  1.70
944                </p>
945              </td>
946<td>
947                <p>
948                  1
949                </p>
950              </td>
951<td>
952              </td>
953<td>
954                <p>
955                  11
956                </p>
957              </td>
958<td>
959                <p>
960                  698437
961                </p>
962              </td>
963<td>
964                <p>
965                  1.54
966                </p>
967              </td>
968<td>
969                <p>
970                  -3
971                </p>
972              </td>
973<td>
974              </td>
975</tr>
976<tr>
977<td>
978                <p>
979                  Newton
980                </p>
981              </td>
982<td>
983                <p>
984                  3
985                </p>
986              </td>
987<td>
988                <p>
989                  484
990                </p>
991              </td>
992<td>
993                <p>
994                  1.29
995                </p>
996              </td>
997<td>
998                <p>
999                  -1
1000                </p>
1001              </td>
1002<td>
1003              </td>
1004<td>
1005                <p>
1006                  4
1007                </p>
1008              </td>
1009<td>
1010                <p>
1011                  734
1012                </p>
1013              </td>
1014<td>
1015                <p>
1016                  1.21
1017                </p>
1018              </td>
1019<td>
1020                <p>
1021                  1
1022                </p>
1023              </td>
1024<td>
1025              </td>
1026<td>
1027                <p>
1028                  4
1029                </p>
1030              </td>
1031<td>
1032                <p>
1033                  687
1034                </p>
1035              </td>
1036<td>
1037                <p>
1038                  1.10
1039                </p>
1040              </td>
1041<td>
1042                <p>
1043                  1
1044                </p>
1045              </td>
1046<td>
1047              </td>
1048<td>
1049                <p>
1050                  5
1051                </p>
1052              </td>
1053<td>
1054                <p>
1055                  545312
1056                </p>
1057              </td>
1058<td>
1059                <p>
1060                  1.20
1061                </p>
1062              </td>
1063<td>
1064                <p>
1065                  0
1066                </p>
1067              </td>
1068<td>
1069              </td>
1070</tr>
1071<tr>
1072<td>
1073                <p>
1074                  Halley
1075                </p>
1076              </td>
1077<td>
1078                <p>
1079                  2
1080                </p>
1081              </td>
1082<td>
1083                <p>
1084                  375
1085                </p>
1086              </td>
1087<td>
1088                <p>
1089                  <span class="blue">1.00</span>
1090                </p>
1091              </td>
1092<td>
1093                <p>
1094                  0
1095                </p>
1096              </td>
1097<td>
1098              </td>
1099<td>
1100                <p>
1101                  3
1102                </p>
1103              </td>
1104<td>
1105                <p>
1106                  609
1107                </p>
1108              </td>
1109<td>
1110                <p>
1111                  <span class="blue">1.00</span>
1112                </p>
1113              </td>
1114<td>
1115                <p>
1116                  3
1117                </p>
1118              </td>
1119<td>
1120              </td>
1121<td>
1122                <p>
1123                  3
1124                </p>
1125              </td>
1126<td>
1127                <p>
1128                  625
1129                </p>
1130              </td>
1131<td>
1132                <p>
1133                  <span class="blue">1.00</span>
1134                </p>
1135              </td>
1136<td>
1137                <p>
1138                  3
1139                </p>
1140              </td>
1141<td>
1142              </td>
1143<td>
1144                <p>
1145                  4
1146                </p>
1147              </td>
1148<td>
1149                <p>
1150                  453125
1151                </p>
1152              </td>
1153<td>
1154                <p>
1155                  <span class="blue">1.00</span>
1156                </p>
1157              </td>
1158<td>
1159                <p>
1160                  0
1161                </p>
1162              </td>
1163<td>
1164              </td>
1165</tr>
1166<tr>
1167<td>
1168                <p>
1169                  Schröder
1170                </p>
1171              </td>
1172<td>
1173                <p>
1174                  3
1175                </p>
1176              </td>
1177<td>
1178                <p>
1179                  546
1180                </p>
1181              </td>
1182<td>
1183                <p>
1184                  1.46
1185                </p>
1186              </td>
1187<td>
1188                <p>
1189                  -1
1190                </p>
1191              </td>
1192<td>
1193              </td>
1194<td>
1195                <p>
1196                  6
1197                </p>
1198              </td>
1199<td>
1200                <p>
1201                  1109
1202                </p>
1203              </td>
1204<td>
1205                <p>
1206                  1.82
1207                </p>
1208              </td>
1209<td>
1210                <p>
1211                  1
1212                </p>
1213              </td>
1214<td>
1215              </td>
1216<td>
1217                <p>
1218                  6
1219                </p>
1220              </td>
1221<td>
1222                <p>
1223                  1187
1224                </p>
1225              </td>
1226<td>
1227                <p>
1228                  1.90
1229                </p>
1230              </td>
1231<td>
1232                <p>
1233                  1
1234                </p>
1235              </td>
1236<td>
1237              </td>
1238<td>
1239                <p>
1240                  5
1241                </p>
1242              </td>
1243<td>
1244                <p>
1245                  564062
1246                </p>
1247              </td>
1248<td>
1249                <p>
1250                  1.24
1251                </p>
1252              </td>
1253<td>
1254                <p>
1255                  -2
1256                </p>
1257              </td>
1258<td>
1259              </td>
1260</tr>
1261</tbody>
1262</table></div>
1263</div>
1264<br class="table-break"><h4>
1265<a name="math_toolkit.root_comparison.elliptic_comparison.h2"></a>
1266        <span class="phrase"><a name="math_toolkit.root_comparison.elliptic_comparison.program_example_root_elliptic_f1"></a></span><a class="link" href="elliptic_comparison.html#math_toolkit.root_comparison.elliptic_comparison.program_example_root_elliptic_f1">Program
1267        root_elliptic_finding.cpp,
1268        GNU C++ version 7.1.0, GNU libstdc++ version 20170502, Win32 Compiled in
1269        optimise mode., _X64_SSE2</a>
1270      </h4>
1271<div class="table">
1272<a name="math_toolkit.root_comparison.elliptic_comparison.elliptic1"></a><p class="title"><b>Table 10.14. root with radius 28 and arc length 300) for float, double, long double
1273        and cpp_bin_float_50 types, using _X64_SSE2</b></p>
1274<div class="table-contents"><table class="table" summary="root with radius 28 and arc length 300) for float, double, long double
1275        and cpp_bin_float_50 types, using _X64_SSE2">
1276<colgroup>
1277<col>
1278<col>
1279<col>
1280<col>
1281<col>
1282<col>
1283<col>
1284<col>
1285<col>
1286<col>
1287<col>
1288<col>
1289<col>
1290<col>
1291<col>
1292<col>
1293<col>
1294<col>
1295<col>
1296<col>
1297<col>
1298</colgroup>
1299<thead><tr>
1300<th>
1301              </th>
1302<th>
1303                <p>
1304                  float
1305                </p>
1306              </th>
1307<th>
1308              </th>
1309<th>
1310              </th>
1311<th>
1312              </th>
1313<th>
1314              </th>
1315<th>
1316                <p>
1317                  double
1318                </p>
1319              </th>
1320<th>
1321              </th>
1322<th>
1323              </th>
1324<th>
1325              </th>
1326<th>
1327              </th>
1328<th>
1329                <p>
1330                  long d
1331                </p>
1332              </th>
1333<th>
1334              </th>
1335<th>
1336              </th>
1337<th>
1338              </th>
1339<th>
1340              </th>
1341<th>
1342                <p>
1343                  cpp50
1344                </p>
1345              </th>
1346<th>
1347              </th>
1348<th>
1349              </th>
1350<td class="auto-generated"> </td>
1351<td class="auto-generated"> </td>
1352</tr></thead>
1353<tbody>
1354<tr>
1355<td>
1356                <p>
1357                  Algo
1358                </p>
1359              </td>
1360<td>
1361                <p>
1362                  Its
1363                </p>
1364              </td>
1365<td>
1366                <p>
1367                  Times
1368                </p>
1369              </td>
1370<td>
1371                <p>
1372                  Norm
1373                </p>
1374              </td>
1375<td>
1376                <p>
1377                  Dis
1378                </p>
1379              </td>
1380<td>
1381              </td>
1382<td>
1383                <p>
1384                  Its
1385                </p>
1386              </td>
1387<td>
1388                <p>
1389                  Times
1390                </p>
1391              </td>
1392<td>
1393                <p>
1394                  Norm
1395                </p>
1396              </td>
1397<td>
1398                <p>
1399                  Dis
1400                </p>
1401              </td>
1402<td>
1403              </td>
1404<td>
1405                <p>
1406                  Its
1407                </p>
1408              </td>
1409<td>
1410                <p>
1411                  Times
1412                </p>
1413              </td>
1414<td>
1415                <p>
1416                  Norm
1417                </p>
1418              </td>
1419<td>
1420                <p>
1421                  Dis
1422                </p>
1423              </td>
1424<td>
1425              </td>
1426<td>
1427                <p>
1428                  Its
1429                </p>
1430              </td>
1431<td>
1432                <p>
1433                  Times
1434                </p>
1435              </td>
1436<td>
1437                <p>
1438                  Norm
1439                </p>
1440              </td>
1441<td>
1442                <p>
1443                  Dis
1444                </p>
1445              </td>
1446<td>
1447              </td>
1448</tr>
1449<tr>
1450<td>
1451                <p>
1452                  TOMS748
1453                </p>
1454              </td>
1455<td>
1456                <p>
1457                  5
1458                </p>
1459              </td>
1460<td>
1461                <p>
1462                  328
1463                </p>
1464              </td>
1465<td>
1466                <p>
1467                  1.24
1468                </p>
1469              </td>
1470<td>
1471                <p>
1472                  -1
1473                </p>
1474              </td>
1475<td>
1476              </td>
1477<td>
1478                <p>
1479                  8
1480                </p>
1481              </td>
1482<td>
1483                <p>
1484                  890
1485                </p>
1486              </td>
1487<td>
1488                <p>
1489                  1.50
1490                </p>
1491              </td>
1492<td>
1493                <p>
1494                  0
1495                </p>
1496              </td>
1497<td>
1498              </td>
1499<td>
1500                <p>
1501                  8
1502                </p>
1503              </td>
1504<td>
1505                <p>
1506                  1234
1507                </p>
1508              </td>
1509<td>
1510                <p>
1511                  1.61
1512                </p>
1513              </td>
1514<td>
1515                <p>
1516                  4
1517                </p>
1518              </td>
1519<td>
1520              </td>
1521<td>
1522                <p>
1523                  11
1524                </p>
1525              </td>
1526<td>
1527                <p>
1528                  487500
1529                </p>
1530              </td>
1531<td>
1532                <p>
1533                  1.57
1534                </p>
1535              </td>
1536<td>
1537                <p>
1538                  -3
1539                </p>
1540              </td>
1541<td>
1542              </td>
1543</tr>
1544<tr>
1545<td>
1546                <p>
1547                  Newton
1548                </p>
1549              </td>
1550<td>
1551                <p>
1552                  3
1553                </p>
1554              </td>
1555<td>
1556                <p>
1557                  359
1558                </p>
1559              </td>
1560<td>
1561                <p>
1562                  1.35
1563                </p>
1564              </td>
1565<td>
1566                <p>
1567                  -1
1568                </p>
1569              </td>
1570<td>
1571              </td>
1572<td>
1573                <p>
1574                  4
1575                </p>
1576              </td>
1577<td>
1578                <p>
1579                  718
1580                </p>
1581              </td>
1582<td>
1583                <p>
1584                  1.21
1585                </p>
1586              </td>
1587<td>
1588                <p>
1589                  1
1590                </p>
1591              </td>
1592<td>
1593              </td>
1594<td>
1595                <p>
1596                  4
1597                </p>
1598              </td>
1599<td>
1600                <p>
1601                  843
1602                </p>
1603              </td>
1604<td>
1605                <p>
1606                  1.10
1607                </p>
1608              </td>
1609<td>
1610                <p>
1611                  1
1612                </p>
1613              </td>
1614<td>
1615              </td>
1616<td>
1617                <p>
1618                  5
1619                </p>
1620              </td>
1621<td>
1622                <p>
1623                  379687
1624                </p>
1625              </td>
1626<td>
1627                <p>
1628                  1.22
1629                </p>
1630              </td>
1631<td>
1632                <p>
1633                  0
1634                </p>
1635              </td>
1636<td>
1637              </td>
1638</tr>
1639<tr>
1640<td>
1641                <p>
1642                  Halley
1643                </p>
1644              </td>
1645<td>
1646                <p>
1647                  2
1648                </p>
1649              </td>
1650<td>
1651                <p>
1652                  265
1653                </p>
1654              </td>
1655<td>
1656                <p>
1657                  <span class="blue">1.00</span>
1658                </p>
1659              </td>
1660<td>
1661                <p>
1662                  0
1663                </p>
1664              </td>
1665<td>
1666              </td>
1667<td>
1668                <p>
1669                  3
1670                </p>
1671              </td>
1672<td>
1673                <p>
1674                  593
1675                </p>
1676              </td>
1677<td>
1678                <p>
1679                  <span class="blue">1.00</span>
1680                </p>
1681              </td>
1682<td>
1683                <p>
1684                  1
1685                </p>
1686              </td>
1687<td>
1688              </td>
1689<td>
1690                <p>
1691                  3
1692                </p>
1693              </td>
1694<td>
1695                <p>
1696                  765
1697                </p>
1698              </td>
1699<td>
1700                <p>
1701                  <span class="blue">1.00</span>
1702                </p>
1703              </td>
1704<td>
1705                <p>
1706                  7
1707                </p>
1708              </td>
1709<td>
1710              </td>
1711<td>
1712                <p>
1713                  4
1714                </p>
1715              </td>
1716<td>
1717                <p>
1718                  310937
1719                </p>
1720              </td>
1721<td>
1722                <p>
1723                  <span class="blue">1.00</span>
1724                </p>
1725              </td>
1726<td>
1727                <p>
1728                  0
1729                </p>
1730              </td>
1731<td>
1732              </td>
1733</tr>
1734<tr>
1735<td>
1736                <p>
1737                  Schröder
1738                </p>
1739              </td>
1740<td>
1741                <p>
1742                  3
1743                </p>
1744              </td>
1745<td>
1746                <p>
1747                  343
1748                </p>
1749              </td>
1750<td>
1751                <p>
1752                  1.29
1753                </p>
1754              </td>
1755<td>
1756                <p>
1757                  -1
1758                </p>
1759              </td>
1760<td>
1761              </td>
1762<td>
1763                <p>
1764                  4
1765                </p>
1766              </td>
1767<td>
1768                <p>
1769                  812
1770                </p>
1771              </td>
1772<td>
1773                <p>
1774                  1.37
1775                </p>
1776              </td>
1777<td>
1778                <p>
1779                  0
1780                </p>
1781              </td>
1782<td>
1783              </td>
1784<td>
1785                <p>
1786                  4
1787                </p>
1788              </td>
1789<td>
1790                <p>
1791                  1046
1792                </p>
1793              </td>
1794<td>
1795                <p>
1796                  1.37
1797                </p>
1798              </td>
1799<td>
1800                <p>
1801                  3
1802                </p>
1803              </td>
1804<td>
1805              </td>
1806<td>
1807                <p>
1808                  5
1809                </p>
1810              </td>
1811<td>
1812                <p>
1813                  390625
1814                </p>
1815              </td>
1816<td>
1817                <p>
1818                  1.26
1819                </p>
1820              </td>
1821<td>
1822                <p>
1823                  -2
1824                </p>
1825              </td>
1826<td>
1827              </td>
1828</tr>
1829</tbody>
1830</table></div>
1831</div>
1832<br class="table-break"><p>
1833        Remarks:
1834      </p>
1835<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
1836<li class="listitem">
1837            The function being solved is now moderately expensive to call, and twice
1838            as expensive to call when obtaining the derivative than when not. Consequently
1839            there is very little improvement in moving from a derivative free method,
1840            to Newton iteration. However, once you've calculated the first derivative
1841            the second comes almost for free, consequently the third order methods
1842            (Halley) does much the best.
1843          </li>
1844<li class="listitem">
1845            Of the two second order methods, Halley does best as would be expected:
1846            the Schroder method offers better guarantees of <span class="emphasis"><em>quadratic</em></span>
1847            convergence, while Halley relies on a smooth function with a single root
1848            to give <span class="emphasis"><em>cubic</em></span> convergence. It's not entirely clear
1849            why Schroder iteration often does worse than Newton.
1850          </li>
1851</ul></div>
1852</div>
1853<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
1854<td align="left"></td>
1855<td align="right"><div class="copyright-footer">Copyright © 2006-2019 Nikhar
1856      Agrawal, Anton Bikineev, Paul A. Bristow, Marco Guazzone, Christopher Kormanyos,
1857      Hubert Holin, Bruno Lalande, John Maddock, Jeremy Murphy, Matthew Pulver, Johan
1858      Råde, Gautam Sewani, Benjamin Sobotta, Nicholas Thompson, Thijs van den Berg,
1859      Daryle Walker and Xiaogang Zhang<p>
1860        Distributed under the Boost Software License, Version 1.0. (See accompanying
1861        file LICENSE_1_0.txt or copy at <a href="http://www.boost.org/LICENSE_1_0.txt" target="_top">http://www.boost.org/LICENSE_1_0.txt</a>)
1862      </p>
1863</div></td>
1864</tr></table>
1865<hr>
1866<div class="spirit-nav">
1867<a accesskey="p" href="root_n_comparison.html"><img src="../../../../../../doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../root_comparison.html"><img src="../../../../../../doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../../../../../doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../../poly.html"><img src="../../../../../../doc/src/images/next.png" alt="Next"></a>
1868</div>
1869</body>
1870</html>
1871