### 15 releases

0.3.6 | Sep 17, 2022 |
---|---|

0.3.5 | Mar 12, 2022 |

0.3.4 | Nov 3, 2021 |

0.3.2 | May 3, 2021 |

0.0.0 | Nov 20, 2020 |

#**70** in Math

**8,471** downloads per month

Used in **17** crates
(14 directly)

**MIT/Apache**

380KB

10K
SLoC

# ibig

A big integer library with good performance.

The library implements efficient large integer arithmetic in pure Rust.

The two integer types are

(for unsigned integers) and `UBig`

(for signed integers).`IBig`

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``(``)``?``;`
`let` e `=` `2` `*` `&`b `+` `1``;`
`let` f `=` a `*` b`.``pow``(``10``)``;`
`assert_eq!``(`e`,` `ubig!``(``0x21ff``)``)``;`
`assert_eq!``(`c`.``to_string``(``)``,` `"`-14255`"``)``;`
`assert_eq!``(`
f`.``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)`"``)``;`

## Optional dependencies

(default): for`std`

.`std``::``error`Error`::`

(default): integral traits.`num-traits`

(default): random number generation.`rand`

: serialization and deserialization.`serde`

## Benchmarks

Benchmarks contains a quick benchmark of Rust big integer libraries.

## License

Licensed under either of

- Apache License, Version 2.0 (LICENSE-APACHE or https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or https://opensource.org/licenses/MIT)

at your option.

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

#### Dependencies

~380–680KB

~12K SLoC