aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMITSUNARI Shigeo <herumi@nifty.com>2015-06-08 11:02:24 +0800
committerMITSUNARI Shigeo <herumi@nifty.com>2015-06-08 11:02:24 +0800
commit151d9bd5a1864c7fdd307acc31ca1e535b3760df (patch)
tree1274ad450332148e3953e032b37876d3aaa89fde
parent8a1a9656a29c7cc1e30e9db023071f8aac0ce901 (diff)
downloaddexon-mcl-151d9bd5a1864c7fdd307acc31ca1e535b3760df.tar.gz
dexon-mcl-151d9bd5a1864c7fdd307acc31ca1e535b3760df.tar.zst
dexon-mcl-151d9bd5a1864c7fdd307acc31ca1e535b3760df.zip
use bsr
-rw-r--r--include/mcl/conversion.hpp2
-rw-r--r--include/mcl/fp.hpp7
-rw-r--r--include/mcl/op.hpp1
-rw-r--r--include/mcl/util.hpp2
4 files changed, 8 insertions, 4 deletions
diff --git a/include/mcl/conversion.hpp b/include/mcl/conversion.hpp
index 6fbd394..2383efd 100644
--- a/include/mcl/conversion.hpp
+++ b/include/mcl/conversion.hpp
@@ -5,7 +5,7 @@
#include <mcl/util.hpp>
/**
@file
- @brief utility of Fp
+ @brief convertion from T[] to str2, str16
@author MITSUNARI Shigeo(@herumi)
@license modified new BSD license
http://opensource.org/licenses/BSD-3-Clause
diff --git a/include/mcl/fp.hpp b/include/mcl/fp.hpp
index 43e8a1b..eccef53 100644
--- a/include/mcl/fp.hpp
+++ b/include/mcl/fp.hpp
@@ -20,6 +20,7 @@
// #define USE_MONT_FP
#endif
#include <cybozu/hash.hpp>
+#include <cybozu/bit_operation.hpp>
#include <mcl/op.hpp>
#include <mcl/util.hpp>
#include <mcl/power.hpp>
@@ -240,11 +241,15 @@ public:
FpT t(x);
for (size_t i = 0; i < yn; i++) {
const Unit v = y[i];
- int m = (int)sizeof(Unit) * 8;
+ int m = (int)fp::UnitBitN;
if (i == yn - 1) {
+#if 1
+ m = v ? cybozu::bsr<Unit>(v) + 1 : 0;
+#else
while (m > 0 && (v & (Unit(1) << (m - 1))) == 0) {
m--;
}
+#endif
}
for (int j = 0; j < m; j++) {
if (v & (Unit(1) << j)) {
diff --git a/include/mcl/op.hpp b/include/mcl/op.hpp
index e1b92a3..61fd548 100644
--- a/include/mcl/op.hpp
+++ b/include/mcl/op.hpp
@@ -6,7 +6,6 @@
@license modified new BSD license
http://opensource.org/licenses/BSD-3-Clause
*/
-#include <assert.h>
#include <mcl/gmp_util.hpp>
#ifndef MCL_MAX_OP_BIT_N
diff --git a/include/mcl/util.hpp b/include/mcl/util.hpp
index 4acb6d1..cd21ae4 100644
--- a/include/mcl/util.hpp
+++ b/include/mcl/util.hpp
@@ -1,7 +1,7 @@
#pragma once
/**
@file
- @brief definition of Unit and some functions
+ @brief functions for T[]
@author MITSUNARI Shigeo(@herumi)
@license modified new BSD license
http://opensource.org/licenses/BSD-3-Clause