[−][src]Crate smallbigint
Two types, Uint
and Int
, like smallvec
for big integers.
Anything that fits in 32 bits stays on the stack. Numbers that
don't fit are stored in a Box<num_bigint::BigUint>
/ Box<num_bigint::BigInt>
.
On 64-bit architectures, by default we use unsafe
to compress
the types to 8 bytes, exploiting pointer alignment. This behavior
is triggered by the unsafe-opt
feature, which is enabled by default.
Implemented traits
Most important numeric traits have been implemented. Here are some that aren't yet; pull requests are welcome!
- Bit operations
num_traits::Num
,num_traits::Signed
,num_traits::Unsigned
,num_integer::Integer
,num_integer::Roots
,std::iter::Product
,std::iter::Sum
,num_traits::pow::Pow
- Other methods implemented directly on
BigInt
,BigUint
- Implement
num_bigint::{ToBigInt, ToBigUint}
There aren't super many unit tests currently, but the code is sufficiently simple that there is not much space where bugs could hide.
Structs
Int | |
IntInner | |
IntIsNegativeError | |
Uint | |
UintInner |