Trait Integer
pub trait Integer: Sized + Num + PartialOrd + Ord + Eq
Required Methods
fn div_floor(&self, other: &Self) -> SelfFloored integer division.
Examples
# use Integer; assert!; assert!; assert!; assert!; assert!; assert!; assert!; assert!;fn mod_floor(&self, other: &Self) -> SelfFloored integer modulo, satisfying:
# use Integer; # let n = 1; let d = 1; assert!Examples
# use Integer; assert!; assert!; assert!; assert!; assert!; assert!; assert!; assert!;fn gcd(&self, other: &Self) -> SelfGreatest Common Divisor (GCD).
The result should always be non-negative.
Examples
# use Integer; assert_eq!; assert_eq!;fn lcm(&self, other: &Self) -> SelfLowest Common Multiple (LCM).
Examples
# use Integer; assert_eq!; assert_eq!; assert_eq!;fn is_multiple_of(&self, other: &Self) -> boolReturns
trueifselfis a multiple ofother.Examples
# use Integer; assert_eq!; assert_eq!;fn is_even(&self) -> boolReturns
trueif the number is even.Examples
# use Integer; assert_eq!; assert_eq!;fn is_odd(&self) -> boolReturns
trueif the number is odd.Examples
# use Integer; assert_eq!; assert_eq!;fn div_rem(&self, other: &Self) -> (Self, Self)Simultaneous truncated integer division and modulus. Returns
(quotient, remainder).Examples
# use Integer; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;
Provided Methods
fn div_ceil(&self, other: &Self) -> SelfCeiled integer division.
Examples
# use Integer; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;fn gcd_lcm(&self, other: &Self) -> (Self, Self)Greatest Common Divisor (GCD) and Lowest Common Multiple (LCM) together.
Potentially more efficient than calling
gcdandlcmindividually for identical inputs.Examples
# use Integer; assert_eq!; assert_eq!;fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self> where Self: Clone,Greatest common divisor and Bézout coefficients.
Examples
#fn extended_gcd_lcm(&self, other: &Self) -> (ExtendedGcd<Self>, Self) where Self: Clone + Signed,Greatest common divisor, least common multiple, and Bézout coefficients.
fn divides(&self, other: &Self) -> boolDeprecated, use
is_multiple_ofinstead.fn div_mod_floor(&self, other: &Self) -> (Self, Self)Simultaneous floored integer division and modulus. Returns
(quotient, remainder).Examples
# use Integer; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;fn next_multiple_of(&self, other: &Self) -> Self where Self: Clone,Rounds up to nearest multiple of argument.
Notes
For signed types,
a.next_multiple_of(b) = a.prev_multiple_of(b.neg()).Examples
# use Integer; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;fn prev_multiple_of(&self, other: &Self) -> Self where Self: Clone,Rounds down to nearest multiple of argument.
Notes
For signed types,
a.prev_multiple_of(b) = a.next_multiple_of(b.neg()).Examples
# use Integer; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!; assert_eq!;fn dec(&mut self) where Self: Clone,Decrements self by one.
Examples
# use Integer; let mut x: i32 = 43; x.dec; assert_eq!;fn inc(&mut self) where Self: Clone,Increments self by one.
Examples
# use Integer; let mut x: i32 = 41; x.inc; assert_eq!;