#[repr(transparent)]pub struct Limb(pub Word);Expand description
Tuple Fields§
§0: WordImplementations§
Source§impl Limb
impl Limb
Sourceconst fn bounded_div2k_mod_q(
self,
k: u32,
k_upper_bound: u32,
one_half_mod_q: Self,
) -> (Self, Self)
const fn bounded_div2k_mod_q( self, k: u32, k_upper_bound: u32, one_half_mod_q: Self, ) -> (Self, Self)
Compute self / 2^t mod q, returning the result, as well as the minimal factor f such
that 2^t divides self + q·f.
Here, q := 2·one_half_mod_q + 1 is assumed odd and t := min(k, k_upper_bound).
Executes in variable time w.r.t. k_upper_bound only; executes in constant time w.r.t k.
Source§impl Limb
impl Limb
Sourcepub const fn adc(self, rhs: Limb, carry: Limb) -> (Limb, Limb)
👎Deprecated since 0.7.0: please use carrying_add instead
pub const fn adc(self, rhs: Limb, carry: Limb) -> (Limb, Limb)
carrying_add insteadComputes self + rhs + carry, returning the result along with the new carry.
Sourcepub const fn carrying_add(self, rhs: Limb, carry: Limb) -> (Limb, Limb)
pub const fn carrying_add(self, rhs: Limb, carry: Limb) -> (Limb, Limb)
Computes self + rhs + carry, returning the result along with the new carry.
Sourcepub const fn overflowing_add(self, rhs: Limb) -> (Limb, Limb)
pub const fn overflowing_add(self, rhs: Limb) -> (Limb, Limb)
Computes self + rhs, returning the result along with the carry.
Sourcepub const fn saturating_add(&self, rhs: Self) -> Self
pub const fn saturating_add(&self, rhs: Self) -> Self
Perform saturating addition.
Sourcepub const fn wrapping_add(&self, rhs: Self) -> Self
pub const fn wrapping_add(&self, rhs: Self) -> Self
Perform wrapping addition, discarding overflow.
Source§impl Limb
impl Limb
Sourcepub const fn bit(self, index: u32) -> Choice
pub const fn bit(self, index: u32) -> Choice
Get the value of the bit at position index, as a truthy or falsy Choice.
Returns the falsy value for indices out of range.
Sourcepub const fn bit_vartime(self, index: u32) -> bool
pub const fn bit_vartime(self, index: u32) -> bool
Returns true if the bit at position index is set, false for an unset bit
or for indices out of range.
§Remarks
This operation is variable time with respect to index only.
Sourcefn set_bit(self, index: u32, bit_value: Choice) -> Self
fn set_bit(self, index: u32, bit_value: Choice) -> Self
Sets the bit at index to 0 or 1 depending on the value of bit_value.
Sourcefn set_bit_vartime(self, index: u32, bit_value: bool) -> Self
fn set_bit_vartime(self, index: u32, bit_value: bool) -> Self
Sets the bit at index to 0 or 1 depending on the value of bit_value, in variable-time
with respect to index.
Sourcepub const fn leading_zeros(self) -> u32
pub const fn leading_zeros(self) -> u32
Calculate the number of leading zeros in the binary representation of this number.
Sourcepub const fn trailing_zeros(self) -> u32
pub const fn trailing_zeros(self) -> u32
Calculate the number of trailing zeros in the binary representation of this number.
Sourcepub const fn trailing_ones(self) -> u32
pub const fn trailing_ones(self) -> u32
Calculate the number of trailing ones the binary representation of this number.
Sourcepub const fn restrict_bits(self, len: u32) -> Self
pub const fn restrict_bits(self, len: u32) -> Self
Clear bits at or above the given bit position.
Source§impl Limb
impl Limb
Sourcepub fn cmp_vartime(self, other: Self) -> Ordering
pub fn cmp_vartime(self, other: Self) -> Ordering
Perform a comparison of the inner value in variable-time.
Note that the PartialOrd and Ord impls wrap constant-time
comparisons using the subtle crate.
Sourcepub const fn eq_vartime(self, other: Self) -> bool
pub const fn eq_vartime(self, other: Self) -> bool
Performs an equality check in variable-time.
Sourcepub(crate) const fn is_nonzero(self) -> Choice
pub(crate) const fn is_nonzero(self) -> Choice
Returns the truthy value if self != 0 and the falsy value otherwise.
Source§impl Limb
impl Limb
Sourcepub const fn div_rem(self, rhs: NonZero<Self>) -> (Limb, Limb)
pub const fn div_rem(self, rhs: NonZero<Self>) -> (Limb, Limb)
Computes self / rhs, returning the quotient and remainder.
Sourcepub const fn div_rem_with_reciprocal(self, recip: &Reciprocal) -> (Limb, Limb)
pub const fn div_rem_with_reciprocal(self, recip: &Reciprocal) -> (Limb, Limb)
Computes self / rhs where recip is a Reciprocal created from a non-zero Limb rhs.
Returns the quotient and remainder.
Sourcepub const fn checked_div(self, rhs: Self) -> CtOption<Limb>
pub const fn checked_div(self, rhs: Self) -> CtOption<Limb>
Computes the checked division self / rhs, returning the quotient
if the divisor is non-zero, and CtOption::none() otherwise.
Sourcepub const fn checked_rem(self, rhs: Self) -> CtOption<Limb>
pub const fn checked_rem(self, rhs: Self) -> CtOption<Limb>
Computes the checked division self / rhs, returning the remainder
if the divisor is non-zero, and CtOption::none() otherwise.
Sourcepub const fn div_exact(&self, rhs: NonZero<Limb>) -> CtOption<Self>
pub const fn div_exact(&self, rhs: NonZero<Limb>) -> CtOption<Self>
Exactly divides self by rhs, returning CtOption::none() if self is not divisible by rhs.
Sourcepub const fn div_exact_vartime(&self, rhs: NonZero<Limb>) -> CtOption<Self>
pub const fn div_exact_vartime(&self, rhs: NonZero<Limb>) -> CtOption<Self>
Exactly divides self by rhs, returning CtOption::none() if self is not divisible by rhs.
This is variable-time only with respect to rhs.
When used with a fixed rhs, this function is constant-time with respect to self.
Source§impl Limb
impl Limb
Sourcepub const fn from_be_bytes(bytes: [u8; 8]) -> Self
pub const fn from_be_bytes(bytes: [u8; 8]) -> Self
Decode from big endian bytes.
Sourcepub const fn from_le_bytes(bytes: [u8; 8]) -> Self
pub const fn from_le_bytes(bytes: [u8; 8]) -> Self
Decode from little endian bytes.
Sourcepub const fn from_be_slice(bytes: &[u8]) -> Self
pub const fn from_be_slice(bytes: &[u8]) -> Self
Decode limb from a big endian byte slice, which may be shorter than Limb::BYTES.
§Panics
If the slice larger than Limb::BYTES.
Sourcepub const fn from_le_slice(bytes: &[u8]) -> Self
pub const fn from_le_slice(bytes: &[u8]) -> Self
Decode limb from a little endian byte slice, which may be shorter than Limb::BYTES.
§Panics
If the slice larger than Limb::BYTES.
Sourcepub const fn from_be_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
pub const fn from_be_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
Decode limb from the provided big endian bytes, zero padding if necessary, and
truncating to the least significant bytes in the event the given amount of data exceeds
bits_precision.
§Panics
If bits_precision > Self::BITS.
Sourcepub const fn from_le_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
pub const fn from_le_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
Decode limb from the provided little endian bytes, zero padding if necessary, and
truncating to the least significant bytes in the event the given amount of data exceeds
bits_precision.
§Panics
If bits_precision > Self::BITS.
Sourcepub const fn to_be_bytes(&self) -> [u8; 8]
pub const fn to_be_bytes(&self) -> [u8; 8]
Encode as big endian bytes.
Sourcepub const fn to_le_bytes(&self) -> [u8; 8]
pub const fn to_le_bytes(&self) -> [u8; 8]
Encode as little endian bytes.
Sourcepub(crate) const fn mask_to_precision(&mut self, bits_precision: u32)
pub(crate) const fn mask_to_precision(&mut self, bits_precision: u32)
Mask to the given number of bits precision.
Source§impl Limb
impl Limb
Sourcepub const fn mac(self, b: Limb, c: Limb, carry: Limb) -> (Limb, Limb)
👎Deprecated since 0.7.0: please use carrying_mul_add instead (ordering of arguments changes)
pub const fn mac(self, b: Limb, c: Limb, carry: Limb) -> (Limb, Limb)
carrying_mul_add instead (ordering of arguments changes)Computes self + (b * c) + carry, returning the result along with the new carry.
Sourcepub const fn carrying_mul_add(
self,
rhs: Limb,
addend: Limb,
carry: Limb,
) -> (Limb, Limb)
pub const fn carrying_mul_add( self, rhs: Limb, addend: Limb, carry: Limb, ) -> (Limb, Limb)
Computes (self * rhs) + addend + carry, returning the result along with the new carry.
Sourcepub const fn saturating_mul(self, rhs: Self) -> Self
pub const fn saturating_mul(self, rhs: Self) -> Self
Perform saturating multiplication.
Sourcepub const fn wrapping_mul(self, rhs: Self) -> Self
pub const fn wrapping_mul(self, rhs: Self) -> Self
Perform wrapping multiplication, discarding overflow.
Sourcepub(crate) const fn widening_mul(self, rhs: Self) -> (Self, Self)
pub(crate) const fn widening_mul(self, rhs: Self) -> (Self, Self)
Compute “wide” multiplication, with a product twice the size of the input.
Sourcepub(crate) const fn widening_square(self) -> (Self, Self)
pub(crate) const fn widening_square(self) -> (Self, Self)
Compute “wide” squaring, with a product twice the size of the input.
Source§impl Limb
impl Limb
Sourcepub const fn wrapping_neg(self) -> Self
pub const fn wrapping_neg(self) -> Self
Perform wrapping negation.
Source§impl Limb
impl Limb
Sourcepub const fn overflowing_shl(self, shift: u32) -> CtOption<Self>
pub const fn overflowing_shl(self, shift: u32) -> CtOption<Self>
Computes self << shift, returning CtOption::none() if the shift exceeds the capacity.
Sourcepub const fn overflowing_shl_vartime(self, shift: u32) -> Option<Self>
pub const fn overflowing_shl_vartime(self, shift: u32) -> Option<Self>
Computes self << shift, returning None if the shift exceeds the capacity.
This method is variable time in shift only.
Sourcepub const fn unbounded_shl(self, shift: u32) -> Self
pub const fn unbounded_shl(self, shift: u32) -> Self
Computes self << shift, returning Limb::ZERO if the shift exceeds the capacity.
Sourcepub const fn unbounded_shl_vartime(self, shift: u32) -> Self
pub const fn unbounded_shl_vartime(self, shift: u32) -> Self
Computes self << shift, returning Limb::ZERO if the shift exceeds the capacity.
This method is variable time in shift only.
Sourcepub const fn wrapping_shl(self, shift: u32) -> Self
pub const fn wrapping_shl(self, shift: u32) -> Self
Computes self << shift in a panic-free manner, masking off bits of shift
which would cause the shift to exceed the type’s width.
Source§impl Limb
impl Limb
Sourcepub(crate) const fn shr1(self) -> (Self, Self)
pub(crate) const fn shr1(self) -> (Self, Self)
Computes self >> 1 and return the result and the carry (0 or 1 << HI_BIT).
Sourcepub const fn overflowing_shr(self, shift: u32) -> CtOption<Self>
pub const fn overflowing_shr(self, shift: u32) -> CtOption<Self>
Computes self >> shift, returning CtOption::none() if the shift exceeds the capacity.
Sourcepub const fn overflowing_shr_vartime(self, shift: u32) -> Option<Self>
pub const fn overflowing_shr_vartime(self, shift: u32) -> Option<Self>
Computes self >> shift, returning None if the shift exceeds the capacity.
This method is variable time in shift only.
Sourcepub const fn unbounded_shr(self, shift: u32) -> Self
pub const fn unbounded_shr(self, shift: u32) -> Self
Computes self >> shift, returning Limb::ZERO if the shift exceeds the capacity.
Sourcepub const fn unbounded_shr_vartime(self, shift: u32) -> Self
pub const fn unbounded_shr_vartime(self, shift: u32) -> Self
Computes self >> shift, returning Limb::ZERO if the shift exceeds the capacity.
This method is variable time in shift only.
Sourcepub const fn wrapping_shr(self, shift: u32) -> Self
pub const fn wrapping_shr(self, shift: u32) -> Self
Computes self >> shift in a panic-free manner, masking off bits of shift
which would cause the shift to exceed the type’s width.
Source§impl Limb
impl Limb
Sourcepub const fn sbb(self, rhs: Limb, borrow: Limb) -> (Limb, Limb)
👎Deprecated since 0.7.0: please use borrowing_sub instead
pub const fn sbb(self, rhs: Limb, borrow: Limb) -> (Limb, Limb)
borrowing_sub insteadComputes self - (rhs + borrow), returning the result along with the new borrow.
Sourcepub const fn borrowing_sub(self, rhs: Limb, borrow: Limb) -> (Limb, Limb)
pub const fn borrowing_sub(self, rhs: Limb, borrow: Limb) -> (Limb, Limb)
Computes self - (rhs + borrow), returning the result along with the new borrow.
Sourcepub const fn saturating_sub(&self, rhs: Self) -> Self
pub const fn saturating_sub(&self, rhs: Self) -> Self
Perform saturating subtraction.
Sourcepub const fn wrapping_sub(&self, rhs: Self) -> Self
pub const fn wrapping_sub(&self, rhs: Self) -> Self
Perform wrapping subtraction, discarding underflow and wrapping around the boundary of the type.
Source§impl Limb
impl Limb
Sourcepub const fn is_zero(&self) -> Choice
pub const fn is_zero(&self) -> Choice
Is this limb equal to Limb::ZERO?
Sourcepub const fn to_nz(self) -> CtOption<NonZero<Self>>
pub const fn to_nz(self) -> CtOption<NonZero<Self>>
Convert to a NonZero<Limb>.
Returns some if the original value is non-zero, and none otherwise.
Sourcepub(crate) const fn to_nz_or_one(self) -> (NonZero<Self>, Choice)
pub(crate) const fn to_nz_or_one(self) -> (NonZero<Self>, Choice)
Convert to a NonZero<Limb>, defaulting to Self::ONE.
Returns a pair consisting of a NonZero<Limb>, and a Choice
indicating whether the original value was non-zero (and preserved).
Sourcepub const fn lsb_to_choice(self) -> Choice
pub const fn lsb_to_choice(self) -> Choice
Sourcepub const fn slice_as_words(slice: &[Self]) -> &[Word] ⓘ
pub const fn slice_as_words(slice: &[Self]) -> &[Word] ⓘ
Trait Implementations§
Source§impl AddAssign<&Limb> for Limb
impl AddAssign<&Limb> for Limb
Source§fn add_assign(&mut self, other: &Self)
fn add_assign(&mut self, other: &Self)
+= operation. Read moreSource§impl AddAssign for Limb
impl AddAssign for Limb
Source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
+= operation. Read moreSource§impl BitAndAssign<&Limb> for Limb
impl BitAndAssign<&Limb> for Limb
Source§fn bitand_assign(&mut self, rhs: &Limb)
fn bitand_assign(&mut self, rhs: &Limb)
&= operation. Read moreSource§impl BitAndAssign for Limb
impl BitAndAssign for Limb
Source§fn bitand_assign(&mut self, rhs: Self)
fn bitand_assign(&mut self, rhs: Self)
&= operation. Read moreSource§impl BitOps for Limb
impl BitOps for Limb
Source§fn bit(&self, index: u32) -> Choice
fn bit(&self, index: u32) -> Choice
index, as a truthy or falsy Choice.
Returns the falsy value for indices out of range.Source§fn bit_vartime(&self, index: u32) -> bool
fn bit_vartime(&self, index: u32) -> bool
Source§fn bits_precision(&self) -> u32
fn bits_precision(&self) -> u32
Source§fn bytes_precision(&self) -> usize
fn bytes_precision(&self) -> usize
Source§fn leading_zeros(&self) -> u32
fn leading_zeros(&self) -> u32
Source§fn set_bit(&mut self, index: u32, bit_value: Choice)
fn set_bit(&mut self, index: u32, bit_value: Choice)
index to 0 or 1 depending on the value of bit_value.Source§fn set_bit_vartime(&mut self, index: u32, bit_value: bool)
fn set_bit_vartime(&mut self, index: u32, bit_value: bool)
index to 0 or 1 depending on the value of bit_value,
variable time in self.Source§fn trailing_ones(&self) -> u32
fn trailing_ones(&self) -> u32
Source§fn trailing_zeros(&self) -> u32
fn trailing_zeros(&self) -> u32
Source§fn bits_vartime(&self) -> u32
fn bits_vartime(&self) -> u32
self.Source§fn leading_zeros_vartime(&self) -> u32
fn leading_zeros_vartime(&self) -> u32
Source§fn trailing_zeros_vartime(&self) -> u32
fn trailing_zeros_vartime(&self) -> u32
self.Source§fn trailing_ones_vartime(&self) -> u32
fn trailing_ones_vartime(&self) -> u32
self.Source§impl BitOrAssign<&Limb> for Limb
impl BitOrAssign<&Limb> for Limb
Source§fn bitor_assign(&mut self, other: &Self)
fn bitor_assign(&mut self, other: &Self)
|= operation. Read moreSource§impl BitOrAssign for Limb
impl BitOrAssign for Limb
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
|= operation. Read moreSource§impl BitXorAssign<&Limb> for Limb
impl BitXorAssign<&Limb> for Limb
Source§fn bitxor_assign(&mut self, rhs: &Self)
fn bitxor_assign(&mut self, rhs: &Self)
^= operation. Read moreSource§impl BitXorAssign for Limb
impl BitXorAssign for Limb
Source§fn bitxor_assign(&mut self, rhs: Self)
fn bitxor_assign(&mut self, rhs: Self)
^= operation. Read moreSource§impl CheckedAdd for Limb
impl CheckedAdd for Limb
Source§fn checked_add(&self, rhs: &Self) -> CtOption<Self>
fn checked_add(&self, rhs: &Self) -> CtOption<Self>
CtOption which is_some only if the operation
did not overflow.Source§impl CheckedDiv for Limb
impl CheckedDiv for Limb
Source§fn checked_div(&self, rhs: &Self) -> CtOption<Self>
fn checked_div(&self, rhs: &Self) -> CtOption<Self>
CtOption which is_some only if the divisor is
non-zero.Source§impl CheckedMul for Limb
impl CheckedMul for Limb
Source§fn checked_mul(&self, rhs: &Self) -> CtOption<Self>
fn checked_mul(&self, rhs: &Self) -> CtOption<Self>
CtOption which is_some
only if the operation did not overflow.Source§impl CheckedSquareRoot for Limb
impl CheckedSquareRoot for Limb
Source§impl CheckedSub for Limb
impl CheckedSub for Limb
Source§fn checked_sub(&self, rhs: &Self) -> CtOption<Self>
fn checked_sub(&self, rhs: &Self) -> CtOption<Self>
CtOption which is_some
only if the operation did not underflow.Source§impl ConditionallySelectable for Limb
Available on crate feature subtle only.
impl ConditionallySelectable for Limb
subtle only.Source§fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self
fn conditional_select(a: &Self, b: &Self, choice: Choice) -> Self
Source§fn conditional_assign(&mut self, other: &Self, choice: Choice)
fn conditional_assign(&mut self, other: &Self, choice: Choice)
Source§fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
fn conditional_swap(a: &mut Self, b: &mut Self, choice: Choice)
self and other if choice == 1; otherwise,
reassign both unto themselves. Read moreSource§impl ConstantTimeEq for Limb
Available on crate feature subtle only.
impl ConstantTimeEq for Limb
subtle only.Source§impl ConstantTimeGreater for Limb
Available on crate feature subtle only.
impl ConstantTimeGreater for Limb
subtle only.Source§impl ConstantTimeLess for Limb
Available on crate feature subtle only.
impl ConstantTimeLess for Limb
subtle only.Source§impl CtAssignSlice for Limb
impl CtAssignSlice for Limb
Source§fn ct_assign_slice(dst: &mut [Self], src: &[Self], choice: Choice)
fn ct_assign_slice(dst: &mut [Self], src: &[Self], choice: Choice)
Source§impl CtEqSlice for Limb
impl CtEqSlice for Limb
Source§fn ct_eq_slice(a: &[Self], b: &[Self]) -> Choice
fn ct_eq_slice(a: &[Self], b: &[Self]) -> Choice
a is equal to b in constant-time.Source§fn ct_ne_slice(a: &[Self], b: &[Self]) -> Choice
fn ct_ne_slice(a: &[Self], b: &[Self]) -> Choice
a is NOT equal to b in constant-time.Source§impl DivAssign<&Limb> for Limb
impl DivAssign<&Limb> for Limb
Source§fn div_assign(&mut self, rhs: &Limb)
fn div_assign(&mut self, rhs: &Limb)
/= operation. Read moreSource§impl DivAssign for Limb
impl DivAssign for Limb
Source§fn div_assign(&mut self, rhs: Limb)
fn div_assign(&mut self, rhs: Limb)
/= operation. Read moreSource§impl DivRemLimb for Limb
impl DivRemLimb for Limb
Source§fn div_rem_limb(&self, rhs: NonZero<Limb>) -> (Self, Limb)
fn div_rem_limb(&self, rhs: NonZero<Limb>) -> (Self, Limb)
self / rhs using a pre-made reciprocal,
returns the quotient (q) and remainder (r).Source§fn div_rem_limb_with_reciprocal(&self, rhs: &Reciprocal) -> (Self, Limb)
fn div_rem_limb_with_reciprocal(&self, rhs: &Reciprocal) -> (Self, Limb)
self / rhs, returns the quotient (q) and remainder (r).Source§impl Encoding for Limb
impl Encoding for Limb
Source§fn from_be_bytes(bytes: Self::Repr) -> Self
fn from_be_bytes(bytes: Self::Repr) -> Self
Source§fn from_le_bytes(bytes: Self::Repr) -> Self
fn from_le_bytes(bytes: Self::Repr) -> Self
Source§fn from_be_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
fn from_be_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
bits_precision. Read moreSource§fn from_le_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
fn from_le_slice_truncated(bytes: &[u8], bits_precision: u32) -> Self
bits_precision. Read moreSource§fn to_be_bytes(&self) -> Self::Repr
fn to_be_bytes(&self) -> Self::Repr
Source§fn to_le_bytes(&self) -> Self::Repr
fn to_le_bytes(&self) -> Self::Repr
Source§fn from_bytes(bytes: Self::Repr, byte_order: ByteOrder) -> Self
fn from_bytes(bytes: Self::Repr, byte_order: ByteOrder) -> Self
ByteOrder.Source§impl FloorSquareRoot for Limb
impl FloorSquareRoot for Limb
Source§fn floor_sqrt(&self) -> Self::Output
fn floor_sqrt(&self) -> Self::Output
floor(sqrt(self)).Source§fn floor_sqrt_vartime(&self) -> Self::Output
fn floor_sqrt_vartime(&self) -> Self::Output
floor(sqrt(self)). Read moreSource§impl Integer for Limb
impl Integer for Limb
Source§fn as_mut_limbs(&mut self) -> &mut [Limb]
fn as_mut_limbs(&mut self) -> &mut [Limb]
Source§impl MulAssign<&Limb> for Limb
impl MulAssign<&Limb> for Limb
Source§fn mul_assign(&mut self, other: &Self)
fn mul_assign(&mut self, other: &Self)
*= operation. Read moreSource§impl MulAssign for Limb
impl MulAssign for Limb
Source§fn mul_assign(&mut self, other: Self)
fn mul_assign(&mut self, other: Self)
*= operation. Read moreSource§impl Ord for Limb
impl Ord for Limb
Source§impl PartialOrd for Limb
impl PartialOrd for Limb
Source§impl Random for Limb
impl Random for Limb
Source§impl RandomMod for Limb
impl RandomMod for Limb
Source§fn try_random_mod_vartime<R: TryRng + ?Sized>(
rng: &mut R,
modulus: &NonZero<Self>,
) -> Result<Self, R::Error>
fn try_random_mod_vartime<R: TryRng + ?Sized>( rng: &mut R, modulus: &NonZero<Self>, ) -> Result<Self, R::Error>
modulus. Read moreSource§fn random_mod_vartime<R: Rng + ?Sized>(
rng: &mut R,
modulus: &NonZero<Self>,
) -> Self
fn random_mod_vartime<R: Rng + ?Sized>( rng: &mut R, modulus: &NonZero<Self>, ) -> Self
modulus. Read moreSource§impl RemAssign<&Limb> for Limb
impl RemAssign<&Limb> for Limb
Source§fn rem_assign(&mut self, rhs: &Limb)
fn rem_assign(&mut self, rhs: &Limb)
%= operation. Read moreSource§impl RemAssign for Limb
impl RemAssign for Limb
Source§fn rem_assign(&mut self, rhs: Limb)
fn rem_assign(&mut self, rhs: Limb)
%= operation. Read moreSource§impl ShlAssign<i32> for Limb
impl ShlAssign<i32> for Limb
Source§fn shl_assign(&mut self, shift: i32)
fn shl_assign(&mut self, shift: i32)
<<= operation. Read moreSource§impl ShlAssign<u32> for Limb
impl ShlAssign<u32> for Limb
Source§fn shl_assign(&mut self, shift: u32)
fn shl_assign(&mut self, shift: u32)
<<= operation. Read moreSource§impl ShlAssign<usize> for Limb
impl ShlAssign<usize> for Limb
Source§fn shl_assign(&mut self, shift: usize)
fn shl_assign(&mut self, shift: usize)
<<= operation. Read moreSource§impl ShlVartime for Limb
impl ShlVartime for Limb
Source§fn overflowing_shl_vartime(&self, shift: u32) -> Option<Self>
fn overflowing_shl_vartime(&self, shift: u32) -> Option<Self>
self << shift. Read moreSource§fn unbounded_shl_vartime(&self, shift: u32) -> Self
fn unbounded_shl_vartime(&self, shift: u32) -> Self
self << shift. Read moreSource§fn wrapping_shl_vartime(&self, shift: u32) -> Self
fn wrapping_shl_vartime(&self, shift: u32) -> Self
self << shift in a panic-free manner, masking off bits of shift
which would cause the shift to exceed the type’s width.Source§impl ShrAssign<i32> for Limb
impl ShrAssign<i32> for Limb
Source§fn shr_assign(&mut self, shift: i32)
fn shr_assign(&mut self, shift: i32)
>>= operation. Read moreSource§impl ShrAssign<u32> for Limb
impl ShrAssign<u32> for Limb
Source§fn shr_assign(&mut self, shift: u32)
fn shr_assign(&mut self, shift: u32)
>>= operation. Read moreSource§impl ShrAssign<usize> for Limb
impl ShrAssign<usize> for Limb
Source§fn shr_assign(&mut self, shift: usize)
fn shr_assign(&mut self, shift: usize)
>>= operation. Read moreSource§impl ShrVartime for Limb
impl ShrVartime for Limb
Source§fn overflowing_shr_vartime(&self, shift: u32) -> Option<Self>
fn overflowing_shr_vartime(&self, shift: u32) -> Option<Self>
self >> shift. Read moreSource§fn unbounded_shr_vartime(&self, shift: u32) -> Self
fn unbounded_shr_vartime(&self, shift: u32) -> Self
self >> shift. Read moreSource§fn wrapping_shr_vartime(&self, shift: u32) -> Self
fn wrapping_shr_vartime(&self, shift: u32) -> Self
self >> shift in a panic-free manner, masking off bits of shift
which would cause the shift to exceed the type’s width.Source§impl SubAssign<&Limb> for Limb
impl SubAssign<&Limb> for Limb
Source§fn sub_assign(&mut self, rhs: &Self)
fn sub_assign(&mut self, rhs: &Self)
-= operation. Read moreSource§impl SubAssign for Limb
impl SubAssign for Limb
Source§fn sub_assign(&mut self, rhs: Self)
fn sub_assign(&mut self, rhs: Self)
-= operation. Read moreSource§impl Unsigned for Limb
impl Unsigned for Limb
Source§fn as_uint_ref(&self) -> &UintRef
fn as_uint_ref(&self) -> &UintRef
UintRef.Source§fn as_mut_uint_ref(&mut self) -> &mut UintRef
fn as_mut_uint_ref(&mut self) -> &mut UintRef
UintRef.Source§fn from_limb_like(limb: Limb, _other: &Self) -> Self
fn from_limb_like(limb: Limb, _other: &Self) -> Self
limb, and the same precision as other.Source§impl WrappingAdd for Limb
impl WrappingAdd for Limb
Source§fn wrapping_add(&self, v: &Self) -> Self
fn wrapping_add(&self, v: &Self) -> Self
self + other, wrapping around at the boundary of
the type.Source§impl WrappingMul for Limb
impl WrappingMul for Limb
Source§fn wrapping_mul(&self, v: &Self) -> Self
fn wrapping_mul(&self, v: &Self) -> Self
self * other, wrapping around at the boundary
of the type.Source§impl WrappingNeg for Limb
impl WrappingNeg for Limb
Source§fn wrapping_neg(&self) -> Self
fn wrapping_neg(&self) -> Self
-self,
wrapping around at the boundary of the type. Read moreSource§impl WrappingShl for Limb
impl WrappingShl for Limb
Source§impl WrappingShr for Limb
impl WrappingShr for Limb
Source§impl WrappingSub for Limb
impl WrappingSub for Limb
Source§fn wrapping_sub(&self, v: &Self) -> Self
fn wrapping_sub(&self, v: &Self) -> Self
self - other, wrapping around at the boundary
of the type.impl Copy for Limb
impl DefaultIsZeroes for Limb
zeroize only.