![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Comparison of Elliptic Integral Root Finding AlgoritghmsBoost , Math Toolkit 2.5.0 , Comparison of Root Finding Algorithms
|
Функция |
Запрошенная точность |
---|---|
TOMS748 |
numeric_limits<T>::digits - 2 |
Ньютон |
этаж (цифровые_ограничения |
Halley |
этаж (цифровые_ограничения |
Schröder |
этаж (цифровые_ограничения |
Испытания использовали Microsoft Visual Studio 2013 (обновление 1) и GCC 4.9.1 с использованием исходного кода root_elliptic_finding.cpp.
Неопределенность времени (особенно с использованием MSVC) составляет не менее 5% от нормализованного времени «Norm».
Чтобы выбрать «лучшие» и «худшие» алгоритмы выделены синим и красным. Более одного результата может быть «лучшим», когда нормализованные времена неотличимы в неопределенности.
Table 12.12. root with radius 28 and arc length 300) for float, double, long double and cpp_bin_float_50 types, using _X86_SSE2
плавание |
двойной |
д |
cpp50 |
|||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Algo |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
||||
TOMS748 |
5 |
515 |
1.43 |
-1 |
9 |
968 |
1.82 |
1 |
9 |
968 |
1.82 |
1 |
11 |
871875 |
1.53 |
-3 |
||||
Ньютон |
3 |
453 |
1.26 |
-1 |
4 |
640 |
1.21 |
1 |
4 |
640 |
1.21 |
1 |
5 |
685937 |
1.20 |
0 |
||||
Halley |
2 |
359 |
1.00 |
0 |
3 |
531 |
1.00 |
3 |
3 |
531 |
1.00 |
3 |
4 |
570312 |
1.00 |
0 |
||||
Schröder |
3 |
484 |
1.35 |
-1 |
6 |
1000 |
1.88 |
1 |
6 |
984 |
1.85 |
1 |
5 |
742187 |
1.30 |
-2 |
Table 12.13. root with radius 28 and arc length 300) for float, double, long double and cpp_bin_float_50 types, using _X64_AVX
плавание |
двойной |
д |
cpp50 |
|||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Algo |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
||||
TOMS748 |
5 |
500 |
1.33 |
-1 |
9 |
1046 |
1.72 |
1 |
9 |
1062 |
1.70 |
1 |
11 |
698437 |
1.54 |
-3 |
||||
Ньютон |
3 |
484 |
1.29 |
-1 |
4 |
734 |
1.21 |
1 |
4 |
687 |
1.10 |
1 |
5 |
545312 |
1.20 |
0 |
||||
Halley |
2 |
375 |
1.00 |
0 |
3 |
609 |
1.00 |
3 |
3 |
625 |
1.00 |
3 |
4 |
453125 |
1.00 |
0 |
||||
Schröder |
3 |
546 |
1.46 |
-1 |
6 |
1109 |
1.82 |
1 |
6 |
1187 |
1.90 |
1 |
5 |
564062 |
1.24 |
-2 |
Table 12.14. root with radius 28 and arc length 300) for float, double, long double and cpp_bin_float_50 types, using _X64_SSE2
плавание |
двойной |
д |
cpp50 |
|||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Algo |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
|
Times |
Нормы |
Dis |
||||
TOMS748 |
5 |
328 |
1.31 |
-1 |
8 |
875 |
1.51 |
0 |
8 |
1109 |
1.69 |
4 |
11 |
479687 |
1.49 |
-3 |
||||
Ньютон |
3 |
328 |
1.31 |
-1 |
4 |
671 |
1.16 |
1 |
4 |
781 |
1.19 |
1 |
5 |
387500 |
1.20 |
0 |
||||
Halley |
2 |
250 |
1.00 |
0 |
3 |
578 |
1.00 |
1 |
3 |
656 |
1.00 |
7 |
4 |
321875 |
1.00 |
0 |
||||
Schröder |
3 |
375 |
1.50 |
-1 |
4 |
734 |
1.27 |
0 |
4 |
828 |
1.26 |
3 |
5 |
414062 |
1.29 |
-2 |
Замечания:
Статья Comparison of Elliptic Integral Root Finding Algoritghms раздела Math Toolkit 2.5.0 Comparison of Root Finding Algorithms может быть полезна для разработчиков на c++ и boost.
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
:: Главная :: Comparison of Root Finding Algorithms ::
реклама |