[][src]Trait fraction::Integer

pub trait Integer: Eq + Ord + PartialOrd<Self> + Num {
    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_mod_floor(&self, other: &Self) -> (Self, Self) { ... } }

Required methods

fn div_floor(&self, other: &Self) -> Self

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);

fn mod_floor(&self, other: &Self) -> Self

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);

fn gcd(&self, other: &Self) -> Self

Greatest Common Divisor (GCD).

Examples

assert_eq!(6.gcd(&8), 2);
assert_eq!(7.gcd(&3), 1);

fn lcm(&self, other: &Self) -> Self

Lowest Common Multiple (LCM).

Examples

assert_eq!(7.lcm(&3), 21);
assert_eq!(2.lcm(&4), 4);

fn divides(&self, other: &Self) -> bool

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &Self) -> bool

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);

fn is_even(&self) -> bool

Returns true if the number is even.

Examples

assert_eq!(3.is_even(), false);
assert_eq!(4.is_even(), true);

fn is_odd(&self) -> bool

Returns true if the number is odd.

Examples

assert_eq!(3.is_odd(), true);
assert_eq!(4.is_odd(), false);

fn div_rem(&self, other: &Self) -> (Self, Self)

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));
Loading content...

Provided methods

fn div_mod_floor(&self, other: &Self) -> (Self, Self)

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));
Loading content...

Implementations on Foreign Types

impl Integer for u16[src]

fn div_floor(&self, other: &u16) -> u16[src]

Unsigned integer division. Returns the same result as div (/).

fn mod_floor(&self, other: &u16) -> u16[src]

Unsigned integer modulo operation. Returns the same result as rem (%).

fn gcd(&self, other: &u16) -> u16[src]

Calculates the Greatest Common Divisor (GCD) of the number and other

fn lcm(&self, other: &u16) -> u16[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &u16) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &u16) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

fn div_rem(&self, other: &u16) -> (u16, u16)[src]

Simultaneous truncated integer division and modulus.

fn div_mod_floor(&self, other: &Self) -> (Self, Self)[src]

impl Integer for usize[src]

fn div_floor(&self, other: &usize) -> usize[src]

Unsigned integer division. Returns the same result as div (/).

fn mod_floor(&self, other: &usize) -> usize[src]

Unsigned integer modulo operation. Returns the same result as rem (%).

fn gcd(&self, other: &usize) -> usize[src]

Calculates the Greatest Common Divisor (GCD) of the number and other

fn lcm(&self, other: &usize) -> usize[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &usize) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &usize) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

fn div_rem(&self, other: &usize) -> (usize, usize)[src]

Simultaneous truncated integer division and modulus.

fn div_mod_floor(&self, other: &Self) -> (Self, Self)[src]

impl Integer for i8[src]

fn div_floor(&self, other: &i8) -> i8[src]

Floored integer division

fn mod_floor(&self, other: &i8) -> i8[src]

Floored integer modulo

fn div_mod_floor(&self, other: &i8) -> (i8, i8)[src]

Calculates div_floor and mod_floor simultaneously

fn gcd(&self, other: &i8) -> i8[src]

Calculates the Greatest Common Divisor (GCD) of the number and other. The result is always positive.

fn lcm(&self, other: &i8) -> i8[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &i8) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &i8) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2

fn div_rem(&self, other: &i8) -> (i8, i8)[src]

Simultaneous truncated integer division and modulus.

impl Integer for u32[src]

fn div_floor(&self, other: &u32) -> u32[src]

Unsigned integer division. Returns the same result as div (/).

fn mod_floor(&self, other: &u32) -> u32[src]

Unsigned integer modulo operation. Returns the same result as rem (%).

fn gcd(&self, other: &u32) -> u32[src]

Calculates the Greatest Common Divisor (GCD) of the number and other

fn lcm(&self, other: &u32) -> u32[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &u32) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &u32) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

fn div_rem(&self, other: &u32) -> (u32, u32)[src]

Simultaneous truncated integer division and modulus.

fn div_mod_floor(&self, other: &Self) -> (Self, Self)[src]

impl Integer for u8[src]

fn div_floor(&self, other: &u8) -> u8[src]

Unsigned integer division. Returns the same result as div (/).

fn mod_floor(&self, other: &u8) -> u8[src]

Unsigned integer modulo operation. Returns the same result as rem (%).

fn gcd(&self, other: &u8) -> u8[src]

Calculates the Greatest Common Divisor (GCD) of the number and other

fn lcm(&self, other: &u8) -> u8[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &u8) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &u8) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

fn div_rem(&self, other: &u8) -> (u8, u8)[src]

Simultaneous truncated integer division and modulus.

fn div_mod_floor(&self, other: &Self) -> (Self, Self)[src]

impl Integer for u128[src]

fn div_floor(&self, other: &u128) -> u128[src]

Unsigned integer division. Returns the same result as div (/).

fn mod_floor(&self, other: &u128) -> u128[src]

Unsigned integer modulo operation. Returns the same result as rem (%).

fn gcd(&self, other: &u128) -> u128[src]

Calculates the Greatest Common Divisor (GCD) of the number and other

fn lcm(&self, other: &u128) -> u128[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &u128) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &u128) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

fn div_rem(&self, other: &u128) -> (u128, u128)[src]

Simultaneous truncated integer division and modulus.

fn div_mod_floor(&self, other: &Self) -> (Self, Self)[src]

