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.

MapleMuPADGMP MPFMPFRMathematicaPariMagmaArithmetic Explorer iRRAM
commercialcommercial/freefreefreecommercialfreecommercialfreefree
interactiveinteractivelibrarylibraryinteractivelibraryinteractiveinteractive library
directed roundingnononoyesnononoyesno
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.