1use crate::{F16, F24, F32, F40, F48, F56, F64, F8};
2
3#[derive(Copy, Clone, PartialEq, Debug)]
5pub enum PackedFloat {
6 F8(F8),
7 F16(F16),
8 F24(F24),
9 F32(F32),
10 F40(F40),
11 F48(F48),
12 F56(F56),
13 F64(F64),
14}
15
16impl PartialOrd for PackedFloat {
17 fn partial_cmp(&self, other: &Self) -> Option<std::cmp::Ordering> {
18 match (self, other) {
19 (Self::F8(lhs), Self::F8(rhs)) => lhs.partial_cmp(rhs),
20 (Self::F16(lhs), Self::F16(rhs)) => lhs.partial_cmp(rhs),
21 (Self::F24(lhs), Self::F24(rhs)) => lhs.partial_cmp(rhs),
22 (Self::F32(lhs), Self::F32(rhs)) => lhs.partial_cmp(rhs),
23 (Self::F40(lhs), Self::F40(rhs)) => lhs.partial_cmp(rhs),
24 (Self::F48(lhs), Self::F48(rhs)) => lhs.partial_cmp(rhs),
25 (Self::F56(lhs), Self::F56(rhs)) => lhs.partial_cmp(rhs),
26 (Self::F64(lhs), Self::F64(rhs)) => lhs.partial_cmp(rhs),
27 _ => None,
28 }
29 }
30}