aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2018-11-13 14:11:57 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2018-11-13 14:11:57 +0800
commit69de6a8d7b11cb0184b1379c4d7e08dcb0331752 (patch)
tree03d9623c81638fe420e1866720c68acd49010b37
parentad282ed284a34529694b0a9cb24535e56a673a40 (diff)
downloadtangerine-mcl-69de6a8d7b11cb0184b1379c4d7e08dcb0331752.tar.gz
tangerine-mcl-69de6a8d7b11cb0184b1379c4d7e08dcb0331752.tar.zst
tangerine-mcl-69de6a8d7b11cb0184b1379c4d7e08dcb0331752.zip
fix new Fp2::init()
-rw-r--r--include/mcl/fp.hpp18
-rw-r--r--src/fp_generator.hpp2
-rw-r--r--test/fp_tower_test.cpp6
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);