Crate rugcom [] [src]

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 can be helpful to refer to the documentation at the MPC 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 Complex type, which holds a multiple-precision complex number.

Examples

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:

[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:

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

Structs

Complex

A multi-precision complex number. The precision has to be set during construction.