diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2017-01-27 08:39:04 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2017-01-27 08:52:41 +0800 |
commit | 33ec5bad907b2236ee6a97223a686c0257a3b64b (patch) | |
tree | 9e551ec2f2f0063b45e77775dfe2ebc1d6082069 | |
parent | 31129368ae5e61a09a6a16562dd5de17b4c69eea (diff) | |
download | dexon-mcl-33ec5bad907b2236ee6a97223a686c0257a3b64b.tar.gz dexon-mcl-33ec5bad907b2236ee6a97223a686c0257a3b64b.tar.zst dexon-mcl-33ec5bad907b2236ee6a97223a686c0257a3b64b.zip |
compare gmp and llvm of mulPre and sqrPre
-rw-r--r-- | misc/karatsuba.cpp | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/misc/karatsuba.cpp b/misc/karatsuba.cpp index 021b919..7c150c6 100644 --- a/misc/karatsuba.cpp +++ b/misc/karatsuba.cpp @@ -5,6 +5,7 @@ #include <stdio.h> #include <mcl/fp.hpp> #include <cybozu/xorshift.hpp> +#include "../src/proto.hpp" #include "../src/low_func.hpp" #ifdef MCL_USE_LLVM #include "../src/low_func_llvm.hpp" @@ -41,14 +42,14 @@ void benchKaratsuba() Unit z[N * 2]; rg.read(z, N); CYBOZU_BENCH("g:mulPre ", (MulPreCore<N, Gtag>::f), z, z, z); - CYBOZU_BENCH("g:mulKara", (MulPre<N, Gtag>::karatsuba), z, z, z); +// CYBOZU_BENCH("g:mulKara", (MulPre<N, Gtag>::karatsuba), z, z, z); CYBOZU_BENCH("g:sqrPre ", (SqrPreCore<N, Gtag>::f), z, z); - CYBOZU_BENCH("g:sqrKara", (SqrPre<N, Gtag>::karatsuba), z, z); +// CYBOZU_BENCH("g:sqrKara", (SqrPre<N, Gtag>::karatsuba), z, z); #ifdef MCL_USE_LLVM CYBOZU_BENCH("l:mulPre ", (MulPreCore<N, Ltag>::f), z, z, z); - CYBOZU_BENCH("l:mulKara", (MulPre<N, Ltag>::karatsuba), z, z, z); CYBOZU_BENCH("l:sqrPre ", (SqrPreCore<N, Ltag>::f), z, z); + CYBOZU_BENCH("l:mulKara", (MulPre<N, Ltag>::karatsuba), z, z, z); CYBOZU_BENCH("l:sqrKara", (SqrPre<N, Ltag>::karatsuba), z, z); #endif } @@ -58,9 +59,17 @@ CYBOZU_TEST_AUTO(karatsuba) benchKaratsuba<4>(); benchKaratsuba<6>(); benchKaratsuba<8>(); -#if MCL_MAX_BIT_SIZE == 768 +#if MCL_MAX_BIT_SIZE >= 640 benchKaratsuba<10>(); +#endif +#if MCL_MAX_BIT_SIZE >= 768 benchKaratsuba<12>(); #endif +#if MCL_MAX_BIT_SIZE >= 896 + benchKaratsuba<14>(); +#endif +#if MCL_MAX_BIT_SIZE >= 1024 + benchKaratsuba<16>(); +#endif } |