commit 94c7cf77618aa33b2befe785101eaf0e876bedfc
parent deae42eb4190a0512ac7887b9c9dd3e7de1bfe0b
Author: Mattias Andrée <maandree@kth.se>
Date: Thu, 5 May 2016 13:55:57 +0200
Update STATUS
Signed-off-by: Mattias Andrée <maandree@kth.se>
Diffstat:
M | STATUS | | | 40 | ++++++++++++++++++++-------------------- |
1 file changed, 20 insertions(+), 20 deletions(-)
diff --git a/STATUS b/STATUS
@@ -6,45 +6,45 @@ left column. Double-parenthesis means there may be a better way
to do it. Inside square-brackets, there are some comments on
multi-bit comparisons.
-zset .................... fastest [always (gcc); until ~250 (clang)]
+zset .................... fastest [always]
zseti ................... tomsfastmath is faster [always]
zsetu ................... tomsfastmath is faster [always]
-zneg(a, b) .............. fastest [always (gcc); until ~250 (clang)]
+zneg(a, b) .............. fastest [always]
zneg(a, a) .............. fastest [always] (shared with gmp)
-zabs(a, b) .............. fastest [always (gcc); until ~250 (clang)]
+zabs(a, b) .............. fastest [always]
zabs(a, a) .............. tomsfastmath is faster [always]
-zadd_unsigned ........... fastest [always (gcc+glibc); until 1400~1600 (gcc+musl); until ~600 (clang+glibc)]
+zadd_unsigned ........... fastest [always]
zsub_unsigned ........... fastest [always]
-zadd .................... fastest [almost never]
+zadd .................... fastest [after ~100, tomsfastmath before] (shared with gmp)
zsub .................... fastest [always]
-zand .................... 77 % of tomsfastmath [until ~150, then gmp]
-zor ..................... 65 % of tomsfastmath [until ~250, then gmp]
-zxor .................... 87 % of tomsfastmath [until ~500, then gmp]
+zand .................... 77 % of tomsfastmath [until ~900, alternating with gmp]
+zor ..................... 65 % of tomsfastmath [until ~1750, alternating with gmp (gcc) and tomsfastmath (clang)]
+zxor .................... 87 % of tomsfastmath [until ~700, alternating with gmp (gcc+clangs),]
znot .................... fastest [always]
zeven ................... fastest [always]
zodd .................... fastest [always]
zeven_nonzero ........... fastest [always]
zodd_nonzero ............ fastest [always]
-zzero ................... fastest [always] (shared with gmp and libtommath)
+zzero ................... fastest [always] (shared with gmp)
zsignum ................. fastest [always] (shared with gmp)
zbits ................... fastest [always]
zlsb .................... fastest [always]
zswap ................... fastest [always]
-zlsh .................... fastest [until ~300, then gmp (gcc); until ~100 (clang)]
+zlsh .................... fastest [until ~1000, then gmp]
zrsh .................... fastest [almost never]
-ztrunc(a, b, c) ......... fastest [until 750~2000, then gmp (gcc); until 1~500 (clang)]
-ztrunc(a, a, b) ......... fastest [until ~150, then 77 % of tomsfastmath]
-zsplit .................. fastest [until 100~200, then gmp]
+ztrunc(a, b, c) ......... fastest [always; alternating with gmp between 1400~3000 (clang)]
+ztrunc(a, a, b) ......... fastest [until ~150, then 77 % of tomsfastmath; slightly slower than gmp (clang)]
+zsplit .................. fastest [alternating with gmp and slightly slow than gmp]
zcmpmag ................. fastest [always]
zcmp .................... fastest [almost never]
-zcmpi(a, +) ............. fastest
-zcmpi(a, -) ............. fastest
-zcmpu ................... fastest
-zbset(a, b, 1) .......... fastest [always (gcc+glibc); until 3500~3750 (gcc+musl); until ~100 (clang+glibc)]
+zcmpi(a, +) ............. fastest [always]
+zcmpi(a, -) ............. fastest [always]
+zcmpu ................... fastest [always]
+zbset(a, b, 1) .......... fastest [always]
zbset(a, a, 1) .......... fastest [always]
-zbset(a, b, 0) .......... fastest [until 3300~3800 (gcc); until ~800 (clang)]
+zbset(a, b, 0) .......... fastest [always]
zbset(a, a, 0) .......... fastest [always]
-zbset(a, b, -1) ......... fastest [until 3100~3400 (gcc); until ~200 (clang)]
+zbset(a, b, -1) ......... fastest [always]
zbset(a, a, -1) ......... fastest [always]
zbtest .................. fastest [always]
zgcd .................... 21 % of gmp (zcmpmag)
@@ -63,7 +63,7 @@ zstr_length(a, 10) ...... gmp is faster [always] (zdiv, zsqr)
zstr(a, b, n) ........... 8 % of gmp, 59 % of hebimath
zrand(default uniform) .. 51 % of gmp
zptest .................. slowest (zrand, zmodpow, zsqr, zmod)
-zsave ................... fastest [until ~600, then tomsfastmath; libtommath is suspicious]
+zsave ................... fastest [until ~250, then tomsfastmath; libtommath is suspicious]
zload ................... fastest [always]
zdiv(big denum) ......... tomsfastmath and naïve hebimath implementation are faster (zdivmod)
zmod(big denum) ......... fastest (zdivmod)