Coverage Report

Created: 2025-11-24 06:32

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/libm-0.2.11/src/math/modf.rs
Line
Count
Source
1
0
pub fn modf(x: f64) -> (f64, f64) {
2
    let rv2: f64;
3
0
    let mut u = x.to_bits();
4
    let mask: u64;
5
0
    let e = ((u >> 52 & 0x7ff) as i32) - 0x3ff;
6
7
    /* no fractional part */
8
0
    if e >= 52 {
9
0
        rv2 = x;
10
0
        if e == 0x400 && (u << 12) != 0 {
11
            /* nan */
12
0
            return (x, rv2);
13
0
        }
14
0
        u &= 1 << 63;
15
0
        return (f64::from_bits(u), rv2);
16
0
    }
17
18
    /* no integral part*/
19
0
    if e < 0 {
20
0
        u &= 1 << 63;
21
0
        rv2 = f64::from_bits(u);
22
0
        return (x, rv2);
23
0
    }
24
25
0
    mask = ((!0) >> 12) >> e;
26
0
    if (u & mask) == 0 {
27
0
        rv2 = x;
28
0
        u &= 1 << 63;
29
0
        return (f64::from_bits(u), rv2);
30
0
    }
31
0
    u &= !mask;
32
0
    rv2 = f64::from_bits(u);
33
0
    return (x - rv2, rv2);
34
0
}