Coverage Report

Created: 2025-07-01 06:50

/rust/registry/src/index.crates.io-6f17d22bba15001f/num-traits-0.2.19/src/ops/inv.rs
Line
Count
Source (jump to first uncovered line)
1
/// Unary operator for retrieving the multiplicative inverse, or reciprocal, of a value.
2
pub trait Inv {
3
    /// The result after applying the operator.
4
    type Output;
5
6
    /// Returns the multiplicative inverse of `self`.
7
    ///
8
    /// # Examples
9
    ///
10
    /// ```
11
    /// use std::f64::INFINITY;
12
    /// use num_traits::Inv;
13
    ///
14
    /// assert_eq!(7.0.inv() * 7.0, 1.0);
15
    /// assert_eq!((-0.0).inv(), -INFINITY);
16
    /// ```
17
    fn inv(self) -> Self::Output;
18
}
19
20
impl Inv for f32 {
21
    type Output = f32;
22
    #[inline]
23
0
    fn inv(self) -> f32 {
24
0
        1.0 / self
25
0
    }
26
}
27
impl Inv for f64 {
28
    type Output = f64;
29
    #[inline]
30
0
    fn inv(self) -> f64 {
31
0
        1.0 / self
32
0
    }
33
}
34
impl<'a> Inv for &'a f32 {
35
    type Output = f32;
36
    #[inline]
37
0
    fn inv(self) -> f32 {
38
0
        1.0 / *self
39
0
    }
40
}
41
impl<'a> Inv for &'a f64 {
42
    type Output = f64;
43
    #[inline]
44
0
    fn inv(self) -> f64 {
45
0
        1.0 / *self
46
0
    }
47
}