Comparison of other software to MPFR

Maple MuPAD Mathematica Magma GMP MPF MPFR Pari NTL CLN ArPrec MAPM
commercial commercial commercial commercial free (LGPL) free (LGPL) free (GPL) free (GPL) free (GPL) non-commercial freeware
9.01 2.5.3 5.0.0 2.11-2 4.1.4 2.1.0 2.1.5 5.3.1 1.1.9 2004-11-23 4.9
interactive interactive interactive interactive library library library library library library library

The following tables give the cpu time in milliseconds spent by several systems or libraries for different operations, at different precisions. The precision is only one digit.

Only MPFR provides directed rounding.

CLN has been built with GMP support. MPFR has been built without GMP internal files. NTL and PARI have been built with native support.

na: Not-available (function missing or enable to provide a reliable bench).

na*: Not-available due to segfault.

32-bit machine: laurent5.medicis.polytechnique.fr.

These timings were obtained on a bi-athlon MP 2200+ 1800Mhz 2 Gb running Linux (libraries were compiled with gcc 3.2 20020903 with their native flags).

100 digits Maple MuPAD Mathematica Magma MPF MPFR Pari NTL CLN ArPrec MAPM
mult 0.031 0.0029 0.0019 0.00134 0.00047 0.00049 0.00059 0.0025 0.00072 0.0090 0.0098
div 0.035 0.0035 0.009 0.0022 0.0012 0.0010 0.0015 0.0036 0.0013 0.012 0.11
sqrt 0.16 0.010 0.0098 0.0099 0.0015 0.0017 0.0065 0.0241 0.0016 0.050 0.16
exp 0.34 0.1 0.055 0.08 na 0.019 0.034 0.28 0.055 0.57 2.58
log 0.46 0.20 0.075 0.12 na 0.040 0.075 1.4 0.069 1.5 3.2
sin 0.61 0.11 0.074 0.08 na 0.024 0.042 0.30 0.060 0.49 1.28
cos 0.64 0.1 0.073 0.069 na 0.018 0.034 0.32 0.053 0.48 1.4
acos na 0.32 0.16 0.27 na 0.67 0.18 na 0.078 1.3 6.3
atan 1.5 0.26 0.15 0.24 na 0.65 0.15 na 0.068 1.3 6.6
1000 digits Maple MuPAD Mathematica Magma MPF MPFR Pari NTL CLN ArPrec MAPM
mult 0.14 0.076 0.025 0.061 0.017 0.016 0.031 0.077 0.021 0.46 0.084
div 0.13 0.084 0.075 0.059 0.030 0.030 0.046 0.13 0.032 0.64 2.54
sqrt 1.2 0.22 0.04 0.16 0.022 0.021 0.13 1.4 0.027 1.6 3.1
exp 10 5.5 2.6 4.5 na 0.75 2.4 32 1.9 130 110
log 2.9 7.7 1.8 6.0 na 0.89 4.3 260 1.6 52 67
sin 19 6.6 1.7 5.3 na 1.0 3.0 35 1.4 na* 61
cos 20 6.6 1.7 5.1 na 1.0 2.8 32 1.3 na* 65
acos na 18 2.7 13 na 13 10 na 2.1 na* 200
atan 19 17 2.6 13 na 12 9.6 na 2.0 na* 210
10000 digits Maple MuPAD Mathematica Magma MPF MPFR Pari NTL CLN ArPrec MAPM
mult 4.7 7.0 0.8 5.3 0.56 0.56 2.9 3.8 0.81 8.8 1.6
div 4.3 6.7 2.5 4.7 1.2 1.2 3.8 12 2.4 61 67
sqrt 30 22 1.2 16 0.81 0.81 13 170 1.6 45 91
exp 860 1400 56 1200 na 74 623 9100 72 4200 12000
log 490 2200 51 1600 na 39 1200 94000 80 1900 6000
sin na* 1800 150 1500 na 100 810 9800 130 37000 8400
cos na* 1800 150 1400 na 100 770 44000 120 37000 7200
acos na 4900 230 3600 na 1100 2700 na 150 6000 16000
atan na* 4900 220 3600 na 1000 2700 na 150 6100 17000

64-bit machine: marie.medicis.polytechnique.fr.

The following timings were obtained on a Bi-Opteron 246 (2GHz) with 1MB of cache and 8Gb of RAM under Linux 2.6.8-1.521smp. GCC is 3.3.3 20040412.

100 digits Maple Mathematica Magma MPF MPFR Pari NTL CLN ArPrec MAPM
mult 0.022 0.0015 0.0013 0.00025 0.00024 0.00029 0.00064 0.00034 0.0075 0.0063
div 0.026 0.0059 0.0021 0.00070 0.00052 0.0012 0.0011 0.00083 0.0091 0.081
sqrt 0.11 0.0062 0.0089 0.00095 0.00091 0.0049 0.0079 0.0010 0.032 0.11
exp 0.25 0.041 0.08 na 0.013 0.028 0.11 0.029 0.42 1.90
log 0.31 0.055 0.11 na 0.022 0.066 0.62 0.040 1.1 2.4
sin 0.46 0.050 0.07 na 0.015 0.034 0.12 0.038 0.36 0.96
cos 0.46 0.049 0.07 na 0.011 0.028 0.12 0.034 0.36 1.0
acos na 0.10 0.26 na 0.40 0.19 na 0.048 0.87 4.8
atan 1.1 0.093 0.21 na 0.39 0.13 na 0.043 0.93 5.0
1000 digits Maple Mathematica Magma MPF MPFR Pari NTL CLN ArPrec MAPM
mult 0.10 0.017 0.06 0.0093 0.0092 0.015 0.021 0.010 0.31 0.060
div 0.093 0.050 0.049 0.018 0.016 0.023 0.034 0.017 0.55 1.8
sqrt 0.85 0.029 0.15 0.011 0.010 0.067 0.34 0.012 1.2 2.2
exp 8.53 1.9 4.5 na 0.43 1.3 9.1 0.79 110 82
log 1.93 1.4 5.3 na 0.48 2.3 74 0.82 37 48
sin 15.1 1.2 5.1 na 0.59 1.5 10 0.65 230 44
cos 15.2 1.2 5.1 na 0.55 1.4 11 0.60 230 47
acos na 2.0 13 na 7.6 5.20 na 1.1 110 144
atan 14 1.9 12 na 7.2 4.8 na 0.97 110 150
10000 digits Maple Mathematica Magma MPF MPFR Pari NTL CLN ArPrec MAPM
mult 3.4 0.58 5.5 0.37 0.36 1.4 0.84 0.43 3.9 1.2
div 3.0 1.8 4.5 0.75 0.73 1.5 2.8 1.3 26 45
sqrt 21 0.82 15 0.47 0.46 4.9 36 0.79 21 59
exp 710 40 1200 na 44 300 2500 36 2200 7900
log 401 36 1600 na 23 480 26000 42 830 4300
sin na* 110 1500 na 69 400 2700 61 17000 5700
cos na* 110 1500 na 68 370 12000 58 17000 5000
acos na 170 3600 na 690 1100 na 81 2700 11000
atan na* 160 3500 na 666 1100 na 78 2800 12000

The source file of these tests is available for Maple, MuPAD, MPF, MPFR, Mathematica, Pari, MAPM, ArPrec, NTL, CLN, and Magma.

Thanks to the Medicis center for providing a machine with all those systems installed on it.

The stable version of PARI is quite old. Karim BELABAS has updated this page for PARI 2.3.0. You can check the results here.