Coverage Report

Created: 2026-03-25 07:07

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/rust/registry/src/index.crates.io-1949cf8c6b5b557f/libm-0.2.16/src/math/modff.rs
Line
Count
Source
1
#[cfg_attr(assert_no_panic, no_panic::no_panic)]
2
0
pub fn modff(x: f32) -> (f32, f32) {
3
    let rv2: f32;
4
0
    let mut u: u32 = x.to_bits();
5
    let mask: u32;
6
0
    let e = (((u >> 23) & 0xff) as i32) - 0x7f;
7
8
    /* no fractional part */
9
0
    if e >= 23 {
10
0
        rv2 = x;
11
0
        if e == 0x80 && (u << 9) != 0 {
12
            /* nan */
13
0
            return (x, rv2);
14
0
        }
15
0
        u &= 0x80000000;
16
0
        return (f32::from_bits(u), rv2);
17
0
    }
18
    /* no integral part */
19
0
    if e < 0 {
20
0
        u &= 0x80000000;
21
0
        rv2 = f32::from_bits(u);
22
0
        return (x, rv2);
23
0
    }
24
25
0
    mask = 0x007fffff >> e;
26
0
    if (u & mask) == 0 {
27
0
        rv2 = x;
28
0
        u &= 0x80000000;
29
0
        return (f32::from_bits(u), rv2);
30
0
    }
31
0
    u &= !mask;
32
0
    rv2 = f32::from_bits(u);
33
0
    return (x - rv2, rv2);
34
0
}