Trait num_integer::Integer [−][src]
pub trait Integer: Sized + Num + PartialOrd + Ord + Eq {}Show methods
fn div_floor(&self, other: &Self) -> Self; fn mod_floor(&self, other: &Self) -> Self; fn gcd(&self, other: &Self) -> Self; fn lcm(&self, other: &Self) -> Self; fn divides(&self, other: &Self) -> bool; fn is_multiple_of(&self, other: &Self) -> bool; fn is_even(&self) -> bool; fn is_odd(&self) -> bool; fn div_rem(&self, other: &Self) -> (Self, Self); fn div_ceil(&self, other: &Self) -> Self { ... } fn gcd_lcm(&self, other: &Self) -> (Self, Self) { ... } fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self>
where
Self: Clone, { ... } fn extended_gcd_lcm(&self, other: &Self) -> (ExtendedGcd<Self>, Self)
where
Self: Clone + Signed, { ... } fn div_mod_floor(&self, other: &Self) -> (Self, Self) { ... } fn next_multiple_of(&self, other: &Self) -> Self
where
Self: Clone, { ... } fn prev_multiple_of(&self, other: &Self) -> Self
where
Self: Clone, { ... }
Required methods
Floored integer division.
Examples
assert!(( 8).div_floor(& 3) == 2); assert!(( 8).div_floor(&-3) == -3); assert!((-8).div_floor(& 3) == -3); assert!((-8).div_floor(&-3) == 2); assert!(( 1).div_floor(& 2) == 0); assert!(( 1).div_floor(&-2) == -1); assert!((-1).div_floor(& 2) == -1); assert!((-1).div_floor(&-2) == 0);
Floored integer modulo, satisfying:
assert!(n.div_floor(&d) * d + n.mod_floor(&d) == n)
Examples
assert!(( 8).mod_floor(& 3) == 2); assert!(( 8).mod_floor(&-3) == -1); assert!((-8).mod_floor(& 3) == 1); assert!((-8).mod_floor(&-3) == -2); assert!(( 1).mod_floor(& 2) == 1); assert!(( 1).mod_floor(&-2) == -1); assert!((-1).mod_floor(& 2) == 1); assert!((-1).mod_floor(&-2) == -1);
Lowest Common Multiple (LCM).
Examples
assert_eq!(7.lcm(&3), 21); assert_eq!(2.lcm(&4), 4); assert_eq!(0.lcm(&0), 0);
fn is_multiple_of(&self, other: &Self) -> bool
[src]
fn is_multiple_of(&self, other: &Self) -> bool
[src]Returns true
if self
is a multiple of other
.
Examples
assert_eq!(9.is_multiple_of(&3), true); assert_eq!(3.is_multiple_of(&9), false);
Returns true
if the number is even.
Examples
assert_eq!(3.is_even(), false); assert_eq!(4.is_even(), true);
Returns true
if the number is odd.
Examples
assert_eq!(3.is_odd(), true); assert_eq!(4.is_odd(), false);
Simultaneous truncated integer division and modulus.
Returns (quotient, remainder)
.
Examples
assert_eq!(( 8).div_rem( &3), ( 2, 2)); assert_eq!(( 8).div_rem(&-3), (-2, 2)); assert_eq!((-8).div_rem( &3), (-2, -2)); assert_eq!((-8).div_rem(&-3), ( 2, -2)); assert_eq!(( 1).div_rem( &2), ( 0, 1)); assert_eq!(( 1).div_rem(&-2), ( 0, 1)); assert_eq!((-1).div_rem( &2), ( 0, -1)); assert_eq!((-1).div_rem(&-2), ( 0, -1));
Provided methods
Ceiled integer division.
Examples
assert_eq!(( 8).div_ceil( &3), 3); assert_eq!(( 8).div_ceil(&-3), -2); assert_eq!((-8).div_ceil( &3), -2); assert_eq!((-8).div_ceil(&-3), 3); assert_eq!(( 1).div_ceil( &2), 1); assert_eq!(( 1).div_ceil(&-2), 0); assert_eq!((-1).div_ceil( &2), 0); assert_eq!((-1).div_ceil(&-2), 1);
Greatest Common Divisor (GCD) and Lowest Common Multiple (LCM) together.
Potentially more efficient than calling gcd
and lcm
individually for identical inputs.
Examples
assert_eq!(10.gcd_lcm(&4), (2, 20)); assert_eq!(8.gcd_lcm(&9), (1, 72));
fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self> where
Self: Clone,
[src]
fn extended_gcd(&self, other: &Self) -> ExtendedGcd<Self> where
Self: Clone,
[src]Greatest common divisor and Bézout coefficients.
Examples
fn check<A: Copy + Integer + NumAssign>(a: A, b: A) -> bool { let ExtendedGcd { gcd, x, y, .. } = a.extended_gcd(&b); gcd == x * a + y * b } assert!(check(10isize, 4isize)); assert!(check(8isize, 9isize));
fn extended_gcd_lcm(&self, other: &Self) -> (ExtendedGcd<Self>, Self) where
Self: Clone + Signed,
[src]
fn extended_gcd_lcm(&self, other: &Self) -> (ExtendedGcd<Self>, Self) where
Self: Clone + Signed,
[src]Greatest common divisor, least common multiple, and Bézout coefficients.
fn div_mod_floor(&self, other: &Self) -> (Self, Self)
[src]
fn div_mod_floor(&self, other: &Self) -> (Self, Self)
[src]Simultaneous floored integer division and modulus.
Returns (quotient, remainder)
.
Examples
assert_eq!(( 8).div_mod_floor( &3), ( 2, 2)); assert_eq!(( 8).div_mod_floor(&-3), (-3, -1)); assert_eq!((-8).div_mod_floor( &3), (-3, 1)); assert_eq!((-8).div_mod_floor(&-3), ( 2, -2)); assert_eq!(( 1).div_mod_floor( &2), ( 0, 1)); assert_eq!(( 1).div_mod_floor(&-2), (-1, -1)); assert_eq!((-1).div_mod_floor( &2), (-1, 1)); assert_eq!((-1).div_mod_floor(&-2), ( 0, -1));
fn next_multiple_of(&self, other: &Self) -> Self where
Self: Clone,
[src]
fn next_multiple_of(&self, other: &Self) -> Self where
Self: Clone,
[src]Rounds up to nearest multiple of argument.
Notes
For signed types, a.next_multiple_of(b) = a.prev_multiple_of(b.neg())
.
Examples
assert_eq!(( 16).next_multiple_of(& 8), 16); assert_eq!(( 23).next_multiple_of(& 8), 24); assert_eq!(( 16).next_multiple_of(&-8), 16); assert_eq!(( 23).next_multiple_of(&-8), 16); assert_eq!((-16).next_multiple_of(& 8), -16); assert_eq!((-23).next_multiple_of(& 8), -16); assert_eq!((-16).next_multiple_of(&-8), -16); assert_eq!((-23).next_multiple_of(&-8), -24);
fn prev_multiple_of(&self, other: &Self) -> Self where
Self: Clone,
[src]
fn prev_multiple_of(&self, other: &Self) -> Self where
Self: Clone,
[src]Rounds down to nearest multiple of argument.
Notes
For signed types, a.prev_multiple_of(b) = a.next_multiple_of(b.neg())
.
Examples
assert_eq!(( 16).prev_multiple_of(& 8), 16); assert_eq!(( 23).prev_multiple_of(& 8), 16); assert_eq!(( 16).prev_multiple_of(&-8), 16); assert_eq!(( 23).prev_multiple_of(&-8), 24); assert_eq!((-16).prev_multiple_of(& 8), -16); assert_eq!((-23).prev_multiple_of(& 8), -24); assert_eq!((-16).prev_multiple_of(&-8), -16); assert_eq!((-23).prev_multiple_of(&-8), -16);
Implementations on Foreign Types
Calculates div_floor
and mod_floor
simultaneously
Calculates the Greatest Common Divisor (GCD) of the number and
other
. The result is always positive.
Calculates the Lowest Common Multiple (LCM) of the number and
other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Calculates div_floor
and mod_floor
simultaneously
Calculates the Greatest Common Divisor (GCD) of the number and
other
. The result is always positive.
Calculates the Lowest Common Multiple (LCM) of the number and
other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Calculates div_floor
and mod_floor
simultaneously
Calculates the Greatest Common Divisor (GCD) of the number and
other
. The result is always positive.
Calculates the Lowest Common Multiple (LCM) of the number and
other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Calculates div_floor
and mod_floor
simultaneously
Calculates the Greatest Common Divisor (GCD) of the number and
other
. The result is always positive.
Calculates the Lowest Common Multiple (LCM) of the number and
other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Calculates div_floor
and mod_floor
simultaneously
Calculates the Greatest Common Divisor (GCD) of the number and
other
. The result is always positive.
Calculates the Lowest Common Multiple (LCM) of the number and
other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Calculates div_floor
and mod_floor
simultaneously
Calculates the Greatest Common Divisor (GCD) of the number and
other
. The result is always positive.
Calculates the Lowest Common Multiple (LCM) of the number and
other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Unsigned integer division. Returns the same result as div
(/
).
Unsigned integer modulo operation. Returns the same result as rem
(%
).
Calculates the Greatest Common Divisor (GCD) of the number and other
Calculates the Lowest Common Multiple (LCM) of the number and other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Unsigned integer division. Returns the same result as div
(/
).
Unsigned integer modulo operation. Returns the same result as rem
(%
).
Calculates the Greatest Common Divisor (GCD) of the number and other
Calculates the Lowest Common Multiple (LCM) of the number and other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Unsigned integer division. Returns the same result as div
(/
).
Unsigned integer modulo operation. Returns the same result as rem
(%
).
Calculates the Greatest Common Divisor (GCD) of the number and other
Calculates the Lowest Common Multiple (LCM) of the number and other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Unsigned integer division. Returns the same result as div
(/
).
Unsigned integer modulo operation. Returns the same result as rem
(%
).
Calculates the Greatest Common Divisor (GCD) of the number and other
Calculates the Lowest Common Multiple (LCM) of the number and other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Unsigned integer division. Returns the same result as div
(/
).
Unsigned integer modulo operation. Returns the same result as rem
(%
).
Calculates the Greatest Common Divisor (GCD) of the number and other
Calculates the Lowest Common Multiple (LCM) of the number and other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.
Unsigned integer division. Returns the same result as div
(/
).
Unsigned integer modulo operation. Returns the same result as rem
(%
).
Calculates the Greatest Common Divisor (GCD) of the number and other
Calculates the Lowest Common Multiple (LCM) of the number and other
.
Calculates the Greatest Common Divisor (GCD) and
Lowest Common Multiple (LCM) of the number and other
.
Returns true
if the number is a multiple of other
.
Simultaneous truncated integer division and modulus.