Comparison of MPFR with Other Software
Updated for MPFR 1.0 with GMP 3.1,
old timings with MPFR 0.4 and GMP 3.0 still available
here.
32-bit machine
The following tables give the cpu time in milliseconds spent by
several systems or libraries for different operations, at different
precisions. These timings were obtained on a 400Mhz Xeon
(alexandre.medicis.polytechnique.fr) running Linux (libraries were
compiled with gcc 2.95.2 with option -O2). Thanks to the
Médicis center for
providing a machine with all those systems installed on it.
100 digits |
Maple V.5.1 |
MuPAD 1.4.2 |
MPF 3.1 |
MPFR 1.0 |
Mathematica 4.0.1 |
Pari 2.0.14 alpha |
Magma V2.7-2 |
Ar. Explorer 1.00 |
iRRAM 2000-08-22 |
multiplication |
0.04 |
0.024 |
0.0037 |
0.0037 |
0.020 |
0.003 |
0.021 |
0.017 |
0.006 |
division |
0.15 |
0.027 |
0.007 |
0.0084 |
0.143 |
0.007 |
0.0351 |
0.018 |
0.010 |
square root |
0.29 |
0.072 |
0.0173 |
0.0138 |
0.18 |
0.032 |
0.1419 |
0.10 |
0.078 |
exponential |
1.4 |
0.47 |
n/a |
0.183 |
0.94 |
0.16 |
1.1191 |
n/a |
0.522 |
logarithm |
2.3 |
0.82 |
n/a |
0.349 |
1.24 |
0.35 |
2.0211 |
n/a |
1.45 |
1000 digits |
Maple V.5.1 |
MuPAD 1.4.2 |
MPF 3.1 |
MPFR 1.0 |
Mathematica 4.0.1 |
Pari 2.0.14 alpha |
Magma V2.7-2 |
Ar. Explorer 1.00 |
iRRAM 2000-08-22 |
multiplication |
1.1 |
0.48 |
0.142 |
0.146 |
0.37 |
0.18 |
1.089 |
0.51 |
0.17 |
division |
11.3 |
0.56 |
0.229 |
0.229 |
1.12 |
0.25 |
1.301 |
0.40 |
0.287 |
square root |
15.0 |
1.5 |
0.355 |
0.179 |
1.6 |
0.70 |
3.41 |
1.3 |
0.364 |
exponential |
53 |
35 |
n/a |
8.19 |
35 |
14 |
78.51 |
n/a |
21.1 |
logarithm |
69 |
52 |
n/a |
7.81 |
31 |
23 |
118.9 |
n/a |
18.8 |
10000 digits |
Maple V.5.1 |
MuPAD 1.4.2 |
MPF 3.1 |
MPFR 1.0 |
Mathematica 4.0.1 |
Pari 2.0.14 alpha |
Magma V2.7-2 |
Ar. Explorer 1.00 |
iRRAM 2000-08-22 |
multiplication |
39 |
45 |
4.7 |
4.7 |
15 |
17 |
104.5 |
50 |
4.88 |
division |
1130 |
49 |
10.1 |
10.2 |
43 |
22 |
116 |
37 |
10.5 |
square root |
1390 |
160 |
15.7 |
7.6 |
55 |
72 |
363 |
88 |
15.1 |
exponential |
5330 |
9690 |
n/a |
622 |
930 |
3680 |
22360 |
n/a |
3740 |
logarithm |
5660 |
15720 |
n/a |
375 |
1240 |
6750 |
35419 |
n/a |
1070 |
The source file of these tests is available for
Maple,
MuPAD,
MPF from GMP,
MPFR,
Mathematica,
Pari,
and Magma.
64-bit machine
The following timings were obtained, with the stimulation and help
of Bruno Salvy, on a 500Mhz Compaq XP/1000 (aka Alpha EV6) with gcc
2.95.2 under OSF/1 4.0 with 640MB of main memory
(leon1.medicis.polytechnique.fr).
100 digits |
Maple V.5.1 |
MPF 3.1 |
MPFR 1.0 |
Mathematica 3.0 |
Pari 2.0.14 alpha |
Magma V2.7-2 |
multiplication |
.0125 |
0.000970 |
0.00096 |
0.0114995 |
0.0012 |
0.0033 |
division |
.0278 |
0.00212 |
0.0028 |
0.108996 |
0.0065 |
0.0134 |
square root |
.0847 |
0.00505 |
0.00483 |
0.287655 |
0.028 |
0.0483 |
exponential |
.583 |
n/a |
0.063 |
0.871632 |
0.17 |
0.4516 |
logarithm |
1.08 |
n/a |
0.127 |
0.836633 |
0.38 |
0.8133 |
1000 digits |
Maple V.5.1 |
MPF 3.1 |
MPFR 1.0 |
Mathematica 3.0 |
Pari 2.0.14 alpha |
Magma V2.7-2 |
multiplication |
.185 |
0.0232 |
0.0228 |
0.101663 |
0.067 |
0.067 |
division |
.721 |
0.0472 |
0.0468 |
0.461648 |
0.116 |
0.116 |
square root |
1.28 |
0.0709 |
0.0423 |
0.988294 |
0.37 |
0.5 |
exponential |
14.2 |
n/a |
1.86 |
9.86627 |
7.44 |
7.33 |
logarithm |
15.8 |
n/a |
1.64 |
19.3326 |
12.9 |
14.01 |
10000 digits |
Maple V.5.1 |
MPF 3.1 |
MPFR 1.0 |
Mathematica 3.0 |
Pari 2.0.14 alpha |
Magma V2.7-2 |
multiplication |
7.20 |
0.859 |
0.86 |
7.5997 |
6.7 |
6.17 |
division |
57.0 |
1.85 |
1.83 |
22.9991 |
7.6 |
6.7 |
square root |
73.9 |
2.74 |
1.36 |
34.7653 |
26.0 |
21.7 |
exponential |
1590. |
n/a |
108 |
1615.94 |
1600 |
1366 |
logarithm |
1410. |
n/a |
68.6 |
7418.54 |
2550 |
2150 |
Back to the MPFR
page.