diff options
author | MITSUNARI Shigeo <herumi@nifty.com> | 2018-11-13 14:11:57 +0800 |
---|---|---|
committer | MITSUNARI Shigeo <herumi@nifty.com> | 2018-11-13 14:11:57 +0800 |
commit | 69de6a8d7b11cb0184b1379c4d7e08dcb0331752 (patch) | |
tree | 03d9623c81638fe420e1866720c68acd49010b37 | |
parent | ad282ed284a34529694b0a9cb24535e56a673a40 (diff) | |
download | tangerine-mcl-69de6a8d7b11cb0184b1379c4d7e08dcb0331752.tar.gz tangerine-mcl-69de6a8d7b11cb0184b1379c4d7e08dcb0331752.tar.zst tangerine-mcl-69de6a8d7b11cb0184b1379c4d7e08dcb0331752.zip |
fix new Fp2::init()
-rw-r--r-- | include/mcl/fp.hpp | 18 | ||||
-rw-r--r-- | src/fp_generator.hpp | 2 | ||||
-rw-r--r-- | test/fp_tower_test.cpp | 6 |
3 files changed, 17 insertions, 9 deletions
diff --git a/include/mcl/fp.hpp b/include/mcl/fp.hpp index a0a7e85..eb70d50 100644 --- a/include/mcl/fp.hpp +++ b/include/mcl/fp.hpp @@ -547,17 +547,25 @@ public: } #endif #ifndef CYBOZU_DONT_USE_EXCEPTION - static inline void init(const mpz_class& _p, fp::Mode mode = fp::FP_AUTO) + static inline void init(int xi_a, const mpz_class& p, fp::Mode mode = fp::FP_AUTO) { bool b; - init(&b, _p, mode); + init(&b, xi_a, p, mode); if (!b) throw cybozu::Exception("Fp:init"); } + static inline void init(int xi_a, const std::string& mstr, fp::Mode mode = fp::FP_AUTO) + { + mpz_class p; + gmp::setStr(p, mstr); + init(xi_a, p, mode); + } + static inline void init(const mpz_class& p, fp::Mode mode = fp::FP_AUTO) + { + init(0, p, mode); + } static inline void init(const std::string& mstr, fp::Mode mode = fp::FP_AUTO) { - bool b; - init(&b, mstr.c_str(), mode); - if (!b) throw cybozu::Exception("Fp:init"); + init(0, mstr, mode); } template<class OutputStream> void save(OutputStream& os, int ioMode = IoSerialize) const diff --git a/src/fp_generator.hpp b/src/fp_generator.hpp index dfb73d6..df70ac7 100644 --- a/src/fp_generator.hpp +++ b/src/fp_generator.hpp @@ -246,7 +246,7 @@ struct FpGenerator : Xbyak::CodeGenerator { reset(); // reset jit code for reuse setProtectModeRW(); // read/write memory init_inner(op); - printf("code size=%d\n", (int)getSize()); +// printf("code size=%d\n", (int)getSize()); setProtectModeRE(); // set read/exec memory } private: diff --git a/test/fp_tower_test.cpp b/test/fp_tower_test.cpp index dc50a84..a7123f7 100644 --- a/test/fp_tower_test.cpp +++ b/test/fp_tower_test.cpp @@ -386,10 +386,10 @@ void benchFp2() void test(const char *p, mcl::fp::Mode mode) { - Fp::init(p, mode); - printf("mode=%s\n", mcl::fp::ModeToStr(mode)); const int xi_a = 1; - Fp2::init(xi_a); + Fp::init(xi_a, p, mode); + printf("mode=%s\n", mcl::fp::ModeToStr(mode)); + Fp2::init(); #if 0 if (Fp::getBitSize() > 256) { printf("not support p=%s\n", p); |