🔬This is a nightly-only experimental API. (core_private_bignum)
Expand description

Custom arbitrary-precision number (bignum) implementation.

This is designed to avoid the heap allocation at expense of stack memory. The most used bignum type, Big32x40, is limited by 32 × 40 = 1,280 bits and will take at most 160 bytes of stack memory. This is more than enough for round-tripping all possible finite f64 values.

In principle it is possible to have multiple bignum types for different inputs, but we don’t do so to avoid the code bloat. Each bignum is still tracked for the actual usages, so it normally doesn’t matter.

Modules

Structs

  • Big32x40Experimental
    Stack-allocated arbitrary-precision (up to certain limit) integer.

Traits

  • FullOpsExperimental
    Arithmetic operations required by bignums.

Type Definitions

  • Digit32Experimental
    The digit type for Big32x40.