Crate rugrat [] [src]

Arbitrary-precision rational numbers

The rugrat crate provides arbitrary-precision rational numbers using the GNU Multiple Precision Arithmetic Library (GMP). It can be helpful to refer to the documentation at the GMP page.

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.

This crate 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, and
  • rugcom for multiple-precision complex numbers.

Basic use

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

Examples

use rugrat::Rational;
// Create a rational number, -22 / 4 = -11 / 2.
let rat = Rational::from((-22, 4));
assert!(rat.numer().to_i32() == -11);
assert!(*rat.denom() == 2);
assert!(rat.to_f32() == -5.5);

Usage

To use rugrat in your crate, add extern crate rugrat; to the crate root and add rugrat as a dependency in Cargo.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.

Structs

MutNumerDenom

Used to borrow the numerator and denominator of a Rational number mutably.

Rational

An arbitrary-precision rational number.