Trait num::integer::Integer[src]
pub trait Integer: Num + PartialOrd + Div<Self, Self> + Rem<Self, Self> {
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_even(&self) -> bool;
fn is_odd(&self) -> bool;
fn div_rem(&self, other: &Self) -> (Self, Self) { ... }
fn div_mod_floor(&self, other: &Self) -> (Self, Self) { ... }
}
Required Methods
fn div_floor(&self, other: &Self) -> Self
Floored integer division
Examples
extern crate num; fn main() { use num::Integer; assert!(( 8i).div_floor(& 3) == 2); assert!(( 8i).div_floor(&-3) == -3); assert!((-8i).div_floor(& 3) == -3); assert!((-8i).div_floor(&-3) == 2); assert!(( 1i).div_floor(& 2) == 0); assert!(( 1i).div_floor(&-2) == -1); assert!((-1i).div_floor(& 2) == -1); assert!((-1i).div_floor(&-2) == 0); }assert!(( 8i).div_floor(& 3) == 2); assert!(( 8i).div_floor(&-3) == -3); assert!((-8i).div_floor(& 3) == -3); assert!((-8i).div_floor(&-3) == 2); assert!(( 1i).div_floor(& 2) == 0); assert!(( 1i).div_floor(&-2) == -1); assert!((-1i).div_floor(& 2) == -1); assert!((-1i).div_floor(&-2) == 0);
fn mod_floor(&self, other: &Self) -> Self
Floored integer modulo, satisfying:
extern crate num; fn main() { use num::Integer; let n = 1i; let d = 1i; assert!(n.div_floor(&d) * d + n.mod_floor(&d) == n) }assert!(n.div_floor(&d) * d + n.mod_floor(&d) == n)
Examples
extern crate num; fn main() { use num::Integer; assert!(( 8i).mod_floor(& 3) == 2); assert!(( 8i).mod_floor(&-3) == -1); assert!((-8i).mod_floor(& 3) == 1); assert!((-8i).mod_floor(&-3) == -2); assert!(( 1i).mod_floor(& 2) == 1); assert!(( 1i).mod_floor(&-2) == -1); assert!((-1i).mod_floor(& 2) == 1); assert!((-1i).mod_floor(&-2) == -1); }assert!(( 8i).mod_floor(& 3) == 2); assert!(( 8i).mod_floor(&-3) == -1); assert!((-8i).mod_floor(& 3) == 1); assert!((-8i).mod_floor(&-3) == -2); assert!(( 1i).mod_floor(& 2) == 1); assert!(( 1i).mod_floor(&-2) == -1); assert!((-1i).mod_floor(& 2) == 1); assert!((-1i).mod_floor(&-2) == -1);
fn gcd(&self, other: &Self) -> Self
Greatest Common Divisor (GCD)
fn lcm(&self, other: &Self) -> Self
Lowest Common Multiple (LCM)
fn divides(&self, other: &Self) -> bool
Returns true if other divides evenly into self
fn is_even(&self) -> bool
Returns true if the number is even
fn is_odd(&self) -> bool
Returns true if the number is odd
Provided Methods
fn div_rem(&self, other: &Self) -> (Self, Self)
Simultaneous truncated integer division and modulus
fn div_mod_floor(&self, other: &Self) -> (Self, Self)
Simultaneous floored integer division and modulus