diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2019-03-07 10:53:29 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2019-03-07 10:53:29 +0800 |
commit | 27a7a0140ee82bb8dd2d515f9499387dd4a5ecf2 (patch) | |
tree | e6e856b70499421d7ab7bd8d318685be7701c9bb | |
parent | ec765198b9e69a799ab923c17617ac41a05ff43f (diff) | |
download | tangerine-mcl-27a7a0140ee82bb8dd2d515f9499387dd4a5ecf2.tar.gz tangerine-mcl-27a7a0140ee82bb8dd2d515f9499387dd4a5ecf2.tar.zst tangerine-mcl-27a7a0140ee82bb8dd2d515f9499387dd4a5ecf2.zip |
change IF of Modp::init
-rw-r--r-- | include/mcl/gmp_util.hpp | 5 | ||||
-rw-r--r-- | test/fp_test.cpp | 2 |
2 files changed, 4 insertions, 3 deletions
diff --git a/include/mcl/gmp_util.hpp b/include/mcl/gmp_util.hpp index 81e69e2..a8631a2 100644 --- a/include/mcl/gmp_util.hpp +++ b/include/mcl/gmp_util.hpp @@ -877,10 +877,11 @@ struct Modp { mcl::gmp::setArray(&b, x, mcl::gmp::getUnit(x), unitSize); assert(b); } - void init(const mpz_class& p, size_t unitSize) + void init(const mpz_class& p) { p_ = p; - N_ = unitSize; + size_t bitSize = mcl::gmp::getBitSize(p); + N_ = (bitSize + unitBitSize - 1) / unitBitSize; u_ = (mpz_class(1) << (unitBitSize * 2 * N_)) / p_; a_ = mpz_class(1) << (unitBitSize * (N_ + 1)); } diff --git a/test/fp_test.cpp b/test/fp_test.cpp index b7b1e23..26f97b1 100644 --- a/test/fp_test.cpp +++ b/test/fp_test.cpp @@ -798,7 +798,7 @@ void modpTest() (mpz_class(1) << Fp::getOp().N * mcl::fp::UnitBitSize * 2) - 1, }; mcl::Modp modp; - modp.init(p, Fp::getUnitSize()); + modp.init(p); for (size_t i = 0; i < CYBOZU_NUM_OF_ARRAY(tbl); i++) { const mpz_class& x = tbl[i]; mpz_class r1, r2; |