Expand description

OverflowingSub and OverflowingSubAssign, traits for subtracting two numbers and returning a boolean indicating whether an overflow occurred.

overflowing_sub

use malachite_base::num::arithmetic::traits::OverflowingSquare;

assert_eq!(3u8.overflowing_square(), (9, false));
assert_eq!((-1000i32).overflowing_square(), (1000000, false));
assert_eq!(1000u16.overflowing_square(), (16960, true));

overflowing_sub_assign

use malachite_base::num::arithmetic::traits::OverflowingSubAssign;

let mut x = 456u16;
assert_eq!(x.overflowing_sub_assign(123), false);
assert_eq!(x, 333);

let mut x = 123u16;
assert_eq!(x.overflowing_sub_assign(456), true);
assert_eq!(x, 65203);