use std::num::FpCategory;
pub trait ClassificationOps {
fn is_nan(self) -> bool;
fn is_infinite(self) -> bool;
fn is_finite(self) -> bool;
fn is_subnormal(self) -> bool;
fn is_normal(self) -> bool;
fn classify(self) -> FpCategory;
}
macro_rules! impl_classification {
($($t:ty),*) => {
$(impl ClassificationOps for $t {
#[inline] fn is_nan(self) -> bool { self.is_nan() }
#[inline] fn is_infinite(self) -> bool { self.is_infinite() }
#[inline] fn is_finite(self) -> bool { self.is_finite() }
#[inline] fn is_subnormal(self) -> bool { self.is_subnormal() }
#[inline] fn is_normal(self) -> bool { self.is_normal() }
#[inline] fn classify(self) -> FpCategory { self.classify() }
})*
};
}
impl_classification!(f32, f64);