diff --git a/src/lib.rs b/src/lib.rs index e4e6c0f..bdd4355 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -19,8 +19,8 @@ const E_BIAS: u8 = E_STORAGE_MAX - E_MAX; const M_MASK: u8 = M_STORAGE_MAX; const E_MASK: u8 = E_STORAGE_MAX << M_BITS; -#[repr(transparent)] #[derive(Clone, Copy, PartialEq, Eq, PartialOrd, Ord)] +#[repr(transparent)] pub struct F8(u8); impl F8 { diff --git a/src/ops.rs b/src/ops.rs index 49ec2d3..5c2e0dd 100644 --- a/src/ops.rs +++ b/src/ops.rs @@ -42,11 +42,11 @@ impl std::ops::Mul for F8 { type Output = Self; fn mul(self, rhs: Self) -> Self::Output { - let (m1, e1) = self.split_unbias(); - let (m2, e2) = rhs.split_unbias(); if self.0 == 0 || rhs.0 == 0 { return Self(0); } + let (m1, e1) = self.split_unbias(); + let (m2, e2) = rhs.split_unbias(); Self::merge_unbias(m1 as u32 * m2 as u32, e1 as i32 + e2 as i32) } }