15个版本
0.3.6 | 2022年9月17日 |
---|---|
0.3.5 | 2022年3月12日 |
0.3.4 | 2021年11月3日 |
0.3.2 | 2021年5月3日 |
0.0.0 | 2020年11月20日 |
#84 in 数学
9,151每月下载量
用于 17 个Crates(14个直接使用)
380KB
10K SLoC
ibig
高性能的大整数库。
该库使用纯Rust实现了高效的大整数算术。
两个整数类型是 UBig
(无符号整数)和 IBig
(有符号整数)。
通过模块 modular
支持模运算。
示例
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)");
可选依赖项
std
(默认):用于std::error::Error
。num-traits
(默认):整数特性。rand
(默认):随机数生成。serde
:序列化和反序列化。
基准测试
基准测试 包含了Rust大整数库的快速基准测试。
许可证
许可协议为以下之一
- Apache License,版本2.0(LICENSE-APACHE 或 http://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
贡献
除非你明确声明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证的定义,应按照上述方式双重许可,不附加任何额外条款或条件。
依赖关系
~375–680KB
~12K SLoC