The rugrat
crate provides arbitrary-precision rational numbers using
the GNU Multiple Precision Arithmetic Library
(GMP). It is one of a group of four crates:
rugint
for arbitrary-precision integers,rugrat
for arbitrary-precision rational numbers,rugflo
for multiple-precision floating-point numbers, andrugcom
for multiple-precision complex numbers.This crate is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See LICENSE-LGPL and LICENSE-GPL for details.
Documentation for this crate is available.
It can also be helpful to refer to the documentation at the GMP page.
The crate provides the
Rational
type, which holds an arbitrary-precision rational number.
```rust extern crate rugrat; use rugrat::Rational;
fn main() { // Create a rational number, -22 / 4 = -11 / 2. let rat = Rational::from((-22, 4)); assert!(rat.numer().toi32() == -11); assert!(*rat.denom() == 2); assert!(rat.tof32() == -5.5); } ```
To use rugrat
in your crate, add extern crate rugrat;
to the crate
root and add rugrat
as a dependency in Cargo.toml
:
toml
[dependencies]
rugrat = "0.1.3"
The rugrat
crate depends on the low-level bindings in the
gmp-mpfr-sys
crate. This
should be transparent on GNU/Linux and macOS, but may need some work
on Windows. See the gmp-mpfr-sys
README
for some details.