Least Significant Bits in error (the Greek ε denotes error)
The count of low-order bits of the stored integer that differ from the correctly-rounded result. 0 means the value is exactly correctly rounded (bit-for-bit). A larger number means that many of the bottom bits are wrong; bounded by the type's storage width (≤128 at D38, ≤1024 at D307, ≤4096 at D1232). A deliberate play on LSB. Written LSBε everywhere; LSBe is the plain-ASCII fallback.
The size of one step in the last representable digit. Here, 1 ULP = 10^(-SCALE). "Within 0.5 ULP" of the true value ⇔ correctly rounded ⇔ 0 LSBe.
LSB
Least Significant Bit
The bit of weight 2^0 (= 1) — the smallest possible change to an integer.
MSB
Most Significant Bit
The highest-weight bit.
CR
Correctly Rounded
The result equals the true real value rounded to the storage scale under the active rounding mode. The crate's strict transcendentals are CR (0 LSBe / ≤0.5 ULP).
bit-exact
—
Identical bit pattern on every platform — a guarantee of the integer-only core (no floating point in results).
guard digits
—
Extra working-precision digits carried during a computation and discarded on the final rounding, so the rounding decision is correct.
The compile-time const generic fixing the number of fractional digits. A value is stored as raw × 10^SCALE.
MAX_SCALE
The largest SCALE a width supports = N − 1 for D{N} (e.g. D38 → 37), leaving ≥1 integer digit of headroom.
D18 … D1232
The twelve storage widths; the number is the type's nominal precision in decimal digits. D18=i64, D38=i128, D57+ use wide integers.
limb
One u64 word of a wide integer. A wide value is [u64; N], little-endian.
wide integers
The hand-rolled wide-integer backend for D57+: a value is an array of u64 limbs, little-endian.
no_std
Builds without the standard library (embedded-friendly). The strict, integer-only path is no_std-compatible.
strict / fast / approx
*_strict = correctly-rounded integer path (default). *_approx = integer-only, correctly-rounded, at a caller-chosen working precision. *_fast = the f64-bridge path (~16 digits, platform-dependent, not CR).
Method suffixes: _with(mode) takes an explicit RoundingMode;
_strict / _fast select the integer vs f64-bridge path;
_of is the cross-scale operator family (mul_of, add_of, …)
accepting mixed-width, mixed-SCALE operands.
Standards this project genuinely follows or supports. The crate is
decimal fixed-point — not an IEEE 754 float type — so this is
rounding-convention and serialisation alignment, not format
conformance.