Expand description

DivRound and DivExactAssign, traits for dividing two numbers according to a specified RoundingMode.

div_round

use malachite_base::num::arithmetic::traits::DivRound;
use malachite_base::rounding_modes::RoundingMode;

assert_eq!(10u8.div_round(4, RoundingMode::Down), 2);
assert_eq!(10u16.div_round(4, RoundingMode::Up), 3);
assert_eq!(10u32.div_round(5, RoundingMode::Exact), 2);
assert_eq!(10u64.div_round(3, RoundingMode::Nearest), 3);
assert_eq!(20u128.div_round(3, RoundingMode::Nearest), 7);
assert_eq!(10usize.div_round(4, RoundingMode::Nearest), 2);
assert_eq!(14u8.div_round(4, RoundingMode::Nearest), 4);

assert_eq!((-10i8).div_round(4, RoundingMode::Down), -2);
assert_eq!((-10i16).div_round(4, RoundingMode::Up), -3);
assert_eq!((-10i32).div_round(5, RoundingMode::Exact), -2);
assert_eq!((-10i64).div_round(3, RoundingMode::Nearest), -3);
assert_eq!((-20i128).div_round(3, RoundingMode::Nearest), -7);
assert_eq!((-10isize).div_round(4, RoundingMode::Nearest), -2);
assert_eq!((-14i8).div_round(4, RoundingMode::Nearest), -4);

assert_eq!((-10i16).div_round(-4, RoundingMode::Down), 2);
assert_eq!((-10i32).div_round(-4, RoundingMode::Up), 3);
assert_eq!((-10i64).div_round(-5, RoundingMode::Exact), 2);
assert_eq!((-10i128).div_round(-3, RoundingMode::Nearest), 3);
assert_eq!((-20isize).div_round(-3, RoundingMode::Nearest), 7);
assert_eq!((-10i8).div_round(-4, RoundingMode::Nearest), 2);
assert_eq!((-14i16).div_round(-4, RoundingMode::Nearest), 4);

div_round_assign

use malachite_base::num::arithmetic::traits::DivRoundAssign;
use malachite_base::rounding_modes::RoundingMode;

let mut x = 10u8;
x.div_round_assign(4, RoundingMode::Down);
assert_eq!(x, 2);

let mut x = 10u16;
x.div_round_assign(4, RoundingMode::Up);
assert_eq!(x, 3);

let mut x = 10u32;
x.div_round_assign(5, RoundingMode::Exact);
assert_eq!(x, 2);

let mut x = 10u64;
x.div_round_assign(3, RoundingMode::Nearest);
assert_eq!(x, 3);

let mut x = 20u128;
x.div_round_assign(3, RoundingMode::Nearest);
assert_eq!(x, 7);

let mut x = 10usize;
x.div_round_assign(4, RoundingMode::Nearest);
assert_eq!(x, 2);

let mut x = 14u8;
x.div_round_assign(4, RoundingMode::Nearest);
assert_eq!(x, 4);

let mut x = -10i8;
x.div_round_assign(4, RoundingMode::Down);
assert_eq!(x, -2);

let mut x = -10i16;
x.div_round_assign(4, RoundingMode::Up);
assert_eq!(x, -3);

let mut x = -10i32;
x.div_round_assign(5, RoundingMode::Exact);
assert_eq!(x, -2);

let mut x = -10i64;
x.div_round_assign(3, RoundingMode::Nearest);
assert_eq!(x, -3);

let mut x = -20i128;
x.div_round_assign(3, RoundingMode::Nearest);
assert_eq!(x, -7);

let mut x = -10isize;
x.div_round_assign(4, RoundingMode::Nearest);
assert_eq!(x, -2);

let mut x = -14i8;
x.div_round_assign(4, RoundingMode::Nearest);
assert_eq!(x, -4);

let mut x = -10i16;
x.div_round_assign(-4, RoundingMode::Down);
assert_eq!(x, 2);

let mut x = -10i32;
x.div_round_assign(-4, RoundingMode::Up);
assert_eq!(x, 3);

let mut x = -10i64;
x.div_round_assign(-5, RoundingMode::Exact);
assert_eq!(x, 2);

let mut x = -10i128;
x.div_round_assign(-3, RoundingMode::Nearest);
assert_eq!(x, 3);

let mut x = -20isize;
x.div_round_assign(-3, RoundingMode::Nearest);
assert_eq!(x, 7);

let mut x = -10i8;
x.div_round_assign(-4, RoundingMode::Nearest);
assert_eq!(x, 2);

let mut x = -14i16;
x.div_round_assign(-4, RoundingMode::Nearest);
assert_eq!(x, 4);