2 releases
0.1.1 | Oct 24, 2024 |
---|---|
0.1.0 | Sep 29, 2024 |
#301 in Math
139 downloads per month
Used in 17 crates
(2 directly)
315KB
7.5K
SLoC
IROX-FIXEDMATH
Fixed Precision Math Primitives
Wikipedia's article on Fixed-point arithmetic
All of the fractional components are scaled by the max value of the fractional size.
Works acceptably well:
FixedU32
- Q16.16 -u16
/u16
FixedI32
- Q15.16 -i16
/u16
- Each fractional value represents
1/u16::MAX
~=1.5259e-5
or0.000_015_259
, or about15.3 micro
, and can accurately represent SI-prefixes:milli/1e-3
with no loss of accuracy.
- Each fractional value represents
FixedU64
- Q32.32 -u32
/u32
FixedI64
- Q31.32 -i32
/u32
- Each fractional value represents
1/u32::MAX
~=2.328306e-10
or0.000_000_000_238_306
, or about238.3 pico
, and can accurately represent SI-prefixesmilli/1e-3
,micro/1e-6
, andnano/1e-9
with no loss of accuracy.
- Each fractional value represents
Beta quality/Some known issues:
FixedU128
- Q64.64 -u64
/u64
[1]FixedI128
- Q63.64 -i64
/u64
[1]- Each fractional value represents
1/u64::MAX
] ~=5.4210e-20
or0.000_000_000_000_000_000_054_210
, or about54.2 zepto
, and can accurately represent SI-prefixesmilli/1e-3
,micro/1e-6
,nano/1e-9
,pico/1e-12
,femto/1e-15
, andatto/1e-18
with no loss of accuracy.
- Each fractional value represents
[1]: Multiplication doesn't roll over properly, so FloatExt
aren't supported.
No-STD support:
- Fully No-STD, No-Alloc
Cargo Features:
- None