Multiple-precision complex numbers

The rugcom crate provides multiple-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:

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

Documentation for this crate is available.

It can also be helpful to refer to the documentation at the MPC page.

The crate provides the [Complex] (http://tspiteri.gitlab.io/gmp-mpfr/current/rugcom/struct.Complex.html) type, which holds a multiple-precision complex number.

Examples

```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); } ```

Usage

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.1.3"

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

Optional feature

The rugcom crate has an optional feature random to enable random number generation. The random feature has a build dependency on the rand crate. The feature is enabled by default; to disable it add this to Cargo.toml:

toml [dependencies.rugcom] version = "0.1.3" default-features = false