microfloat 0.1.2

8-bit and sub-byte floating point types
Documentation
// @generated by scripts/generate_fixtures.py
#[allow(clippy::excessive_precision)]

pub struct FormatFixture {
    pub rust_type: &'static str,
    pub nan_bits: u8,
    pub infinity_bits: u8,
    pub neg_infinity_bits: u8,
    pub neg_zero_bits: u8,
    pub min_bits: u8,
    pub max_bits: u8,
    pub is_nan: &'static [bool; 256],
    pub is_infinite: &'static [bool; 256],
    pub is_finite: &'static [bool; 256],
    pub is_sign_negative: &'static [bool; 256],
    pub decode_f32_bits: &'static [u32; 256],
    pub conversions: &'static [(f32, u8)],
    pub arithmetic: &'static [(f32, f32, u8, u8, u8, u8, u8)],
    pub unary_methods: &'static [UnaryMethodsFixture],
    pub binary_methods: &'static [BinaryMethodsFixture],
    pub comparisons: &'static [ComparisonFixture],
}

#[derive(Clone, Copy)]
pub struct UnaryMethodsFixture {
    pub input: f32,
    pub neg: u8,
    pub abs: u8,
    pub sign: u8,
    pub floor: u8,
    pub ceil: u8,
    pub trunc: u8,
    pub round_ties_even: u8,
    pub recip: u8,
    pub sqrt: u8,
    pub exp: u8,
    pub exp2: u8,
    pub exp_m1: u8,
    pub ln: u8,
    pub ln_1p: u8,
    pub log2: u8,
    pub log10: u8,
    pub cbrt: u8,
    pub sin: u8,
    pub cos: u8,
    pub tan: u8,
    pub asin: u8,
    pub acos: u8,
    pub atan: u8,
    pub sinh: u8,
    pub cosh: u8,
    pub tanh: u8,
}

#[derive(Clone, Copy)]
pub struct BinaryMethodsFixture {
    pub lhs: f32,
    pub rhs: f32,
    pub copysign: u8,
    pub min: u8,
    pub max: u8,
    pub powf: u8,
    pub hypot: u8,
    pub atan2: u8,
}

#[derive(Clone, Copy)]
pub struct ComparisonFixture {
    pub lhs: f32,
    pub rhs: f32,
    pub lt: bool,
    pub le: bool,
    pub eq: bool,
    pub ne: bool,
    pub ge: bool,
    pub gt: bool,
}

#[path = "generated/float8_e3m4.rs"]
mod FLOAT8E3M4;
pub use FLOAT8E3M4::FIXTURE as FLOAT8E3M4_FIXTURE;

#[path = "generated/float8_e4m3.rs"]
mod FLOAT8E4M3;
pub use FLOAT8E4M3::FIXTURE as FLOAT8E4M3_FIXTURE;

#[path = "generated/float8_e4m3b11fnuz.rs"]
mod FLOAT8E4M3B11FNUZ;
pub use FLOAT8E4M3B11FNUZ::FIXTURE as FLOAT8E4M3B11FNUZ_FIXTURE;

#[path = "generated/float8_e4m3fn.rs"]
mod FLOAT8E4M3FN;
pub use FLOAT8E4M3FN::FIXTURE as FLOAT8E4M3FN_FIXTURE;

#[path = "generated/float8_e4m3fnuz.rs"]
mod FLOAT8E4M3FNUZ;
pub use FLOAT8E4M3FNUZ::FIXTURE as FLOAT8E4M3FNUZ_FIXTURE;

#[path = "generated/float8_e5m2.rs"]
mod FLOAT8E5M2;
pub use FLOAT8E5M2::FIXTURE as FLOAT8E5M2_FIXTURE;

#[path = "generated/float8_e5m2fnuz.rs"]
mod FLOAT8E5M2FNUZ;
pub use FLOAT8E5M2FNUZ::FIXTURE as FLOAT8E5M2FNUZ_FIXTURE;

#[path = "generated/float8_e8m0fnu.rs"]
mod FLOAT8E8M0FNU;
pub use FLOAT8E8M0FNU::FIXTURE as FLOAT8E8M0FNU_FIXTURE;

#[path = "generated/float4_e2m1fn.rs"]
mod FLOAT4E2M1FN;
pub use FLOAT4E2M1FN::FIXTURE as FLOAT4E2M1FN_FIXTURE;

#[path = "generated/float6_e2m3fn.rs"]
mod FLOAT6E2M3FN;
pub use FLOAT6E2M3FN::FIXTURE as FLOAT6E2M3FN_FIXTURE;

#[path = "generated/float6_e3m2fn.rs"]
mod FLOAT6E3M2FN;
pub use FLOAT6E3M2FN::FIXTURE as FLOAT6E3M2FN_FIXTURE;

pub const ALL_FIXTURES: [&FormatFixture; 11] = [
    &FLOAT8E3M4_FIXTURE,
    &FLOAT8E4M3_FIXTURE,
    &FLOAT8E4M3B11FNUZ_FIXTURE,
    &FLOAT8E4M3FN_FIXTURE,
    &FLOAT8E4M3FNUZ_FIXTURE,
    &FLOAT8E5M2_FIXTURE,
    &FLOAT8E5M2FNUZ_FIXTURE,
    &FLOAT8E8M0FNU_FIXTURE,
    &FLOAT4E2M1FN_FIXTURE,
    &FLOAT6E2M3FN_FIXTURE,
    &FLOAT6E3M2FN_FIXTURE,
];