Replaced by rug: arbitrary-precision integers, rational, floating-point and complex numbers
Repository Cargo Documentation Download
The rugcom crate provides arbitrary-precision complex numbers using
GNU MPC, a library for the arithmetic of complex numbers
with arbitrarily high precision and correct rounding of the result. It
is one of a group of four crates:
rugint provides arbitrary-precision integers based on
GMP.rugrat provides arbitrary-precision rational number
based on GMP.rugflo provides arbitrary-precision floating-point
numbers based on MPFR.rugcom provides arbitrary-precision complex numbers
based on MPC.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.
Documentation for this crate is available. It can also be helpful to refer to the documentation of the MPC library.
The crate provides the Complex type, which provides an
arbitrary-precision complex number with correct rounding.
```rust extern crate rugint; extern crate rugcom; use rugint::Assign; use rugcom::Complex;
fn main() { // Create complex number with 16 bits of precision. let mut com = Complex::new((16, 16)); // Assign the complex value 1.5 + 3.5i com.assign((1.5, 3.5)); assert!(com.real() == 1.5); assert!(com.imag() == 3.5); } ```
To use rugcom in your crate, add extern crate rugcom; to the crate
root and add rugcom as a dependency in Cargo.toml:
toml
[dependencies]
rugcom = "0.2.0"
The rugcom 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.
The rugcom crate has an optional feature random to enable random
number generation. The random feature introduces a dependency on the
rand crate. The feature is enabled by default; to disable it add
this to Cargo.toml:
toml
[dependencies.rugcom]
version = "0.2.0"
default-features = false