#[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,
];