Trait snarkvm_utilities::biginteger::BigInteger
source · pub trait BigInteger: ToBits + FromBits + ToBytes + FromBytes + Copy + Clone + Debug + Default + Display + Eq + Ord + Send + Sized + Sync + 'static + Uniform + AsMut<[u64]> + AsRef<[u64]> + From<u64> {
const NUM_LIMBS: usize;
Show 13 methods
// Required methods
fn add_nocarry(&mut self, other: &Self) -> bool;
fn sub_noborrow(&mut self, other: &Self) -> bool;
fn mul2(&mut self);
fn muln(&mut self, amt: u32);
fn div2(&mut self);
fn divn(&mut self, amt: u32);
fn is_odd(&self) -> bool;
fn is_even(&self) -> bool;
fn is_zero(&self) -> bool;
fn num_bits(&self) -> u32;
fn get_bit(&self, i: usize) -> bool;
fn to_biguint(&self) -> BigUint;
fn find_wnaf(&self) -> Vec<i64>;
}
Expand description
This defines a BigInteger
, a smart wrapper around a
sequence of u64
limbs, least-significant digit first.
Required Associated Constants§
Required Methods§
sourcefn add_nocarry(&mut self, other: &Self) -> bool
fn add_nocarry(&mut self, other: &Self) -> bool
Add another representation to this one, returning the carry bit.
sourcefn sub_noborrow(&mut self, other: &Self) -> bool
fn sub_noborrow(&mut self, other: &Self) -> bool
Subtract another representation from this one, returning the borrow bit.
sourcefn mul2(&mut self)
fn mul2(&mut self)
Performs a leftwise bitshift of this number, effectively multiplying it by 2. Overflow is ignored.
sourcefn num_bits(&self) -> u32
fn num_bits(&self) -> u32
Compute the number of bits needed to encode this number. Always a multiple of 64.
sourcefn to_biguint(&self) -> BigUint
fn to_biguint(&self) -> BigUint
Returns the BigUint representation.
Object Safety§
This trait is not object safe.