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::{modular::ModuloRing, prelude::*}; 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
modular | Modular arithmetic. |
prelude | Reexports the most useful names. |
Macros
ibig | Create an |
ubig | Create a |
Structs
IBig | Signed big integer. |
InRadix | Representation of a |
OutOfBoundsError | Number out of bounds. |
UBig | Unsigned big integer. |
UniformIBig | Uniform |
UniformUBig | Uniform |
Enums
ParseError | Parse error when parsing |
Traits
Abs | Absolute value. |
AndNot | Bitwise AND NOT operation. |
DivEuclid | Compute Euclidean quotient. |
DivRem | Compute quotient and remainder at the same time. |
DivRemEuclid | Compute Euclidean quotient and remainder at the same time. |
NextPowerOfTwo | Next power of two. |
RemEuclid | Compute Euclidean remainder. |
UnsignedAbs | Unsigned absolute value. |