Module core::num::bignum
[−]
[src]
core_private_bignum
): internal routines only exposed for testing
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.
Reexports
use prelude::v1::*; |
use mem; |
use intrinsics; |
Modules
tests | [Unstable] |
Structs
Big32x40 |
[Unstable] Stack-allocated arbitrary-precision (up to certain limit) integer. |
Constants
SMALL_POW5 |
[Unstable] Table of powers of 5 representable in digits. Specifically, the largest {u8, u16, u32} value
that's a power of five, plus the corresponding exponent. Used in |
Traits
FullOps |
[Unstable] Arithmetic operations required by bignums. |
Type Definitions
Digit32 |
[Unstable] The digit type for |