use core::mem::transmute;
pub fn designalise_f32(f: f32) -> f32 {
const EXP_MASK: u32 = 0x7F800000;
const QNAN_MASK: u32 = 0x00400000;
const FRACT_MASK: u32 = 0x007FFFFF;
let mut f: u32 = unsafe { transmute(f) };
if f & EXP_MASK == EXP_MASK && f & FRACT_MASK != 0 {
f |= QNAN_MASK;
}
unsafe { transmute(f) }
}
pub fn designalise_f64(f: f64) -> f64 {
const EXP_MASK: u64 = 0x7FF0000000000000;
const QNAN_MASK: u64 = 0x0001000000000000;
const FRACT_MASK: u64 = 0x000FFFFFFFFFFFFF;
let mut f: u64 = unsafe { transmute(f) };
if f & EXP_MASK == EXP_MASK && f & FRACT_MASK != 0 {
f |= QNAN_MASK;
}
unsafe { transmute(f) }
}