/// Unary operator for retrieving the multiplicative inverse, or reciprocal, of a value. pub trait Inv { /// The result after applying the operator. type Output; /// Returns the multiplicative inverse of `self`. /// /// # Examples /// /// ``` /// use std::f64::INFINITY; /// use num_traits::Inv; /// /// assert_eq!(7.0.inv() * 7.0, 1.0); /// assert_eq!((-0.0).inv(), -INFINITY); /// ``` fn inv(self) -> Self::Output; } impl Inv for f32 { type Output = f32; #[inline] fn inv(self) -> f32 { 1.0 / self } } impl Inv for f64 { type Output = f64; #[inline] fn inv(self) -> f64 { 1.0 / self } } impl<'a> Inv for &'a f32 { type Output = f32; #[inline] fn inv(self) -> f32 { 1.0 / *self } } impl<'a> Inv for &'a f64 { type Output = f64; #[inline] fn inv(self) -> f64 { 1.0 / *self } }