#[derive(Copy,Clone,Debug)]
pub struct F64Ord(pub f64);
impl PartialEq for F64Ord {
fn eq(&self, that: &Self) -> bool {
self.cmp(that) == std::cmp::Ordering::Equal
}
}
impl Eq for F64Ord {}
impl Ord for F64Ord {
fn cmp(&self, that: &Self) -> std::cmp::Ordering {
self.0.partial_cmp(&that.0).expect("float is NaN")
}
}
impl PartialOrd for F64Ord {
fn partial_cmp(&self, that: &Self) -> Option<std::cmp::Ordering> {
Some(self.cmp(that))
}
}