@@ -10,8 +10,8 @@ mod int_to_float {
10
10
return 0 ;
11
11
}
12
12
let n = i. leading_zeros ( ) ;
13
- let a = i << n >> 8 ; // Significant bits, with bit 24 still in tact.
14
- let b = i << n << 24 ; // Insignificant bits, only relevant for rounding.
13
+ let a = ( i << n) >> 8 ; // Significant bits, with bit 24 still in tact.
14
+ let b = ( i << n) << 24 ; // Insignificant bits, only relevant for rounding.
15
15
let m = a + ( ( b - ( b >> 31 & !a) ) >> 31 ) ; // Add one when we need to round up. Break ties to even.
16
16
let e = 157 - n as u32 ; // Exponent plus 127, minus one.
17
17
( e << 23 ) + m // + not |, so the mantissa can overflow into the exponent.
@@ -42,8 +42,8 @@ mod int_to_float {
42
42
return 0 ;
43
43
}
44
44
let n = i. leading_zeros ( ) ;
45
- let a = ( i << n >> 11 ) as u64 ; // Significant bits, with bit 53 still in tact.
46
- let b = ( i << n << 53 ) as u64 ; // Insignificant bits, only relevant for rounding.
45
+ let a = ( ( i << n) >> 11 ) as u64 ; // Significant bits, with bit 53 still in tact.
46
+ let b = ( ( i << n) << 53 ) as u64 ; // Insignificant bits, only relevant for rounding.
47
47
let m = a + ( ( b - ( b >> 63 & !a) ) >> 63 ) ; // Add one when we need to round up. Break ties to even.
48
48
let e = 1085 - n as u64 ; // Exponent plus 1023, minus one.
49
49
( e << 52 ) + m // + not |, so the mantissa can overflow into the exponent.
@@ -53,7 +53,7 @@ mod int_to_float {
53
53
let n = i. leading_zeros ( ) ;
54
54
let y = i. wrapping_shl ( n) ;
55
55
let a = ( y >> 104 ) as u32 ; // Significant bits, with bit 24 still in tact.
56
- let b = ( y >> 72 ) as u32 | ( y << 32 >> 32 != 0 ) as u32 ; // Insignificant bits, only relevant for rounding.
56
+ let b = ( y >> 72 ) as u32 | ( ( y << 32 ) >> 32 != 0 ) as u32 ; // Insignificant bits, only relevant for rounding.
57
57
let m = a + ( ( b - ( b >> 31 & !a) ) >> 31 ) ; // Add one when we need to round up. Break ties to even.
58
58
let e = if i == 0 { 0 } else { 253 - n } ; // Exponent plus 127, minus one, except for zero.
59
59
( e << 23 ) + m // + not |, so the mantissa can overflow into the exponent.
0 commit comments