1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- /// 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
- }
- }
|