#big-integer #values #optimized #type

flexint

Big integer types, optimized for small values

1 unstable release

0.1.0 Apr 13, 2024

#589 in Math

Download history 89/week @ 2024-04-07 91/week @ 2024-04-14

180 downloads per month

MIT license

26KB
568 lines

flexint: Big integer types, optimized for small values

For applications in which numbers are usually small and only occasionally big, this crate's FlexUint and FlexInt may enable better performance than the num-bigint crate's BigUint and BigInt types, which involve unconditional heap allocation for all values regardless of magnitude.

One (admittedly dodgy) benchmark showed a 458% speedup in FlexInt compared to BigInt when adding small values, while only introducing a 39% slowdown for big values.

Cargo features

  • serde: provides implementations of serde::Serialize and serde::Deserialize for FlexUint and FlexInt.

lib.rs:

Big integer types, optimized for small values.

Dependencies

~1.1–1.8MB
~40K SLoC