impl Integer for isize[src]

fn div_floor(&self, other: &isize) -> isize[src]

Floored integer division

fn mod_floor(&self, other: &isize) -> isize[src]

Floored integer modulo

fn div_mod_floor(&self, other: &isize) -> (isize, isize)[src]

Calculates div_floor and mod_floor simultaneously

fn gcd(&self, other: &isize) -> isize[src]

Calculates the Greatest Common Divisor (GCD) of the number and other. The result is always positive.

fn lcm(&self, other: &isize) -> isize[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &isize) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &isize) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2

fn div_rem(&self, other: &isize) -> (isize, isize)[src]

Simultaneous truncated integer division and modulus.

impl Integer for u64[src]

fn div_floor(&self, other: &u64) -> u64[src]

Unsigned integer division. Returns the same result as div (/).

fn mod_floor(&self, other: &u64) -> u64[src]

Unsigned integer modulo operation. Returns the same result as rem (%).

fn gcd(&self, other: &u64) -> u64[src]

Calculates the Greatest Common Divisor (GCD) of the number and other

fn lcm(&self, other: &u64) -> u64[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &u64) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &u64) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

fn div_rem(&self, other: &u64) -> (u64, u64)[src]

Simultaneous truncated integer division and modulus.

fn div_mod_floor(&self, other: &Self) -> (Self, Self)[src]

impl Integer for i16[src]

fn div_floor(&self, other: &i16) -> i16[src]

Floored integer division

fn mod_floor(&self, other: &i16) -> i16[src]

Floored integer modulo

fn div_mod_floor(&self, other: &i16) -> (i16, i16)[src]

Calculates div_floor and mod_floor simultaneously

fn gcd(&self, other: &i16) -> i16[src]

Calculates the Greatest Common Divisor (GCD) of the number and other. The result is always positive.

fn lcm(&self, other: &i16) -> i16[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &i16) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &i16) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2

fn div_rem(&self, other: &i16) -> (i16, i16)[src]

Simultaneous truncated integer division and modulus.

impl Integer for i32[src]

fn div_floor(&self, other: &i32) -> i32[src]

Floored integer division

fn mod_floor(&self, other: &i32) -> i32[src]

Floored integer modulo

fn div_mod_floor(&self, other: &i32) -> (i32, i32)[src]

Calculates div_floor and mod_floor simultaneously

fn gcd(&self, other: &i32) -> i32[src]

Calculates the Greatest Common Divisor (GCD) of the number and other. The result is always positive.

fn lcm(&self, other: &i32) -> i32[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &i32) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &i32) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2

fn div_rem(&self, other: &i32) -> (i32, i32)[src]

Simultaneous truncated integer division and modulus.

impl Integer for i64[src]

fn div_floor(&self, other: &i64) -> i64[src]

Floored integer division

fn mod_floor(&self, other: &i64) -> i64[src]

Floored integer modulo

fn div_mod_floor(&self, other: &i64) -> (i64, i64)[src]

Calculates div_floor and mod_floor simultaneously

fn gcd(&self, other: &i64) -> i64[src]

Calculates the Greatest Common Divisor (GCD) of the number and other. The result is always positive.

fn lcm(&self, other: &i64) -> i64[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &i64) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &i64) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2

fn div_rem(&self, other: &i64) -> (i64, i64)[src]

Simultaneous truncated integer division and modulus.

impl Integer for i128[src]

fn div_floor(&self, other: &i128) -> i128[src]

Floored integer division

fn mod_floor(&self, other: &i128) -> i128[src]

Floored integer modulo

fn div_mod_floor(&self, other: &i128) -> (i128, i128)[src]

Calculates div_floor and mod_floor simultaneously

fn gcd(&self, other: &i128) -> i128[src]

Calculates the Greatest Common Divisor (GCD) of the number and other. The result is always positive.

fn lcm(&self, other: &i128) -> i128[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &i128) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &i128) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2

fn div_rem(&self, other: &i128) -> (i128, i128)[src]

Simultaneous truncated integer division and modulus.

Loading content...

Implementors

impl Integer for BigInt[src]

fn gcd(&self, other: &BigInt) -> BigInt[src]

Calculates the Greatest Common Divisor (GCD) of the number and other.

The result is always positive.

fn lcm(&self, other: &BigInt) -> BigInt[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &BigInt) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &BigInt) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

impl Integer for BigUint[src]

fn gcd(&self, other: &BigUint) -> BigUint[src]

Calculates the Greatest Common Divisor (GCD) of the number and other.

The result is always positive.

fn lcm(&self, other: &BigUint) -> BigUint[src]

Calculates the Lowest Common Multiple (LCM) of the number and other.

fn divides(&self, other: &BigUint) -> bool[src]

Deprecated, use is_multiple_of instead.

fn is_multiple_of(&self, other: &BigUint) -> bool[src]

Returns true if the number is a multiple of other.

fn is_even(&self) -> bool[src]

Returns true if the number is divisible by 2.

fn is_odd(&self) -> bool[src]

Returns true if the number is not divisible by 2.

impl<T, G> Integer for DynaInt<T, G> where
    T: Copy + GenericInteger + Into<G> + TryToConvertFrom<G> + From<u8>,
    G: Clone + GenericInteger
[src]

fn div_mod_floor(&self, other: &Self) -> (Self, Self)[src]

Loading content...