num-bigint icon indicating copy to clipboard operation
num-bigint copied to clipboard

WIP inline single-digit values

Open cuviper opened this issue 9 months ago • 0 comments

For now, this is implemented as an "inline" crate feature, because the performance tradeoffs are not clear. Some of the benchmarks in the repo are significantly faster, but there are also slowdowns probably due to the extra branching required to check the storage type. But if you want const initializers, you can opt in!

impl BigUint {
    pub const ONE: Self;
    pub const fn new_const(n: u32) -> Self;
}
impl num_traits::ConstOne for BigUint {...}

impl BigInt {
    pub const ONE: Self;
    pub const NEG_ONE: Self;
    pub const fn new_const(n: i32) -> Self;
}
impl num_traits::ConstOne for BigInt {...}

Note: const ZERO was already added in #298, as we didn't need any inline storage for that.

cuviper avatar May 10 '24 22:05 cuviper