2 releases
0.1.1 | Oct 6, 2024 |
---|---|
0.1.0 | Oct 6, 2024 |
#96 in Science
4,139 downloads per month
Used in ebcandle-core
91KB
2K
SLoC
float8
: 8-bit floating point types for Rust
This crate provides 2 types:
F8E4M3
: Sign + 4-bit exponent + 3-bit mantissa. More precise but less dynamic range.F8E5M2
: Sign + 5-bit exponent + 2-bit mantissa. Less precise but more dynamic range (same exponent asf16
).
Generally, this crate is modelled after the half
crate, so it can be
used alongside and with minimal code changes.
- This crate provides
no_std
support - Requires Rust 1.70 or greater
Optional features
std
- Enable features that depend on the Rust standard library.serde
- Add support for theserde
crate withSerialize
andDeserialize
traits.num-traits
- Implement traits fromnum-traits
such asToPrimitive
,FromPrimitive
,AsPrimitive
,Num
,Float
,FloatCore
, andBounded
.bytemuck
- Implement traits frombytemuck
includingZeroable
andPod
zerocopy
- Implement traits fromzerocopy
includingAsBytes
andFromBytes
rand_distr
- Implement traits fromrand_distr
includingDistribution
and othersrkyv
- Enable zero-copy deserialization withrkyv
.
Resources
- Good introduction: https://en.wikipedia.org/wiki/Minifloat
- Paper: https://arxiv.org/pdf/2209.05433
Dependencies
~0.2–10MB
~165K SLoC