The MPFR Library: Timings for Version 0.4 with GMP 3.0
Updated for GMP 3.0, old timings
with GMP 2.0.2 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 -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.0 | MPFR 0.4 | Mathematica 4.0.1 | Pari 2.0.14 alpha | Magma V2.6-2 | Ar. Explorer 1.00 | 
| multiplication | 0.04 | 0.024 | 0.0037 | 0.0044 | 0.020 | 0.003 | 0.018 | 0.017 | 
| division | 0.15 | 0.027 | 0.007 | 0.009 | 0.143 | 0.007 | 0.033 | 0.018 | 
| square root | 0.29 | 0.072 | 0.017 | 0.017 | 0.18 | 0.032 | 0.14 | 0.10 | 
| exponential | 1.4 | 0.47 | n/a | 0.23 | 0.94 | 0.16 | 1.1 | n/a | 
| logarithm | 2.3 | 0.82 | n/a | 0.40 | 1.24 | 0.35 | 2.0 | n/a | 
| 1000 digits | Maple V.5.1 | MuPAD 1.4.2 | MPF 3.0 | MPFR 0.4 | Mathematica 4.0.1 | Pari 2.0.14 alpha | Magma V2.6-2 | Ar. Explorer 1.00 | 
| multiplication | 1.1 | 0.48 | 0.14 | 0.14 | 0.37 | 0.18 | 1.1 | 0.51 | 
| division | 11.3 | 0.56 | 0.22 | 0.23 | 1.12 | 0.25 | 1.3 | 0.40 | 
| square root | 15.0 | 1.5 | 0.34 | 0.18 | 1.6 | 0.70 | 3.3 | 1.3 | 
| exponential | 53 | 35 | n/a | 15 | 35 | 14 | 79 | n/a | 
| logarithm | 69 | 52 | n/a | 15 | 31 | 23 | 119 | n/a | 
| 10000 digits | Maple V.5.1 | MuPAD 1.4.2 | MPF 3.0 | MPFR 0.4 | Mathematica 4.0.1 | Pari 2.0.14 alpha | Magma V2.6-2 | Ar. Explorer 1.00 | 
| multiplication | 39 | 45 | 4.7 | 4.8 | 15 | 17 | 104 | 50 | 
| division | 1130 | 49 | 9.8 | 10.1 | 43 | 22 | 111 | 37 | 
| square root | 1390 | 160 | 15.6 | 7.3 | 55 | 72 | 362 | 88 | 
| exponential | 5330 | 9690 | n/a | 1600 | 930 | 3680 | 22300 | n/a | 
| logarithm | 5660 | 15720 | n/a | 420 | 1240 | 6750 | 35400 | n/a | 
The source file of these tests is available for
Maple,
MuPAD,
MPF 3.0,
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) under OSF/1
4.0 with 640MB of main memory (leon1.medicis.polytechnique.fr).
| 100 digits | Maple V.5.1 | MPF 3.0 | MPFR 0.4 | Mathematica 3.0 | Pari 2.0.14 alpha | Magma V2.6-2 | 
| multiplication | .0125 | 0.0010 | 0.0012 | 0.0114995 | 0.0012 | 0.0033 | 
| division | .0278 | 0.0021 | 0.0029 | 0.108996 | 0.0065 | 0.0116 | 
| square root | .0847 | 0.0051 | 0.0047 | 0.287655 | 0.028 | 0.0484 | 
| exponential | .583 | n/a | 0.078 | 0.871632 | 0.17 | 0.4316 | 
| logarithm | 1.08 | n/a | 0.29 | 0.836633 | 0.38 | 0.73 | 
| 1000 digits | Maple V.5.1 | MPF 3.0 | MPFR 0.4 | Mathematica 3.0 | Pari 2.0.14 alpha | Magma V2.6-2 | 
| multiplication | .185 | 0.031 | 0.031 | 0.101663 | 0.067 | 0.066 | 
| division | .721 | 0.054 | 0.055 | 0.461648 | 0.116 | 0.117 | 
| square root | 1.28 | 0.080 | 0.044 | 0.988294 | 0.37 | 0.5 | 
| exponential | 14.2 | n/a | 3.6 | 9.86627 | 7.44 | 7.17 | 
| logarithm | 15.8 | n/a | 3.8 | 19.3326 | 12.9 | 13.5 | 
| 10000 digits | Maple V.5.1 | MPF 3.0 | MPFR 0.4 | Mathematica 3.0 | Pari 2.0.14 alpha | Magma V2.6-2 | 
| multiplication | 7.20 | 1.1 | 1.1 | 7.5997 | 6.7 | 6.0 | 
| division | 57.0 | 2.4 | 2.4 | 22.9991 | 7.6 | 6.6 | 
| square root | 73.9 | 3.4 | 1.7 | 34.7653 | 26.0 | 21.7 | 
| exponential | 1590. | n/a | 370. | 1615.94 | 1600 | 1333 | 
| logarithm | 1410. | n/a | 84. | 7418.54 | 2550 | 2217 | 
Back to the MPFR
page.