decimal-scaled 0.5.0

Const-generic base-10 fixed-point decimals (D18/D38/D76/D153/D307 and the half-width tiers up to D1232) with integer-only transcendentals correctly rounded to within 0.5 ULP — exact at the type's last representable place. Deterministic across every platform; no_std-friendly.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// SPDX-FileCopyrightText: 2026 John Moxley
// SPDX-License-Identifier: MIT OR Apache-2.0

//! Decimal multiplication algorithm family.
//!
//! One algorithm: [`mul_widen_divide`] — widens `a * b` to the next-up work
//! width then divides the product by `10^SCALE` to return to the storage
//! scale, with a value-gated fast path that skips the widen step when the
//! product provably fits the storage width. The per-`(N, SCALE)` choice
//! lives in [`crate::policy::mul`], which delegates *down* to this kernel.
//!
//! [`mul_widen_divide`]: crate::algos::mul::mul_widen_divide::mul_widen_divide

pub(crate) mod mul_native;
pub(crate) mod mul_widen_divide;
pub(crate) mod mul_schoolbook;