Arbitrary-precision rational numbers

The rugint crate provides arbitrary-precision integers using the GNU Multiple Precision Arithmetic Library (GMP). It is one of a group of four crates:

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 the full text of the GNU LGPL and GNU GPL for details.

Basic use

Documentation for this crate is available. It can also be helpful to refer to the documentation of the GMP library.

The crate provides the Rational type, which holds an arbitrary-precision rational number.

Examples

```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 == (-44, 8)); assert!(rat.to_f32() == -5.5); // The numerator and denominator are stored in canonical form. assert!(rat.numer() == -11); assert!(rat.denom() == 2); } ```

Usage

To use rugint in your crate, add extern crate rugrat; to the crate root and add rugrat as a dependency in Cargo.toml:

toml [dependencies] rugrat = "0.2.1"

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 documentation for some details.