//! Implements vertical floating-point math operations. #[macro_use] mod abs; #[macro_use] mod consts; #[macro_use] mod cos; #[macro_use] mod exp; #[macro_use] mod powf; #[macro_use] mod ln; #[macro_use] mod mul_add; #[macro_use] mod mul_adde; #[macro_use] mod recpre; #[macro_use] mod rsqrte; #[macro_use] mod sin; #[macro_use] mod sqrt; #[macro_use] mod sqrte; #[macro_use] mod tanh; macro_rules! impl_float_category { ([$elem_ty:ident; $elem_count:expr]: $id:ident, $mask_ty:ident) => { impl $id { #[inline] pub fn is_nan(self) -> $mask_ty { self.ne(self) } #[inline] pub fn is_infinite(self) -> $mask_ty { self.eq(Self::INFINITY) | self.eq(Self::NEG_INFINITY) } #[inline] pub fn is_finite(self) -> $mask_ty { !(self.is_nan() | self.is_infinite()) } } }; }