#integer #big-int #big-integer #numbers

smallbigint

具有小栈表示形式的小数值大整数类型。内部使用 num-bigint。

10 个版本 (3 个稳定版)

1.1.0 2020年12月13日
0.7.0 2020年4月5日
0.6.0 2020年3月29日

#1705数据结构

MIT/Apache

67KB
1.5K SLoC

Smallbigint

Docs.rs link Commitizen friendly

两种类型,UintInt,类似于 smallvec 用于大整数。任何适合 32 位的都保持在栈上。不适合的数字存储在 Box<num_bigint::BigUint> / Box<num_bigint::BigInt>

在 64 位架构上,默认情况下,我们使用 unsafe 将类型压缩到 8 字节,利用指针对齐。这种行为由默认启用的 unsafe-opt 功能触发。

实现的特性

已实现最重要的数值特性。以下是一些尚未实现的特性;欢迎提交拉取请求!

  • 位操作
  • num_traits::Numnum_traits::Signednum_traits::Unsignednum_integer::Integernum_integer::Rootsstd::iter::Productstd::iter::Sumnum_traits::pow::Pow
  • 直接在 BigIntBigUint 上实现的其他方法
  • 实现 num_bigint::{ToBigInt, ToBigUint}

许可证

本项目采用以下任一许可证:

由您选择。

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交供本项目包含的任何贡献,应以上述双重许可方式,不附加任何额外条款或条件。

依赖项

~550KB
~12K SLoC