Crate ibig[][src]

A big integer library with good performance.

The library implements efficient large integer arithmetic in pure Rust.

The two main integer types are UBig (for unsigned integers) and IBig (for signed integers).

Modular arithmetic is supported by the module modular.

Examples

use ibig::{ibig, modular::ModuloRing, ubig, UBig};

let a = ubig!(12345678);
let b = ubig!(0x10ff);
let c = ibig!(-azz base 36);
let d: UBig = "15033211231241234523452345345787".parse()?;

assert_eq!(c.to_string(), "-14255");
assert_eq!(
    (a * b.pow(10)).in_radix(16).to_string(),
    "1589bda8effbfc495d8d73c83d8b27f94954e"
);
assert_eq!(
    format!("hello {:#x}", d % ubig!(0xabcd1234134132451345)),
    "hello 0x1a7e7c487267d2658a93"
);

let ring = ModuloRing::new(&ubig!(10000));
let x = ring.from(12345);
let y = ring.from(55443);
assert_eq!(format!("{}", x - y), "6902 (mod 10000)");

Modules

error

Error types.

fmt

Formatting helpers.

modular

Modular arithmetic.

ops

Traits for number operations.

rand

Random distributions.

Macros

ibig

Create an IBig value.

ubig

Create a UBig value.

Structs

IBig

Signed big integer.

UBig

Unsigned big integer.