A minimal library for representing rational numbers (ratios of integers).
Example
// all rationals are automatically reduced when created, so equality works as following:
let one_half = new;
let two_quarters = new;
assert_eq!;
// you can make more complicated rationals:
let one_half_over_one_quarter = new; // (1/2)/(1/4)
assert_eq!;
// mathematical operations are implemented for integers and rationals:
let one_ninth = new;
assert_eq!;
assert_eq!;
assert_eq!;
// other properties, such as
// inverse
let r = new;
let inverse = r.inverse;
assert_eq!;
assert_eq!;
// mixed fraction
let = r.mixed_fraction;
assert_eq!;
assert_eq!;