Expand description

Right-shifting a Rational (dividing it by a power of 2).

shr

extern crate malachite_base;

use malachite_base::num::basic::traits::Zero;
use malachite_q::Rational;

assert_eq!(Rational::ZERO >> 10u8, 0);
assert_eq!((Rational::from(123) >> 2u16).to_string(), "123/4");
assert_eq!((Rational::from_signeds(22, 7) >> 2u16).to_string(), "11/14");

assert_eq!(Rational::ZERO >> 10i8, 0);
assert_eq!((Rational::from(123) >> 2i16).to_string(), "123/4");
assert_eq!(Rational::from(123) >> -2i16, 492);
assert_eq!((Rational::from_signeds(22, 7) >> 2i16).to_string(), "11/14");
assert_eq!((Rational::from_signeds(7, 22) >> -2i16).to_string(), "14/11");

assert_eq!(&Rational::ZERO >> 10u8, 0);
assert_eq!((&Rational::from(123) >> 2u16).to_string(), "123/4");
assert_eq!((&Rational::from_signeds(22, 7) >> 2u16).to_string(), "11/14");

assert_eq!(&Rational::ZERO >> 10i8, 0);
assert_eq!((&Rational::from(123) >> 2i16).to_string(), "123/4");
assert_eq!(&Rational::from(123) >> -2i16, 492);
assert_eq!((&Rational::from_signeds(22, 7) >> 2i16).to_string(), "11/14");
assert_eq!((&Rational::from_signeds(7, 22) >> -2i16).to_string(), "14/11");

shr_assign

extern crate malachite_base;

use malachite_base::num::basic::traits::Zero;
use malachite_q::Rational;

let mut x = Rational::ZERO;
x >>= 10u8;
assert_eq!(x, 0);

let mut x = Rational::from(123);
x >>= 2u16;
assert_eq!(x.to_string(), "123/4");

let mut x = Rational::from_signeds(22, 7);
x >>= 2u16;
assert_eq!(x.to_string(), "11/14");

let mut x = Rational::ZERO;
x >>= 10i8;
assert_eq!(x, 0);

let mut x = Rational::from(123);
x >>= 2i16;
assert_eq!(x.to_string(), "123/4");

let mut x = Rational::from(123);
x >>= -2i16;
assert_eq!(x, 492);

let mut x = Rational::from_signeds(22, 7);
x >>= 2i16;
assert_eq!(x.to_string(), "11/14");

let mut x = Rational::from_signeds(7, 22);
x >>= -2i16;
assert_eq!(x.to_string(), "14/11");