Major updates integration from all upstreams
This commit is contained in:
@@ -18,7 +18,7 @@
|
||||
namespace libsnark {
|
||||
|
||||
template<mp_size_t n>
|
||||
bigint<n>::bigint(const uint64_t x) /// Initalize from a small integer
|
||||
bigint<n>::bigint(const uint64_t x) /// Initialize from a small integer
|
||||
{
|
||||
static_assert(UINT64_MAX <= GMP_NUMB_MAX, "uint64_t does not fit in a GMP limb");
|
||||
this->data[0] = x;
|
||||
@@ -125,6 +125,7 @@ size_t bigint<n>::num_bits() const
|
||||
}
|
||||
else
|
||||
{
|
||||
static_assert(GMP_NUMB_MAX <= ULLONG_MAX, "coercing limb to unsigned long long might truncate");
|
||||
return ((i+1) * GMP_NUMB_BITS) - __builtin_clzll(x);
|
||||
}
|
||||
}
|
||||
@@ -132,7 +133,7 @@ size_t bigint<n>::num_bits() const
|
||||
}
|
||||
|
||||
template<mp_size_t n>
|
||||
uint64_t bigint<n>::as_ulong() const
|
||||
uint64_t bigint<n>::as_uint64() const
|
||||
{
|
||||
return this->data[0];
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user