Module malachite_q::arithmetic::shl
source · Expand description
Left-shifting a Rational
(multiplying it by a power of 2).
§shl
use malachite_base::num::basic::traits::Zero;
use malachite_q::Rational;
assert_eq!(Rational::ZERO << 10u8, 0);
assert_eq!(Rational::from(123) << 2u16, 492);
assert_eq!((Rational::from_signeds(7, 22) << 2u16).to_string(), "14/11");
assert_eq!(Rational::ZERO << 10i8, 0);
assert_eq!(Rational::from(123) << 2i16, 492);
assert_eq!((Rational::from(123) << -2i16).to_string(), "123/4");
assert_eq!((Rational::from_signeds(7, 22) << 2i16).to_string(), "14/11");
assert_eq!((Rational::from_signeds(22, 7) << -2i16).to_string(), "11/14");
assert_eq!(&Rational::ZERO << 10u8, 0);
assert_eq!(&Rational::from(123) << 2u16, 492);
assert_eq!((&Rational::from_signeds(7, 22) << 2u16).to_string(), "14/11");
assert_eq!(&Rational::ZERO << 10i8, 0);
assert_eq!(&Rational::from(123) << 2i16, 492);
assert_eq!((&Rational::from(123) << -2i16).to_string(), "123/4");
assert_eq!((&Rational::from_signeds(7, 22) << 2i16).to_string(), "14/11");
assert_eq!((&Rational::from_signeds(22, 7) << -2i16).to_string(), "11/14");
§shl_assign
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, 492);
let mut x = Rational::from_signeds(7, 22);
x <<= 2u16;
assert_eq!(x.to_string(), "14/11");
let mut x = Rational::ZERO;
x <<= 10i8;
assert_eq!(x, 0);
let mut x = Rational::from(123);
x <<= 2i16;
assert_eq!(x, 492);
let mut x = Rational::from(123);
x <<= -2i16;
assert_eq!(x.to_string(), "123/4");
let mut x = Rational::from_signeds(7, 22);
x <<= 2i16;
assert_eq!(x.to_string(), "14/11");
let mut x = Rational::from_signeds(22, 7);
x <<= -2i16;
assert_eq!(x.to_string(), "11/14");