pub struct HeaplessBigInt<T, const CAP: usize, P: Personality = Nct>where
T: MachineWord,{ /* private fields */ }Expand description
A len-word unsigned integer whose width is chosen at runtime.
Behaves bit-for-bit like FixedUInt<T, len>: every op
resolves at the value’s width (len·word_bits), never a growable bignum.
CAP is the maximum limb count (compile-time storage ceiling); len is the
logical used-limb count (runtime) and the operating width — the words in
[len, CAP) do not exist for arithmetic. Invariants (enforced by the
module):
CAP <= u16::MAX as usize(compile-time-asserted).(len as usize) <= CAP.limbs[len as usize..CAP]is all zero at every observable state.lenis set only from public shape parameters, never from limb content.
Implementations§
Source§impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
Sourcepub fn wrapping_add(&self, other: &Self) -> Self
pub fn wrapping_add(&self, other: &Self) -> Self
Wrapping addition at the operands’ width max(a.len, b.len); a
carry out of that width is discarded.
Sourcepub fn overflowing_add(&self, other: &Self) -> (Self, bool)
pub fn overflowing_add(&self, other: &Self) -> (Self, bool)
Overflowing addition, at the operands’ width max(a.len, b.len).
Returns (sum mod 2^(width·word_bits), carry_out) — the carry is
the bit beyond the width, reported as a flag, exactly as
FixedUInt<T, width>::overflowing_add does. Symmetric to
overflowing_sub. Does not grow a limb.
Sourcepub fn checked_add(&self, other: &Self) -> Option<Self>
pub fn checked_add(&self, other: &Self) -> Option<Self>
Checked addition. None on overflow at the operands’ width.
Sourcepub fn wrapping_sub(&self, other: &Self) -> Self
pub fn wrapping_sub(&self, other: &Self) -> Self
Wrapping subtraction at the operands’ width max(a.len, b.len);
underflow wraps modulo 2^(max_len·WORD_BITS), so a value carried
at a narrower width wraps at that narrower width (like u8 vs u32).
Sourcepub fn overflowing_sub(&self, other: &Self) -> (Self, bool)
pub fn overflowing_sub(&self, other: &Self) -> (Self, bool)
Overflowing subtraction. Returns (wrapped_result, borrow_out).
Same width choice as wrapping_sub;
borrow_out is the underflow flag (self < other).
Sourcepub fn checked_sub(&self, other: &Self) -> Option<Self>
pub fn checked_sub(&self, other: &Self) -> Option<Self>
Checked subtraction. None on underflow.
Source§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
Sourcepub fn wrapping_mul(&self, other: &Self) -> Self
pub fn wrapping_mul(&self, other: &Self) -> Self
Wrapping multiplication at the operands’ width max(a.len, b.len):
keeps the low width words (a·b mod 2^(width·word_bits)),
exactly like FixedUInt<T, width>::wrapping_mul. [WideMul] returns
both halves.
Sourcepub fn overflowing_mul(&self, other: &Self) -> (Self, bool)
pub fn overflowing_mul(&self, other: &Self) -> (Self, bool)
Overflowing multiplication, at the operands’ width
w = max(a.len, b.len). Returns (a·b mod 2^(w·word_bits), overflow), where overflow is set iff the product does not fit
in w words — bit-identical to FixedUInt<T, w>::overflowing_mul.
The split is at the value width (via the widening CarryingMul), so
the high half is the part beyond w; CAP is irrelevant.
Sourcepub fn checked_mul(&self, other: &Self) -> Option<Self>
pub fn checked_mul(&self, other: &Self) -> Option<Self>
Checked multiplication. None when the product does not fit in the
operands’ width max(a.len, b.len) — exactly when
FixedUInt<T, width>::checked_mul would return None.
Source§impl<T: MachineWord, const CAP: usize> HeaplessBigInt<T, CAP, Nct>
impl<T: MachineWord, const CAP: usize> HeaplessBigInt<T, CAP, Nct>
Sourcepub fn trim(self) -> Self
pub fn trim(self) -> Self
Trim len down to the highest non-zero limb + 1 (0 for zero).
NCT-implicit — inspects limb content, so Nct-only.
Sourcepub fn saturating_add(&self, other: &Self) -> Self
pub fn saturating_add(&self, other: &Self) -> Self
Saturating addition: on overflow, the all-ones value at the operands’
width max(a.len, b.len) (not the CAP-wide max), matching
FixedUInt<T, width>::saturating_add. This inherent form branches on
the overflow flag; the Ct carrier’s branchless SaturatingAdd impl
(via ct_select) is defined separately.
Sourcepub fn saturating_sub(&self, other: &Self) -> Self
pub fn saturating_sub(&self, other: &Self) -> Self
Saturating subtraction: clamps to zero at the operands’ width on
underflow. Nct-only, same reason as saturating_add.
Source§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize> HeaplessBigInt<T, CAP, Nct>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize> HeaplessBigInt<T, CAP, Nct>
Sourcepub fn saturating_mul(&self, other: &Self) -> Self
pub fn saturating_mul(&self, other: &Self) -> Self
Saturating multiplication: on overflow, the all-ones value at the
operands’ width max(a.len, b.len). Nct-only, same reason as
saturating_add.
Source§impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
Sourcepub fn bit_length(&self) -> usize
pub fn bit_length(&self) -> usize
Number of bits needed to represent the value: 0 for zero,
otherwise the position of the highest set bit plus one.
Sourcepub fn leading_zeros(&self) -> usize
pub fn leading_zeros(&self) -> usize
Leading zeros against the value’s width (len * word_bits), so
leading_zeros + bit_length == bits_precision(). A len = 0
value has width 0, hence leading_zeros() == 0.
Source§impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
Sourcepub fn to_be_bytes<'a>(&self, out: &'a mut [u8]) -> &'a [u8]
pub fn to_be_bytes<'a>(&self, out: &'a mut [u8]) -> &'a [u8]
Serialize into out as big-endian bytes. Writes self.len * size_of::<T>() bytes into out[..byte_count] and returns that
slice. Panics if out.len() < byte_count.
Sourcepub fn to_le_bytes<'a>(&self, out: &'a mut [u8]) -> &'a [u8]
pub fn to_le_bytes<'a>(&self, out: &'a mut [u8]) -> &'a [u8]
Serialize into out as little-endian bytes. Same size + panic
contract as to_be_bytes.
Sourcepub fn from_be_bytes(bytes: &[u8]) -> Self
pub fn from_be_bytes(bytes: &[u8]) -> Self
Deserialize a big-endian byte slice. Output len = ceil(bytes.len() / word_size), capped at CAP. A partial top
word (input length not a multiple of word_size) leaves the
missing high bytes zero — matches the BE convention. Panics if
bytes.len() > CAP * word_size.
Sourcepub fn from_le_bytes(bytes: &[u8]) -> Self
pub fn from_le_bytes(bytes: &[u8]) -> Self
Deserialize a little-endian byte slice. Same size contract as
from_be_bytes.
Source§impl<T, const CAP: usize> HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Sourcepub fn div_rem(&self, other: &Self) -> (Self, Self)
pub fn div_rem(&self, other: &Self) -> (Self, Self)
Quotient and remainder in one pass. Panics on divide-by-zero, like the
Div/Rem operators; use checked_div/checked_rem to avoid the panic.
Sourcepub fn checked_div(&self, other: &Self) -> Option<Self>
pub fn checked_div(&self, other: &Self) -> Option<Self>
Checked division. None on divide-by-zero.
Sourcepub fn checked_rem(&self, other: &Self) -> Option<Self>
pub fn checked_rem(&self, other: &Self) -> Option<Self>
Checked remainder. None on divide-by-zero.
Sourcepub fn checked_div_ceil(&self, other: &Self) -> Option<Self>
pub fn checked_div_ceil(&self, other: &Self) -> Option<Self>
Ceiling division. None on divide-by-zero or when rounding up
overflows the value width. Result width is max(self.len, other.len).
Source§impl<T, const CAP: usize> HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Sourcepub fn checked_isqrt(self) -> Option<Self>
pub fn checked_isqrt(self) -> Option<Self>
Unsigned isqrt cannot fail; always Some. Parallels
FixedUInt::checked_isqrt and the signed-only external
CheckedIsqrt.
Source§impl<T, const CAP: usize> HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
Sourcepub fn new_zero_with_len(len: u16) -> Self
pub fn new_zero_with_len(len: u16) -> Self
Zero with a caller-supplied logical length. The len is treated as
a public shape parameter from here on. Panics if len > CAP.
Sourcepub fn zero_full_cap() -> Self
pub fn zero_full_cap() -> Self
Full-capacity zero: len = CAP. Used where an algorithm needs a
pre-sized workspace (CIOS accumulator, product buffer).
Sourcepub fn from_limbs(limbs: [T; CAP], len: u16) -> Self
pub fn from_limbs(limbs: [T; CAP], len: u16) -> Self
Construct from a limb array + explicit len. Panics if len > CAP
or if any limb at index >= len is non-zero (invariant check).
The tail check runs in every build, not just under debug_assertions:
downstream arithmetic, equality, and widened all assume the tail is
zero, so a release build that skipped it would silently promote a
hidden limb into the value.
Source§impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> HeaplessBigInt<T, CAP, P>
Sourcepub fn widened(&self, new_len: u16) -> Self
pub fn widened(&self, new_len: u16) -> Self
Return a copy carried at new_len words, pinning the operating
width without changing the value.
Arithmetic here is width-driven: a HeaplessBigInt at len = k
behaves exactly like FixedUInt<T, k>, and every op resolves at
max(operand len). So a value assembled from small pieces (e.g. an
accumulator seeded from zero then
added to a one-word digit) is a narrow type and wraps at that
narrow width. To carry it at a chosen width — the way you pick N
for FixedUInt — pin it here once; subsequent ops keep that width
because max preserves it. Widening only relabels the width: the
limbs in [len, new_len) are already zero by the zero-tail
invariant.
Panics if new_len < len (this only widens) or new_len > CAP.
Trait Implementations§
Source§impl<T, const CAP: usize> AbsDiff for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> AbsDiff for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for unsigned types, the unsigned counterpart
for signed types (so the difference always fits).Source§impl<T, const CAP: usize> AbsDiff for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> AbsDiff for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for unsigned types, the unsigned counterpart
for signed types (so the difference always fits).Source§impl<T, const CAP: usize> AbsDiff for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> AbsDiff for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for unsigned types, the unsigned counterpart
for signed types (so the difference always fits).Source§impl<T, const CAP: usize> AbsDiff for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> AbsDiff for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for unsigned types, the unsigned counterpart
for signed types (so the difference always fits).Source§impl<T: MachineWord, const CAP: usize, P: Personality> Add for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Add for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Add<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Add<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
+ operator.Source§impl<T: MachineWord, const CAP: usize, P: Personality> Add<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Add<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Add<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Add<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
+ operator.Source§fn add(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
fn add(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
+ operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> AddAssign for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> AddAssign for HeaplessBigInt<T, CAP, P>
Source§fn add_assign(&mut self, other: Self)
fn add_assign(&mut self, other: Self)
+= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> AddAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> AddAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§fn add_assign(&mut self, other: &Self)
fn add_assign(&mut self, other: &Self)
+= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
& operator.Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitAnd<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
& operator.Source§fn bitand(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
fn bitand(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
& operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitAndAssign for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitAndAssign for HeaplessBigInt<T, CAP, P>
Source§fn bitand_assign(&mut self, other: Self)
fn bitand_assign(&mut self, other: Self)
&= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitAndAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitAndAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§fn bitand_assign(&mut self, other: &Self)
fn bitand_assign(&mut self, other: &Self)
&= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitOr for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitOr for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitOr<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitOr<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
| operator.Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitOr<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitOr<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitOr<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitOr<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
| operator.Source§fn bitor(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
fn bitor(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
| operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitOrAssign for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitOrAssign for HeaplessBigInt<T, CAP, P>
Source§fn bitor_assign(&mut self, other: Self)
fn bitor_assign(&mut self, other: Self)
|= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitOrAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitOrAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§fn bitor_assign(&mut self, other: &Self)
fn bitor_assign(&mut self, other: &Self)
|= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitWidth for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitWidth for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitWidth for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitWidth for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitXor for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitXor for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitXor<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitXor<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
^ operator.Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitXor<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitXor<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> BitXor<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitXor<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
^ operator.Source§fn bitxor(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
fn bitxor(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
^ operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitXorAssign for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitXorAssign for HeaplessBigInt<T, CAP, P>
Source§fn bitxor_assign(&mut self, other: Self)
fn bitxor_assign(&mut self, other: Self)
^= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitXorAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitXorAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§fn bitxor_assign(&mut self, other: &Self)
fn bitxor_assign(&mut self, other: &Self)
^= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitsPrecision for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitsPrecision for HeaplessBigInt<T, CAP, P>
Source§fn bits_precision(&self) -> u32
fn bits_precision(&self) -> u32
self operates over (its constructed width). Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> BitsPrecision for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> BitsPrecision for &HeaplessBigInt<T, CAP, P>
Source§fn bits_precision(&self) -> u32
fn bits_precision(&self) -> u32
self operates over (its constructed width). Read moreSource§impl<T, const CAP: usize, P: Personality> BorrowingSub for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> BorrowingSub for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T, const CAP: usize, P: Personality> BorrowingSub for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> BorrowingSub for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T: MachineWord, const CAP: usize, P: Personality> Bounded for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Bounded for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Bounded for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Bounded for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> CarryingAdd for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> CarryingAdd for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T, const CAP: usize, P: Personality> CarryingAdd for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> CarryingAdd for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T, const CAP: usize, P: Personality> CarryingMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> CarryingMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Unsigned = HeaplessBigInt<T, CAP, P>
type Unsigned = HeaplessBigInt<T, CAP, P>
Self for unsigned types,
the unsigned counterpart for signed types (matching std’s
carrying_mul signatures).Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T, const CAP: usize, P: Personality> CarryingMul for &HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> CarryingMul for &HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Unsigned = HeaplessBigInt<T, CAP, P>
type Unsigned = HeaplessBigInt<T, CAP, P>
Self for unsigned types,
the unsigned counterpart for signed types (matching std’s
carrying_mul signatures).Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T, const CAP: usize> CheckedAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> CheckedAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls; a distinct owned type
lets non-Copy types implement this via impl for &Self.Source§fn checked_add(self, v: Self) -> Option<Self>
fn checked_add(self, v: Self) -> Option<Self>
None is
returned.Source§impl<T, const CAP: usize> CheckedAdd for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> CheckedAdd for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls; a distinct owned type
lets non-Copy types implement this via impl for &Self.Source§fn checked_add(self, v: Self) -> Option<Self::Output>
fn checked_add(self, v: Self) -> Option<Self::Output>
None is
returned.Source§impl<T, const CAP: usize> CheckedAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Available on crate feature num-traits only.
impl<T, const CAP: usize> CheckedAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
num-traits only.Source§fn checked_add(&self, v: &Self) -> Option<Self>
fn checked_add(&self, v: &Self) -> Option<Self>
None is
returned.Source§impl<T, const CAP: usize> CheckedDiv for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedDiv for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn checked_div(self, v: Self) -> Option<Self>
fn checked_div(self, v: Self) -> Option<Self>
None is returned.Source§impl<T, const CAP: usize> CheckedDiv for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedDiv for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn checked_div(self, v: Self) -> Option<Self::Output>
fn checked_div(self, v: Self) -> Option<Self::Output>
None is returned.Source§impl<T, const CAP: usize> CheckedDiv for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Available on crate feature num-traits only.
impl<T, const CAP: usize> CheckedDiv for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
num-traits only.Source§fn checked_div(&self, v: &Self) -> Option<Self>
fn checked_div(&self, v: &Self) -> Option<Self>
None is returned.Source§impl<T, const CAP: usize> CheckedEuclid for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedEuclid for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn checked_div_euclid(self, v: Self) -> Option<Self>
fn checked_div_euclid(self, v: Self) -> Option<Self>
None on division by zero or if
overflow occurred.Source§fn checked_rem_euclid(self, v: Self) -> Option<Self>
fn checked_rem_euclid(self, v: Self) -> Option<Self>
None on
division by zero or if overflow occurred.Source§fn checked_div_rem_euclid(self, v: Self) -> Option<(Self, Self)>
fn checked_div_rem_euclid(self, v: Self) -> Option<(Self, Self)>
None on division by zero or if overflow occurred. Read moreSource§impl<T, const CAP: usize> CheckedEuclid for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedEuclid for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn checked_div_euclid(self, v: Self) -> Option<<Self as Euclid>::Output>
fn checked_div_euclid(self, v: Self) -> Option<<Self as Euclid>::Output>
None on division by zero or if
overflow occurred.Source§impl<T, const CAP: usize> CheckedMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn checked_mul(self, v: Self) -> Option<Self>
fn checked_mul(self, v: Self) -> Option<Self>
None is returned.Source§impl<T, const CAP: usize> CheckedMul for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedMul for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn checked_mul(self, v: Self) -> Option<Self::Output>
fn checked_mul(self, v: Self) -> Option<Self::Output>
None is returned.Source§impl<T, const CAP: usize> CheckedMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Available on crate feature num-traits only.
impl<T, const CAP: usize> CheckedMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
num-traits only.Source§fn checked_mul(&self, v: &Self) -> Option<Self>
fn checked_mul(&self, v: &Self) -> Option<Self>
None is returned.Source§impl<T, const CAP: usize> CheckedPow for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedPow for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§impl<T, const CAP: usize> CheckedPow for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedPow for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> CheckedRem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedRem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn checked_rem(self, v: Self) -> Option<Self>
fn checked_rem(self, v: Self) -> Option<Self>
None is returned. Read moreSource§impl<T, const CAP: usize> CheckedRem for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> CheckedRem for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§impl<T, const CAP: usize> CheckedRem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Available on crate feature num-traits only.
impl<T, const CAP: usize> CheckedRem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
num-traits only.Source§fn checked_rem(&self, v: &Self) -> Option<Self>
fn checked_rem(&self, v: &Self) -> Option<Self>
None is returned. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShl for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShl for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShl for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShl for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn checked_shl(self, bits: u32) -> Option<HeaplessBigInt<T, CAP, P>>
fn checked_shl(self, bits: u32) -> Option<HeaplessBigInt<T, CAP, P>>
self << rhs, returning None
if rhs is larger than or equal to the number of bits in self. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShl for HeaplessBigInt<T, CAP, P>
Available on crate feature num-traits only.
impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShl for HeaplessBigInt<T, CAP, P>
num-traits only.Source§impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShr for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShr for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShr for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShr for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn checked_shr(self, bits: u32) -> Option<HeaplessBigInt<T, CAP, P>>
fn checked_shr(self, bits: u32) -> Option<HeaplessBigInt<T, CAP, P>>
self >> rhs, returning None
if rhs is larger than or equal to the number of bits in self. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShr for HeaplessBigInt<T, CAP, P>
Available on crate feature num-traits only.
impl<T: MachineWord, const CAP: usize, P: Personality> CheckedShr for HeaplessBigInt<T, CAP, P>
num-traits only.Source§impl<T, const CAP: usize> CheckedSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> CheckedSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn checked_sub(self, v: Self) -> Option<Self>
fn checked_sub(self, v: Self) -> Option<Self>
None is returned.Source§impl<T, const CAP: usize> CheckedSub for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> CheckedSub for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn checked_sub(self, v: Self) -> Option<Self::Output>
fn checked_sub(self, v: Self) -> Option<Self::Output>
None is returned.Source§impl<T, const CAP: usize> CheckedSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Available on crate feature num-traits only.
impl<T, const CAP: usize> CheckedSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
num-traits only.Source§fn checked_sub(&self, v: &Self) -> Option<Self>
fn checked_sub(&self, v: &Self) -> Option<Self>
None is returned.Source§impl<T: MachineWord, const CAP: usize, P: Personality> Clone for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Clone for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> ConditionallySelectable for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize, P: Personality> ConditionallySelectable for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConditionallySelectable,
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<T: MachineWord, const CAP: usize, P: Personality> ConstOne for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ConstOne for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> ConstZero for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ConstZero for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> ConstantTimeEq for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
impl<T, const CAP: usize, P: Personality> ConstantTimeEq for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
Source§impl<T, const CAP: usize, P: Personality> ConstantTimeGreater for HeaplessBigInt<T, CAP, P>
impl<T, const CAP: usize, P: Personality> ConstantTimeGreater for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> ConstantTimeLess for HeaplessBigInt<T, CAP, P>
impl<T, const CAP: usize, P: Personality> ConstantTimeLess for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Copy for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> CtCheckedAdd for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> CtCheckedAdd for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T, const CAP: usize, P: Personality> CtCheckedMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> CtCheckedMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn ct_checked_mul(&self, v: &Self) -> CtOption<Self>
fn ct_checked_mul(&self, v: &Self) -> CtOption<Self>
Source§impl<T, const CAP: usize, P: Personality> CtCheckedSub for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> CtCheckedSub for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§fn ct_checked_sub(&self, v: &Self) -> CtOption<Self>
fn ct_checked_sub(&self, v: &Self) -> CtOption<Self>
Source§impl<T, const CAP: usize, P: Personality> CtIsPowerOfTwo for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
impl<T, const CAP: usize, P: Personality> CtIsPowerOfTwo for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
Source§fn ct_is_power_of_two(&self) -> Choice
fn ct_is_power_of_two(&self) -> Choice
true if self is a power of two.Source§impl<T, const CAP: usize, P: Personality> CtIsZero for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
impl<T, const CAP: usize, P: Personality> CtIsZero for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
Source§fn ct_is_zero(&self) -> Choice
fn ct_is_zero(&self) -> Choice
Source§impl<T, const CAP: usize, P: Personality> CtNonZero for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
impl<T, const CAP: usize, P: Personality> CtNonZero for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
Source§fn into_nonzero_ct(self) -> CtOption<Self::NonZero>
fn into_nonzero_ct(self) -> CtOption<Self::NonZero>
None-masked when self == 0.Source§impl<T, const CAP: usize, P: Personality> CtParity for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
impl<T, const CAP: usize, P: Personality> CtParity for HeaplessBigInt<T, CAP, P>where
T: MachineWord + ConstantTimeEq,
Source§impl<T: MachineWord + Debug, const CAP: usize> Debug for HeaplessBigInt<T, CAP, Nct>
impl<T: MachineWord + Debug, const CAP: usize> Debug for HeaplessBigInt<T, CAP, Nct>
Source§impl<T: MachineWord, const CAP: usize> Debug for HeaplessBigInt<T, CAP, Ct>
impl<T: MachineWord, const CAP: usize> Debug for HeaplessBigInt<T, CAP, Ct>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Default for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Default for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize> DepositBits for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> DepositBits for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
self into the positions
of the one-bits of mask (the PDEP operation). All other bits of the
result are zero. Like std, this is only provided for unsigned types. Read morefn deposit_bits(self, mask: Self) -> Self
Source§impl<T, const CAP: usize> DepositBits for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> DepositBits for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
self into the positions
of the one-bits of mask (the PDEP operation). All other bits of the
result are zero. Like std, this is only provided for unsigned types. Read morefn deposit_bits(self, mask: Self) -> HeaplessBigInt<T, CAP, Nct>
Source§impl<T, const CAP: usize> Display for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Display for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Div for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Div for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Div<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Div<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Div<&HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Div<&HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Div<HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Div<HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> DivAssign for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> DivAssign for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn div_assign(&mut self, other: Self)
fn div_assign(&mut self, other: Self)
/= operation. Read moreSource§impl<T, const CAP: usize> DivAssign<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> DivAssign<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn div_assign(&mut self, other: &Self)
fn div_assign(&mut self, other: &Self)
/= operation. Read moreSource§impl<T, const CAP: usize> DivCeil for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> DivCeil for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> DivCeil for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> DivCeil for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> DivNonZero for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> DivNonZero for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Output — the divisor is Self::NonZero, not
Self, so Div::Output cannot be reused.Source§fn div_nonzero(self, d: Self::NonZero) -> Self::Output
fn div_nonzero(self, d: Self::NonZero) -> Self::Output
self / d, infallibly.Source§fn rem_nonzero(self, d: Self::NonZero) -> Self::Output
fn rem_nonzero(self, d: Self::NonZero) -> Self::Output
self % d, infallibly.impl<T: MachineWord, const CAP: usize, P: Personality> Eq for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize> Euclid for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Euclid for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the
primitive and float impls).Source§fn div_euclid(self, v: Self) -> Self
fn div_euclid(self, v: Self) -> Self
rem_euclid. Read moreSource§fn rem_euclid(self, v: Self) -> Self
fn rem_euclid(self, v: Self) -> Self
self (mod v). Read moreSource§fn div_rem_euclid(self, v: Self) -> (Self, Self)
fn div_rem_euclid(self, v: Self) -> (Self, Self)
Source§impl<T, const CAP: usize> Euclid for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Euclid for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the
primitive and float impls).Source§fn div_euclid(self, v: Self) -> Self::Output
fn div_euclid(self, v: Self) -> Self::Output
rem_euclid. Read moreSource§fn rem_euclid(self, v: Self) -> Self::Output
fn rem_euclid(self, v: Self) -> Self::Output
self (mod v). Read moreSource§impl<T, const CAP: usize> ExtractBits for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> ExtractBits for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
self selected by the one-bits of mask into
the contiguous low-order bits of the result (the PEXT operation).
Like std, this is only provided for unsigned types. Read morefn extract_bits(self, mask: Self) -> Self
Source§impl<T, const CAP: usize> ExtractBits for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> ExtractBits for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
self selected by the one-bits of mask into
the contiguous low-order bits of the result (the PEXT operation).
Like std, this is only provided for unsigned types. Read morefn extract_bits(self, mask: Self) -> HeaplessBigInt<T, CAP, Nct>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> From<u8> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> From<u8> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> From<u16> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> From<u16> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> From<u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> From<u32> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> From<u64> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> From<u64> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> FromByteSlice for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> FromByteSlice for HeaplessBigInt<T, CAP, P>
Source§fn from_be_slice(bytes: &[u8]) -> Result<Self, ByteSliceError>
fn from_be_slice(bytes: &[u8]) -> Result<Self, ByteSliceError>
Source§fn from_le_slice(bytes: &[u8]) -> Result<Self, ByteSliceError>
fn from_le_slice(bytes: &[u8]) -> Result<Self, ByteSliceError>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> FromPrimitive for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> FromPrimitive for HeaplessBigInt<T, CAP, P>
Source§fn from_i64(_: i64) -> Option<Self>
fn from_i64(_: i64) -> Option<Self>
i64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u64(input: u64) -> Option<Self>
fn from_u64(input: u64) -> Option<Self>
u64 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_isize(n: isize) -> Option<Self>
fn from_isize(n: isize) -> Option<Self>
isize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i8(n: i8) -> Option<Self>
fn from_i8(n: i8) -> Option<Self>
i8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i16(n: i16) -> Option<Self>
fn from_i16(n: i16) -> Option<Self>
i16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i32(n: i32) -> Option<Self>
fn from_i32(n: i32) -> Option<Self>
i32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_i128(n: i128) -> Option<Self>
fn from_i128(n: i128) -> Option<Self>
i128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§fn from_usize(n: usize) -> Option<Self>
fn from_usize(n: usize) -> Option<Self>
usize to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u8(n: u8) -> Option<Self>
fn from_u8(n: u8) -> Option<Self>
u8 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u16(n: u16) -> Option<Self>
fn from_u16(n: u16) -> Option<Self>
u16 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u32(n: u32) -> Option<Self>
fn from_u32(n: u32) -> Option<Self>
u32 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned.Source§fn from_u128(n: u128) -> Option<Self>
fn from_u128(n: u128) -> Option<Self>
u128 to return an optional value of this type. If the
value cannot be represented by this type, then None is returned. Read moreSource§impl<T, const CAP: usize> FromStr for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Available on crate feature num-traits only.
impl<T, const CAP: usize> FromStr for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
num-traits only.Source§impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShl for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShl for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self (high word) with rhs (low
word), shifts the combination left by n, and returns the high word
— i.e. (self << n) | (rhs >> (BITS - n)). Like std, this is only
provided for unsigned types. Read morefn funnel_shl(self, rhs: Self, n: u32) -> Self
Source§impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShl for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShl for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self (high word) with rhs (low
word), shifts the combination left by n, and returns the high word
— i.e. (self << n) | (rhs >> (BITS - n)). Like std, this is only
provided for unsigned types. Read morefn funnel_shl(self, rhs: Self, n: u32) -> HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShr for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShr for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self (high word) with rhs (low
word), shifts the combination right by n, and returns the low word
— i.e. (rhs >> n) | (self << (BITS - n)). Like std, this is only
provided for unsigned types. Read morefn funnel_shr(self, rhs: Self, n: u32) -> Self
Source§impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShr for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> FunnelShr for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self (high word) with rhs (low
word), shifts the combination right by n, and returns the low word
— i.e. (rhs >> n) | (self << (BITS - n)). Like std, this is only
provided for unsigned types. Read morefn funnel_shr(self, rhs: Self, n: u32) -> HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> HasNonZero for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> HasNonZero for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§fn into_nonzero(self) -> Option<Self::NonZero>
fn into_nonzero(self) -> Option<Self::NonZero>
Option is branchful at the call site — fine for public inputs; a
secret-derived self should route through
CtNonZero::into_nonzero_ct instead.
Source§type NonZero = NonZeroHeaplessBigInt<T, CAP, P>
type NonZero = NonZeroHeaplessBigInt<T, CAP, P>
Self (core::num::NonZero<Self> for primitives).Source§fn nonzero_get(nz: Self::NonZero) -> Self
fn nonzero_get(nz: Self::NonZero) -> Self
Source§impl<T: MachineWord, const CAP: usize, P: Personality> HasPersonality for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> HasPersonality for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord + Hash, const CAP: usize, P: Personality> Hash for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + Hash, const CAP: usize, P: Personality> Hash for HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> HighestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> HighestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T, const CAP: usize, P: Personality> HighestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> HighestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T, const CAP: usize> Ilog for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Ilog for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn ilog(self, base: Self) -> u32
fn ilog(self, base: Self) -> u32
base, rounded
down. Read moreSource§fn checked_ilog(self, base: Self) -> Option<u32>
fn checked_ilog(self, base: Self) -> Option<u32>
base, rounded
down, or None if the number is zero (or negative, for signed
types) or if base is less than 2.Source§impl<T, const CAP: usize> Ilog for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Ilog for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn ilog(self, base: Self) -> u32
fn ilog(self, base: Self) -> u32
base, rounded
down. Read moreSource§fn checked_ilog(self, base: Self) -> Option<u32>
fn checked_ilog(self, base: Self) -> Option<u32>
base, rounded
down, or None if the number is zero (or negative, for signed
types) or if base is less than 2.Source§impl<T, const CAP: usize> Ilog2 for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> Ilog2 for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§impl<T, const CAP: usize> Ilog2 for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> Ilog2 for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§impl<T, const CAP: usize> Ilog10 for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Ilog10 for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Ilog10 for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Ilog10 for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Integer for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Integer for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn is_multiple_of(&self, other: &Self) -> bool
fn is_multiple_of(&self, other: &Self) -> bool
Source§fn div_rem(&self, other: &Self) -> (Self, Self)
fn div_rem(&self, other: &Self) -> (Self, Self)
(quotient, remainder). Read moreSource§fn gcd_lcm(&self, other: &Self) -> (Self, Self)
fn gcd_lcm(&self, other: &Self) -> (Self, Self)
Source§fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>where
Self: Clone,
fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>where
Self: Clone,
Source§fn divides(&self, other: &Self) -> bool
fn divides(&self, other: &Self) -> bool
Please use is_multiple_of instead
is_multiple_of instead.Source§fn div_mod_floor(&self, other: &Self) -> (Self, Self)
fn div_mod_floor(&self, other: &Self) -> (Self, Self)
(quotient, remainder). Read moreSource§fn next_multiple_of(&self, other: &Self) -> Selfwhere
Self: Clone,
fn next_multiple_of(&self, other: &Self) -> Selfwhere
Self: Clone,
Source§fn prev_multiple_of(&self, other: &Self) -> Selfwhere
Self: Clone,
fn prev_multiple_of(&self, other: &Self) -> Selfwhere
Self: Clone,
Source§impl<T, const CAP: usize, P: Personality> IsPowerOfTwo for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> IsPowerOfTwo for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§fn is_power_of_two(self) -> bool
fn is_power_of_two(self) -> bool
Source§impl<T, const CAP: usize, P: Personality> IsPowerOfTwo for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> IsPowerOfTwo for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§fn is_power_of_two(self) -> bool
fn is_power_of_two(self) -> bool
Source§impl<T, const CAP: usize, P: Personality> IsolateHighestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> IsolateHighestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self with only its highest one-bit kept, or 0 if the value
is zero. Read morefn isolate_highest_one(self) -> Self
Source§impl<T, const CAP: usize, P: Personality> IsolateHighestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> IsolateHighestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self with only its highest one-bit kept, or 0 if the value
is zero. Read morefn isolate_highest_one(self) -> HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize, P: Personality> IsolateLowestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> IsolateLowestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self with only its lowest one-bit kept, or 0 if the value
is zero. Read morefn isolate_lowest_one(self) -> Self
Source§impl<T, const CAP: usize, P: Personality> IsolateLowestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> IsolateLowestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
self with only its lowest one-bit kept, or 0 if the value
is zero. Read morefn isolate_lowest_one(self) -> HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize> Isqrt for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> Isqrt for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§impl<T, const CAP: usize> Isqrt for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> Isqrt for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§impl<T, const CAP: usize> LowerHex for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> LowerHex for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§impl<T, const CAP: usize, P: Personality> LowestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> LowestOne for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T, const CAP: usize, P: Personality> LowestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> LowestOne for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T, const CAP: usize, P: Personality> Midpoint for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> Midpoint for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T, const CAP: usize, P: Personality> Midpoint for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> Midpoint for &HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
* operator.Source§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> Mul<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
* operator.Source§fn mul(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
fn mul(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
* operation. Read moreSource§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> MulAssign for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> MulAssign for HeaplessBigInt<T, CAP, P>
Source§fn mul_assign(&mut self, other: Self)
fn mul_assign(&mut self, other: Self)
*= operation. Read moreSource§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> MulAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> MulAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§fn mul_assign(&mut self, other: &Self)
fn mul_assign(&mut self, other: &Self)
*= operation. Read moreSource§impl<T, const CAP: usize> MultipleOf for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> MultipleOf for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn is_multiple_of(self, rhs: Self) -> bool
fn is_multiple_of(self, rhs: Self) -> bool
Source§impl<T, const CAP: usize> MultipleOf for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> MultipleOf for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn is_multiple_of(self, rhs: Self) -> bool
fn is_multiple_of(self, rhs: Self) -> bool
Source§impl<T, const CAP: usize> NextMultipleOf for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> NextMultipleOf for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn next_multiple_of(self, rhs: Self) -> Self
fn next_multiple_of(self, rhs: Self) -> Self
self that is
a multiple of rhs (for negative rhs on signed types: the closest
to negative infinity). Read moreSource§fn checked_next_multiple_of(self, rhs: Self) -> Option<Self>
fn checked_next_multiple_of(self, rhs: Self) -> Option<Self>
self that is
a multiple of rhs, returning None if rhs is zero or the
operation would result in overflow.Source§impl<T, const CAP: usize> NextMultipleOf for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> NextMultipleOf for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn next_multiple_of(self, rhs: Self) -> Self::Output
fn next_multiple_of(self, rhs: Self) -> Self::Output
self that is
a multiple of rhs (for negative rhs on signed types: the closest
to negative infinity). Read moreSource§fn checked_next_multiple_of(self, rhs: Self) -> Option<Self::Output>
fn checked_next_multiple_of(self, rhs: Self) -> Option<Self::Output>
self that is
a multiple of rhs, returning None if rhs is zero or the
operation would result in overflow.Source§impl<T, const CAP: usize> NextPowerOfTwo for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> NextPowerOfTwo for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
self. Read moreSource§fn wrapping_next_power_of_two(self) -> Self
fn wrapping_next_power_of_two(self) -> Self
self,
or 0 if it doesn’t fit in the type (i.e. the result wraps to zero). Read morefn next_power_of_two(self) -> Self
Source§fn checked_next_power_of_two(self) -> Option<Self>
fn checked_next_power_of_two(self) -> Option<Self>
self,
or None if it doesn’t fit in the type. Read moreSource§impl<T, const CAP: usize> NextPowerOfTwo for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> NextPowerOfTwo for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
self. Read morefn next_power_of_two(self) -> Self
Source§fn wrapping_next_power_of_two(self) -> Self
fn wrapping_next_power_of_two(self) -> Self
self,
or 0 if it doesn’t fit in the type (i.e. the result wraps to zero). Read moreSource§fn checked_next_power_of_two(self) -> Option<Self>
fn checked_next_power_of_two(self) -> Option<Self>
self,
or None if it doesn’t fit in the type. Read moreSource§impl<T, const CAP: usize> NextPowerOfTwo for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> NextPowerOfTwo for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
self. Read moreSource§fn wrapping_next_power_of_two(self) -> Self::Output
fn wrapping_next_power_of_two(self) -> Self::Output
self,
or 0 if it doesn’t fit in the type (i.e. the result wraps to zero). Read morefn next_power_of_two(self) -> Self::Output
Source§impl<T, const CAP: usize> NextPowerOfTwo for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> NextPowerOfTwo for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
self. Read morefn next_power_of_two(self) -> Self::Output
Source§fn wrapping_next_power_of_two(self) -> Self::Output
fn wrapping_next_power_of_two(self) -> Self::Output
self,
or 0 if it doesn’t fit in the type (i.e. the result wraps to zero). Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> Not for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Not for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Not for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Not for &HeaplessBigInt<T, CAP, P>
Source§impl<T, const CAP: usize> Num for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Available on crate feature num-traits only.
impl<T, const CAP: usize> Num for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
num-traits only.type FromStrRadixErr = ParseIntError
Source§fn from_str_radix(
input: &str,
radix: u32,
) -> Result<Self, Self::FromStrRadixErr>
fn from_str_radix( input: &str, radix: u32, ) -> Result<Self, Self::FromStrRadixErr>
2..=36). Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> NumCast for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> NumCast for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> One for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> One for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> One for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord + CarryingMul<Unsigned = T, Output = T>, const CAP: usize, P: Personality> One for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Ord for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Ord for HeaplessBigInt<T, CAP, P>
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingAdd for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingAdd for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_add(self, v: Self) -> (Self::Output, bool)
fn overflowing_add(self, v: Self) -> (Self::Output, bool)
Source§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingAdd for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingAdd for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_add(self, v: Self) -> (Self::Output, bool)
fn overflowing_add(self, v: Self) -> (Self::Output, bool)
Source§impl<T, const CAP: usize, P: Personality> OverflowingMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> OverflowingMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_mul(self, v: Self) -> (Self::Output, bool)
fn overflowing_mul(self, v: Self) -> (Self::Output, bool)
Source§impl<T, const CAP: usize, P: Personality> OverflowingMul for &HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> OverflowingMul for &HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_mul(self, v: Self) -> (Self::Output, bool)
fn overflowing_mul(self, v: Self) -> (Self::Output, bool)
Source§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShl for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShl for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShl for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShl for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_shl(self, bits: u32) -> (HeaplessBigInt<T, CAP, P>, bool)
fn overflowing_shl(self, bits: u32) -> (HeaplessBigInt<T, CAP, P>, bool)
self left by a rhs masked to the bit width of the type, and
returns a boolean indicating whether rhs was larger than or equal to
the number of bits. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShr for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShr for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShr for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingShr for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_shr(self, bits: u32) -> (HeaplessBigInt<T, CAP, P>, bool)
fn overflowing_shr(self, bits: u32) -> (HeaplessBigInt<T, CAP, P>, bool)
self right by a rhs masked to the bit width of the type, and
returns a boolean indicating whether rhs was larger than or equal to
the number of bits. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingSub for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingSub for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_sub(self, v: Self) -> (Self::Output, bool)
fn overflowing_sub(self, v: Self) -> (Self::Output, bool)
Source§impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingSub for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> OverflowingSub for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn overflowing_sub(self, v: Self) -> (Self::Output, bool)
fn overflowing_sub(self, v: Self) -> (Self::Output, bool)
Source§impl<T, const CAP: usize, P: Personality> Parity for HeaplessBigInt<T, CAP, P>where
T: MachineWord + Parity,
impl<T, const CAP: usize, P: Personality> Parity for HeaplessBigInt<T, CAP, P>where
T: MachineWord + Parity,
Source§impl<T: MachineWord, const CAP: usize, P: Personality> PartialEq for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> PartialEq for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> PartialOrd for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> PartialOrd for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> PrimBits for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> PrimBits for HeaplessBigInt<T, CAP, P>
Source§fn count_ones(self) -> u32
fn count_ones(self) -> u32
self. Read moreSource§fn count_zeros(self) -> u32
fn count_zeros(self) -> u32
self. Read moreSource§fn leading_zeros(self) -> u32
fn leading_zeros(self) -> u32
self. Read moreSource§fn trailing_zeros(self) -> u32
fn trailing_zeros(self) -> u32
self. Read moreSource§fn swap_bytes(self) -> Self
fn swap_bytes(self) -> Self
Source§fn reverse_bits(self) -> Self
fn reverse_bits(self) -> Self
Source§fn rotate_left(self, n: u32) -> Self
fn rotate_left(self, n: u32) -> Self
n, wrapping
the truncated bits to the end of the resulting integer. Read moreSource§fn rotate_right(self, n: u32) -> Self
fn rotate_right(self, n: u32) -> Self
n, wrapping
the truncated bits to the beginning of the resulting integer. Read moreSource§fn unsigned_shl(self, n: u32) -> Self
fn unsigned_shl(self, n: u32) -> Self
n, filling
zeros in the least significant bits. Read moreSource§fn unsigned_shr(self, n: u32) -> Self
fn unsigned_shr(self, n: u32) -> Self
n, filling
zeros in the most significant bits. Read moreSource§fn signed_shl(self, n: u32) -> Self
fn signed_shl(self, n: u32) -> Self
n, filling
zeros in the least significant bits. Read moreSource§fn signed_shr(self, n: u32) -> Self
fn signed_shr(self, n: u32) -> Self
n, copying
the “sign bit” in the most significant bits even for unsigned types. Read moreSource§fn from_be(x: Self) -> Self
fn from_be(x: Self) -> Self
Source§fn from_le(x: Self) -> Self
fn from_le(x: Self) -> Self
Source§fn leading_ones(self) -> u32
fn leading_ones(self) -> u32
self. Read moreSource§fn trailing_ones(self) -> u32
fn trailing_ones(self) -> u32
self. Read moreSource§impl<T, const CAP: usize> PrimInt for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> PrimInt for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn count_ones(self) -> u32
fn count_ones(self) -> u32
self. Read moreSource§fn count_zeros(self) -> u32
fn count_zeros(self) -> u32
self. Read moreSource§fn leading_zeros(self) -> u32
fn leading_zeros(self) -> u32
self. Read moreSource§fn trailing_zeros(self) -> u32
fn trailing_zeros(self) -> u32
self. Read moreSource§fn rotate_left(self, n: u32) -> Self
fn rotate_left(self, n: u32) -> Self
n, wrapping
the truncated bits to the end of the resulting integer. Read moreSource§fn rotate_right(self, n: u32) -> Self
fn rotate_right(self, n: u32) -> Self
n, wrapping
the truncated bits to the beginning of the resulting integer. Read moreSource§fn signed_shl(self, n: u32) -> Self
fn signed_shl(self, n: u32) -> Self
n, filling
zeros in the least significant bits. Read moreSource§fn signed_shr(self, n: u32) -> Self
fn signed_shr(self, n: u32) -> Self
n, copying
the “sign bit” in the most significant bits even for unsigned types. Read moreSource§fn unsigned_shl(self, n: u32) -> Self
fn unsigned_shl(self, n: u32) -> Self
n, filling
zeros in the least significant bits. Read moreSource§fn unsigned_shr(self, n: u32) -> Self
fn unsigned_shr(self, n: u32) -> Self
n, filling
zeros in the most significant bits. Read moreSource§fn swap_bytes(self) -> Self
fn swap_bytes(self) -> Self
Source§fn reverse_bits(self) -> Self
fn reverse_bits(self) -> Self
Source§fn from_be(x: Self) -> Self
fn from_be(x: Self) -> Self
Source§fn from_le(x: Self) -> Self
fn from_le(x: Self) -> Self
Source§fn pow(self, exp: u32) -> Self
fn pow(self, exp: u32) -> Self
exp, using exponentiation by squaring. Read moreSource§fn leading_ones(self) -> u32
fn leading_ones(self) -> u32
self. Read moreSource§fn trailing_ones(self) -> u32
fn trailing_ones(self) -> u32
self. Read moreSource§impl<T, const CAP: usize, P: Personality> Product for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> Product for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<'a, T, const CAP: usize, P: Personality> Product<&'a HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<'a, T, const CAP: usize, P: Personality> Product<&'a HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Rem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Rem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Rem<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Rem<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Rem<&HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Rem<&HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Rem<HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Rem<HeaplessBigInt<T, CAP>> for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> RemAssign for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> RemAssign for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn rem_assign(&mut self, other: Self)
fn rem_assign(&mut self, other: Self)
%= operation. Read moreSource§impl<T, const CAP: usize> RemAssign<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> RemAssign<&HeaplessBigInt<T, CAP>> for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§fn rem_assign(&mut self, other: &Self)
fn rem_assign(&mut self, other: &Self)
%= operation. Read moreSource§impl<T, const CAP: usize> Roots for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> Roots for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> Saturating for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Available on crate feature num-traits only.
impl<T, const CAP: usize> Saturating for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
num-traits only.Source§fn saturating_add(self, v: Self) -> Self
fn saturating_add(self, v: Self) -> Self
Source§fn saturating_sub(self, v: Self) -> Self
fn saturating_sub(self, v: Self) -> Self
Source§impl<T, const CAP: usize> SaturatingAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> SaturatingAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn saturating_add(self, v: Self) -> Self
fn saturating_add(self, v: Self) -> Self
self + other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingAdd for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> SaturatingAdd for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for the primitive impls).Source§fn saturating_add(self, v: Self) -> Self
fn saturating_add(self, v: Self) -> Self
self + other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingAdd for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> SaturatingAdd for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn saturating_add(self, v: Self) -> Self::Output
fn saturating_add(self, v: Self) -> Self::Output
self + other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingAdd for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> SaturatingAdd for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for the primitive impls).Source§fn saturating_add(self, v: Self) -> Self::Output
fn saturating_add(self, v: Self) -> Self::Output
self + other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> SaturatingMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn saturating_mul(self, v: Self) -> Self
fn saturating_mul(self, v: Self) -> Self
self * other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingMul for HeaplessBigInt<T, CAP, Ct>
impl<T, const CAP: usize> SaturatingMul for HeaplessBigInt<T, CAP, Ct>
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for the primitive impls).Source§fn saturating_mul(self, v: Self) -> Self
fn saturating_mul(self, v: Self) -> Self
self * other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingMul for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> SaturatingMul for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn saturating_mul(self, v: Self) -> Self::Output
fn saturating_mul(self, v: Self) -> Self::Output
self * other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingMul for &HeaplessBigInt<T, CAP, Ct>
impl<T, const CAP: usize> SaturatingMul for &HeaplessBigInt<T, CAP, Ct>
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for the primitive impls).Source§fn saturating_mul(self, v: Self) -> Self::Output
fn saturating_mul(self, v: Self) -> Self::Output
self * other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> SaturatingSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn saturating_sub(self, v: Self) -> Self
fn saturating_sub(self, v: Self) -> Self
self - other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingSub for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> SaturatingSub for HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for the primitive impls).Source§fn saturating_sub(self, v: Self) -> Self
fn saturating_sub(self, v: Self) -> Self
self - other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingSub for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> SaturatingSub for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn saturating_sub(self, v: Self) -> Self::Output
fn saturating_sub(self, v: Self) -> Self::Output
self - other, saturating at the relevant high or low boundary of
the type.Source§impl<T, const CAP: usize> SaturatingSub for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
impl<T, const CAP: usize> SaturatingSub for &HeaplessBigInt<T, CAP, Ct>where
T: MachineWord + ConditionallySelectable,
Source§type Output = HeaplessBigInt<T, CAP, Ct>
type Output = HeaplessBigInt<T, CAP, Ct>
Self for the primitive impls).Source§fn saturating_sub(self, v: Self) -> Self::Output
fn saturating_sub(self, v: Self) -> Self::Output
self - other, saturating at the relevant high or low boundary of
the type.Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&u32> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&u32> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&u32> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&usize> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&usize> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<&usize> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<u32> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<u32> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<u32> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<usize> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shl<usize> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shl<usize> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<&u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<&u32> for HeaplessBigInt<T, CAP, P>
Source§fn shl_assign(&mut self, bits: &u32)
fn shl_assign(&mut self, bits: &u32)
<<= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<&usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<&usize> for HeaplessBigInt<T, CAP, P>
Source§fn shl_assign(&mut self, bits: &usize)
fn shl_assign(&mut self, bits: &usize)
<<= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<u32> for HeaplessBigInt<T, CAP, P>
Source§fn shl_assign(&mut self, bits: u32)
fn shl_assign(&mut self, bits: u32)
<<= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShlAssign<usize> for HeaplessBigInt<T, CAP, P>
Source§fn shl_assign(&mut self, bits: usize)
fn shl_assign(&mut self, bits: usize)
<<= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShlExact for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShlExact for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> ShlExact for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShlExact for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&u32> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&u32> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&u32> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&usize> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&usize> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<&usize> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<u32> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<u32> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<u32> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<usize> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Shr<usize> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Shr<usize> for &HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<&u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<&u32> for HeaplessBigInt<T, CAP, P>
Source§fn shr_assign(&mut self, bits: &u32)
fn shr_assign(&mut self, bits: &u32)
>>= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<&usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<&usize> for HeaplessBigInt<T, CAP, P>
Source§fn shr_assign(&mut self, bits: &usize)
fn shr_assign(&mut self, bits: &usize)
>>= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<u32> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<u32> for HeaplessBigInt<T, CAP, P>
Source§fn shr_assign(&mut self, bits: u32)
fn shr_assign(&mut self, bits: u32)
>>= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<usize> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShrAssign<usize> for HeaplessBigInt<T, CAP, P>
Source§fn shr_assign(&mut self, bits: usize)
fn shr_assign(&mut self, bits: usize)
>>= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> ShrExact for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShrExact for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> ShrExact for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ShrExact for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§impl<T, const CAP: usize> StrictAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictAdd for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_add(self, v: Self) -> Self
fn strict_add(self, v: Self) -> Self
self + v, panicking on overflow regardless
of whether overflow checks are enabled. Read moreSource§impl<T, const CAP: usize> StrictAdd for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictAdd for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_add(self, v: Self) -> Self::Output
fn strict_add(self, v: Self) -> Self::Output
self + v, panicking on overflow regardless
of whether overflow checks are enabled. Read moreSource§impl<T, const CAP: usize> StrictDiv for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictDiv for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_div(self, v: Self) -> Self
fn strict_div(self, v: Self) -> Self
self / v, panicking on overflow (only
possible for MIN / -1 on a signed type) or if v is zero.Source§impl<T, const CAP: usize> StrictDiv for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictDiv for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_div(self, v: Self) -> Self::Output
fn strict_div(self, v: Self) -> Self::Output
self / v, panicking on overflow (only
possible for MIN / -1 on a signed type) or if v is zero.Source§impl<T, const CAP: usize> StrictMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictMul for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_mul(self, v: Self) -> Self
fn strict_mul(self, v: Self) -> Self
self * v, panicking on overflow
regardless of whether overflow checks are enabled.Source§impl<T, const CAP: usize> StrictMul for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictMul for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_mul(self, v: Self) -> Self::Output
fn strict_mul(self, v: Self) -> Self::Output
self * v, panicking on overflow
regardless of whether overflow checks are enabled.Source§impl<T, const CAP: usize> StrictPow for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictPow for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_pow(self, exp: u32) -> Self
fn strict_pow(self, exp: u32) -> Self
self.pow(exp), panicking on
overflow regardless of whether overflow checks are enabled.Source§impl<T, const CAP: usize> StrictPow for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictPow for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_pow(self, exp: u32) -> Self::Output
fn strict_pow(self, exp: u32) -> Self::Output
self.pow(exp), panicking on
overflow regardless of whether overflow checks are enabled.Source§impl<T, const CAP: usize> StrictRem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictRem for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_rem(self, v: Self) -> Self
fn strict_rem(self, v: Self) -> Self
self % v, panicking on overflow (only
possible for MIN % -1 on a signed type) or if v is zero.Source§impl<T, const CAP: usize> StrictRem for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize> StrictRem for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_rem(self, v: Self) -> Self::Output
fn strict_rem(self, v: Self) -> Self::Output
self % v, panicking on overflow (only
possible for MIN % -1 on a signed type) or if v is zero.Source§impl<T, const CAP: usize> StrictShl for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictShl for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_shl(self, rhs: u32) -> Self
fn strict_shl(self, rhs: u32) -> Self
self << rhs, panicking if rhs is
larger than or equal to the number of bits in self.Source§impl<T, const CAP: usize> StrictShl for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictShl for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_shl(self, rhs: u32) -> Self::Output
fn strict_shl(self, rhs: u32) -> Self::Output
self << rhs, panicking if rhs is
larger than or equal to the number of bits in self.Source§impl<T, const CAP: usize> StrictShr for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictShr for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_shr(self, rhs: u32) -> Self
fn strict_shr(self, rhs: u32) -> Self
self >> rhs, panicking if rhs is
larger than or equal to the number of bits in self.Source§impl<T, const CAP: usize> StrictShr for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictShr for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_shr(self, rhs: u32) -> Self::Output
fn strict_shr(self, rhs: u32) -> Self::Output
self >> rhs, panicking if rhs is
larger than or equal to the number of bits in self.Source§impl<T, const CAP: usize> StrictSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictSub for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_sub(self, v: Self) -> Self
fn strict_sub(self, v: Self) -> Self
self - v, panicking on overflow
regardless of whether overflow checks are enabled.Source§impl<T, const CAP: usize> StrictSub for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> StrictSub for &HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§type Output = HeaplessBigInt<T, CAP>
type Output = HeaplessBigInt<T, CAP>
Self for the primitive impls).Source§fn strict_sub(self, v: Self) -> Self::Output
fn strict_sub(self, v: Self) -> Self::Output
self - v, panicking on overflow
regardless of whether overflow checks are enabled.Source§impl<T: MachineWord, const CAP: usize, P: Personality> Sub for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Sub for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Sub<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Sub<&HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
- operator.Source§impl<T: MachineWord, const CAP: usize, P: Personality> Sub<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Sub<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Sub<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Sub<HeaplessBigInt<T, CAP, P>> for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
- operator.Source§fn sub(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
fn sub(self, other: HeaplessBigInt<T, CAP, P>) -> HeaplessBigInt<T, CAP, P>
- operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> SubAssign for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> SubAssign for HeaplessBigInt<T, CAP, P>
Source§fn sub_assign(&mut self, other: Self)
fn sub_assign(&mut self, other: Self)
-= operation. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> SubAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> SubAssign<&HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>
Source§fn sub_assign(&mut self, other: &Self)
fn sub_assign(&mut self, other: &Self)
-= operation. Read moreSource§impl<T, const CAP: usize, P: Personality> Sum for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<T, const CAP: usize, P: Personality> Sum for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<'a, T, const CAP: usize, P: Personality> Sum<&'a HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
impl<'a, T, const CAP: usize, P: Personality> Sum<&'a HeaplessBigInt<T, CAP, P>> for HeaplessBigInt<T, CAP, P>where
T: MachineWord,
Source§impl<T: MachineWord, const CAP: usize, P: Personality> ToPrimitive for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> ToPrimitive for HeaplessBigInt<T, CAP, P>
Source§fn to_i64(&self) -> Option<i64>
fn to_i64(&self) -> Option<i64>
self to an i64. If the value cannot be
represented by an i64, then None is returned.Source§fn to_u64(&self) -> Option<u64>
fn to_u64(&self) -> Option<u64>
self to a u64. If the value cannot be
represented by a u64, then None is returned.Source§fn to_isize(&self) -> Option<isize>
fn to_isize(&self) -> Option<isize>
self to an isize. If the value cannot be
represented by an isize, then None is returned.Source§fn to_i8(&self) -> Option<i8>
fn to_i8(&self) -> Option<i8>
self to an i8. If the value cannot be
represented by an i8, then None is returned.Source§fn to_i16(&self) -> Option<i16>
fn to_i16(&self) -> Option<i16>
self to an i16. If the value cannot be
represented by an i16, then None is returned.Source§fn to_i32(&self) -> Option<i32>
fn to_i32(&self) -> Option<i32>
self to an i32. If the value cannot be
represented by an i32, then None is returned.Source§fn to_i128(&self) -> Option<i128>
fn to_i128(&self) -> Option<i128>
self to an i128. If the value cannot be
represented by an i128 (i64 under the default implementation), then
None is returned. Read moreSource§fn to_usize(&self) -> Option<usize>
fn to_usize(&self) -> Option<usize>
self to a usize. If the value cannot be
represented by a usize, then None is returned.Source§fn to_u8(&self) -> Option<u8>
fn to_u8(&self) -> Option<u8>
self to a u8. If the value cannot be
represented by a u8, then None is returned.Source§fn to_u16(&self) -> Option<u16>
fn to_u16(&self) -> Option<u16>
self to a u16. If the value cannot be
represented by a u16, then None is returned.Source§fn to_u32(&self) -> Option<u32>
fn to_u32(&self) -> Option<u32>
self to a u32. If the value cannot be
represented by a u32, then None is returned.Source§fn to_u128(&self) -> Option<u128>
fn to_u128(&self) -> Option<u128>
self to a u128. If the value cannot be
represented by a u128 (u64 under the default implementation), then
None is returned. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShl for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShl for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn unbounded_shl(self, rhs: u32) -> Self
fn unbounded_shl(self, rhs: u32) -> Self
self << rhs, without bounding the
value of rhs: if rhs >= BITS the entire value is shifted out and
0 is returned. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShl for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShl for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn unbounded_shl(self, rhs: u32) -> HeaplessBigInt<T, CAP, P>
fn unbounded_shl(self, rhs: u32) -> HeaplessBigInt<T, CAP, P>
self << rhs, without bounding the
value of rhs: if rhs >= BITS the entire value is shifted out and
0 is returned. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShr for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShr for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn unbounded_shr(self, rhs: u32) -> Self
fn unbounded_shr(self, rhs: u32) -> Self
self >> rhs, without bounding the
value of rhs: if rhs >= BITS, unsigned values become 0 and signed
values become 0 or -1 depending on the sign (the sign bit fills every
position). Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShr for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> UnboundedShr for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn unbounded_shr(self, rhs: u32) -> HeaplessBigInt<T, CAP, P>
fn unbounded_shr(self, rhs: u32) -> HeaplessBigInt<T, CAP, P>
self >> rhs, without bounding the
value of rhs: if rhs >= BITS, unsigned values become 0 and signed
values become 0 or -1 depending on the sign (the sign bit fills every
position). Read moreimpl<T, const CAP: usize> Unsigned for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§impl<T, const CAP: usize> UpperHex for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
impl<T, const CAP: usize> UpperHex for HeaplessBigInt<T, CAP, Nct>where
T: MachineWord,
Source§impl<T: MachineWord, const CAP: usize, P: Personality> WithPrecision for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WithPrecision for HeaplessBigInt<T, CAP, P>
Source§fn widen_to_precision(self, bits_precision: u32) -> Self
fn widen_to_precision(self, bits_precision: u32) -> Self
self re-represented over a width of at least
bits_precision, preserving its numeric value. Never shrinks; on a
fixed-width carrier the width is the type and this is the identity.Source§fn zero_with_precision(bits_precision: u32) -> Selfwhere
Self: Zero,
fn zero_with_precision(bits_precision: u32) -> Selfwhere
Self: Zero,
Zero carried at a width of at least bits_precision.Source§fn one_with_precision(bits_precision: u32) -> Selfwhere
Self: One,
fn one_with_precision(bits_precision: u32) -> Selfwhere
Self: One,
One carried at a width of at least bits_precision.Source§fn widen_to_precision_of(self, witness: &Self) -> Self
fn widen_to_precision_of(self, witness: &Self) -> Self
widen_to_precision to the width of a
witness value — typically the modulus a reducer operates over. Prefer
this to hand-picking a bit count: the witness carries the intended width.Source§fn zero_with_precision_of(witness: &Self) -> Selfwhere
Self: Zero,
fn zero_with_precision_of(witness: &Self) -> Selfwhere
Self: Zero,
Zero carried at the witness’s width — the width-safe
seed for a generic accumulator.Source§fn one_with_precision_of(witness: &Self) -> Selfwhere
Self: One,
fn one_with_precision_of(witness: &Self) -> Selfwhere
Self: One,
One carried at the witness’s width.Source§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingAdd for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingAdd for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_add(self, v: Self) -> Self::Output
fn wrapping_add(self, v: Self) -> Self::Output
self + other, wrapping around at the boundary of
the type.Source§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingAdd for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingAdd for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_add(self, v: Self) -> Self::Output
fn wrapping_add(self, v: Self) -> Self::Output
self + other, wrapping around at the boundary of
the type.Source§impl<T, const CAP: usize, P: Personality> WrappingMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> WrappingMul for HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_mul(self, v: Self) -> Self::Output
fn wrapping_mul(self, v: Self) -> Self::Output
self * other, wrapping around at the boundary
of the type.Source§impl<T, const CAP: usize, P: Personality> WrappingMul for &HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
impl<T, const CAP: usize, P: Personality> WrappingMul for &HeaplessBigInt<T, CAP, P>where
T: MachineWord + CarryingMul<Unsigned = T, Output = T>,
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_mul(self, v: Self) -> Self::Output
fn wrapping_mul(self, v: Self) -> Self::Output
self * other, wrapping around at the boundary
of the type.Source§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShl for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShl for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_shl(self, bits: u32) -> Self
fn wrapping_shl(self, bits: u32) -> Self
self << mask(rhs),
where mask removes any high order bits of rhs that would
cause the shift to exceed the bitwidth of the type. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShl for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShl for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_shl(self, bits: u32) -> HeaplessBigInt<T, CAP, P>
fn wrapping_shl(self, bits: u32) -> HeaplessBigInt<T, CAP, P>
self << mask(rhs),
where mask removes any high order bits of rhs that would
cause the shift to exceed the bitwidth of the type. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShl for HeaplessBigInt<T, CAP, P>
Available on crate feature num-traits only.
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShl for HeaplessBigInt<T, CAP, P>
num-traits only.Source§fn wrapping_shl(&self, bits: u32) -> Self
fn wrapping_shl(&self, bits: u32) -> Self
self << mask(rhs),
where mask removes any high order bits of rhs that would
cause the shift to exceed the bitwidth of the type. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShr for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShr for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_shr(self, bits: u32) -> Self
fn wrapping_shr(self, bits: u32) -> Self
self >> mask(rhs),
where mask removes any high order bits of rhs that would
cause the shift to exceed the bitwidth of the type. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShr for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShr for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_shr(self, bits: u32) -> HeaplessBigInt<T, CAP, P>
fn wrapping_shr(self, bits: u32) -> HeaplessBigInt<T, CAP, P>
self >> mask(rhs),
where mask removes any high order bits of rhs that would
cause the shift to exceed the bitwidth of the type. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShr for HeaplessBigInt<T, CAP, P>
Available on crate feature num-traits only.
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingShr for HeaplessBigInt<T, CAP, P>
num-traits only.Source§fn wrapping_shr(&self, bits: u32) -> Self
fn wrapping_shr(&self, bits: u32) -> Self
self >> mask(rhs),
where mask removes any high order bits of rhs that would
cause the shift to exceed the bitwidth of the type. Read moreSource§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingSub for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingSub for HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_sub(self, v: Self) -> Self::Output
fn wrapping_sub(self, v: Self) -> Self::Output
self - other, wrapping around at the boundary
of the type.Source§impl<T: MachineWord, const CAP: usize, P: Personality> WrappingSub for &HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> WrappingSub for &HeaplessBigInt<T, CAP, P>
Source§type Output = HeaplessBigInt<T, CAP, P>
type Output = HeaplessBigInt<T, CAP, P>
Self for the primitive impls).Source§fn wrapping_sub(self, v: Self) -> Self::Output
fn wrapping_sub(self, v: Self) -> Self::Output
self - other, wrapping around at the boundary
of the type.Source§impl<T: MachineWord, const CAP: usize, P: Personality> Zero for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Zero for HeaplessBigInt<T, CAP, P>
Source§impl<T: MachineWord, const CAP: usize, P: Personality> Zero for HeaplessBigInt<T, CAP, P>
impl<T: MachineWord, const CAP: usize, P: Personality> Zero for HeaplessBigInt<T, CAP, P>
Auto Trait Implementations§
impl<T, const CAP: usize, P> Freeze for HeaplessBigInt<T, CAP, P>where
T: Freeze,
impl<T, const CAP: usize, P> RefUnwindSafe for HeaplessBigInt<T, CAP, P>where
T: RefUnwindSafe,
P: RefUnwindSafe,
impl<T, const CAP: usize, P> Send for HeaplessBigInt<T, CAP, P>
impl<T, const CAP: usize, P> Sync for HeaplessBigInt<T, CAP, P>
impl<T, const CAP: usize, P> Unpin for HeaplessBigInt<T, CAP, P>
impl<T, const CAP: usize, P> UnsafeUnpin for HeaplessBigInt<T, CAP, P>where
T: UnsafeUnpin,
impl<T, const CAP: usize, P> UnwindSafe for HeaplessBigInt<T, CAP, P>where
T: UnwindSafe,
P: UnwindSafe,
Blanket Implementations§
Source§impl<I> Average for I
impl<I> Average for I
Source§fn average_floor(&self, other: &I) -> I
fn average_floor(&self, other: &I) -> I
Returns the floor value of the average of self and other.
Source§fn average_ceil(&self, other: &I) -> I
fn average_ceil(&self, other: &I) -> I
Returns the ceil value of the average of self and other.