use std::mem::transmute;
use half::{bf16, f16};
#[allow(clippy::unusual_byte_groupings)]
#[allow(unknown_lints)]
#[allow(unnecessary_transmutes)] pub const ZARR_NAN_F64: f64 = unsafe {
transmute::<u64, f64>(0b0_11111111111_1000000000000000000000000000000000000000000000000000)
};
#[allow(clippy::unusual_byte_groupings)]
#[allow(unknown_lints)]
#[allow(unnecessary_transmutes)] pub const ZARR_NAN_F32: f32 =
unsafe { transmute::<u32, f32>(0b0_11111111_10000000000000000000000) };
pub const ZARR_NAN_F16: f16 = f16::NAN;
pub const ZARR_NAN_BF16: bf16 = bf16::NAN;
#[cfg(test)]
mod tests {
use super::*;
#[allow(clippy::unusual_byte_groupings)]
#[test]
fn nan_representations() {
assert_eq!(
bf16::NAN.to_ne_bytes(),
bf16::from_bits(0b0_11111111_1000000).to_ne_bytes()
);
assert_eq!(
f16::NAN.to_ne_bytes(),
f16::from_bits(0b0_11111_1000000000).to_ne_bytes()
);
}
}