#f16 #const-generics #bfloat16

nightly minifloat

Emulate various minifloats with const generics

6 releases

new 0.1.5 May 15, 2024
0.1.4 May 12, 2024

#277 in Math

Download history 242/week @ 2024-05-03 352/week @ 2024-05-10

594 downloads per month

MPL-2.0 license

50KB
1K SLoC

minifloat

Crates.io Documentation

Rust const generic library for minifloats

This crate provides emulation of minifloats up to 16 bits. This is done with two generic structs, F8 and F16, which take up to 8 and 16 bits of storage respectively. Many parameters are configurable, including

  • Exponent width
  • Significand (mantissa) precision
  • (F8-only) Exponent bias
  • (F8-only) NaN encodings: IEEE, FN, or FNUZ

Note that there is always a sign bit, so F8<4, 3> already uses up all 8 bits: 1 sign bit, 4 exponent bits, and 3 significand bits.


lib.rs:

A const generic library for minifloats

This crate provides emulation of minifloats up to 16 bits. This is done with two generic structs, [F8] and [F16], which take up to 8 and 16 bits of storage respectively. Many parameters are configurable, including

  • Exponent width
  • Significand (mantissa) precision
  • ([F8]-only) Exponent bias
  • ([F8]-only) NaN encodings: IEEE, FN, or FNUZ

Note that there is always a sign bit, so [F8<4, 3>] already uses up all 8 bits: 1 sign bit, 4 exponent bits, and 3 significand bits.

No runtime deps