aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2019-03-07 10:53:29 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2019-03-07 10:53:29 +0800
commit27a7a0140ee82bb8dd2d515f9499387dd4a5ecf2 (patch)
treee6e856b70499421d7ab7bd8d318685be7701c9bb
parentec765198b9e69a799ab923c17617ac41a05ff43f (diff)
downloadtangerine-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.hpp5
-rw-r--r--test/fp_test.cpp2
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;