@@ -2,7 +2,7 @@ use crate::common::AdjustedMantissa;
22use crate :: float:: Float ;
33
44#[ inline]
5- pub fn compute_float_from_exp_mantissa < F : Float > ( q : i64 , mut w : u64 ) -> AdjustedMantissa {
5+ pub fn compute_float < F : Float > ( q : i64 , mut w : u64 ) -> AdjustedMantissa {
66 let am_zero = AdjustedMantissa :: zero_pow2 ( 0 ) ;
77 let am_inf = AdjustedMantissa :: zero_pow2 ( F :: INFINITE_POWER ) ;
88 let am_error = AdjustedMantissa :: zero_pow2 ( -1 ) ;
@@ -15,7 +15,7 @@ pub fn compute_float_from_exp_mantissa<F: Float>(q: i64, mut w: u64) -> Adjusted
1515 let lz = w. leading_zeros ( ) ;
1616 w <<= lz;
1717 let ( lo, hi) = compute_product_approx ( q, w, F :: MANTISSA_EXPLICIT_BITS + 3 ) ;
18- if lo == 0xFFFFFFFFFFFFFFFF {
18+ if lo == 0xFFFF_FFFF_FFFF_FFFF {
1919 let inside_safe_exponent = ( q >= -27 ) && ( q <= 55 ) ;
2020 if !inside_safe_exponent {
2121 return am_error;
@@ -31,25 +31,24 @@ pub fn compute_float_from_exp_mantissa<F: Float>(q: i64, mut w: u64) -> Adjusted
3131 mantissa >>= -power2 + 1 ;
3232 mantissa += mantissa & 1 ;
3333 mantissa >>= 1 ;
34- power2 = ( mantissa >= ( 1u64 << F :: MANTISSA_EXPLICIT_BITS ) ) as i32 ;
34+ power2 = ( mantissa >= ( 1_u64 << F :: MANTISSA_EXPLICIT_BITS ) ) as i32 ;
3535 return AdjustedMantissa { mantissa, power2 } ;
3636 }
3737 if lo <= 1
3838 && q >= F :: MIN_EXPONENT_ROUND_TO_EVEN as i64
3939 && q <= F :: MAX_EXPONENT_ROUND_TO_EVEN as i64
4040 && mantissa & 3 == 1
41+ && ( mantissa << ( upperbit + 64 - F :: MANTISSA_EXPLICIT_BITS as i32 - 3 ) ) == hi
4142 {
42- if ( mantissa << ( upperbit + 64 - F :: MANTISSA_EXPLICIT_BITS as i32 - 3 ) ) == hi {
43- mantissa &= !1u64 ;
44- }
43+ mantissa &= !1_u64 ;
4544 }
4645 mantissa += mantissa & 1 ;
4746 mantissa >>= 1 ;
48- if mantissa >= ( 2u64 << F :: MANTISSA_EXPLICIT_BITS ) {
49- mantissa = 1u64 << F :: MANTISSA_EXPLICIT_BITS ;
47+ if mantissa >= ( 2_u64 << F :: MANTISSA_EXPLICIT_BITS ) {
48+ mantissa = 1_u64 << F :: MANTISSA_EXPLICIT_BITS ;
5049 power2 += 1 ;
5150 }
52- mantissa &= !( 1u64 << F :: MANTISSA_EXPLICIT_BITS ) ;
51+ mantissa &= !( 1_u64 << F :: MANTISSA_EXPLICIT_BITS ) ;
5352 if power2 >= F :: INFINITE_POWER {
5453 return am_inf;
5554 }
@@ -58,7 +57,7 @@ pub fn compute_float_from_exp_mantissa<F: Float>(q: i64, mut w: u64) -> Adjusted
5857
5958#[ inline]
6059fn power ( q : i32 ) -> i32 {
61- ( q. wrapping_mul ( 152170 + 65536 ) >> 16 ) + 63
60+ ( q. wrapping_mul ( 152_170 + 65536 ) >> 16 ) + 63
6261}
6362
6463#[ inline]
@@ -77,9 +76,9 @@ fn compute_product_approx(q: i64, w: u64, precision: usize) -> (u64, u64) {
7776 debug_assert ! ( precision <= 64 ) ;
7877
7978 let mask = if precision < 64 {
80- 0xFFFFFFFFFFFFFFFFu64 >> precision
79+ 0xFFFF_FFFF_FFFF_FFFF_u64 >> precision
8180 } else {
82- 0xFFFFFFFFFFFFFFFFu64
81+ 0xFFFF_FFFF_FFFF_FFFF_u64
8382 } ;
8483 let index = ( q - SMALLEST_POWER_OF_FIVE as i64 ) as usize ;
8584 let ( lo5, hi5) = unsafe { * POWER_OF_FIVE_128 . get_unchecked ( index) } ;
@@ -98,6 +97,7 @@ const SMALLEST_POWER_OF_FIVE: i32 = -342;
9897const LARGEST_POWER_OF_FIVE : i32 = 308 ;
9998const N_POWERS_OF_FIVE : usize = ( LARGEST_POWER_OF_FIVE - SMALLEST_POWER_OF_FIVE + 1 ) as usize ;
10099
100+ #[ allow( clippy:: unreadable_literal) ]
101101const POWER_OF_FIVE_128 : [ ( u64 , u64 ) ; N_POWERS_OF_FIVE ] = [
102102 ( 0xeef453d6923bd65a , 0x113faa2906a13b3f ) ,
103103 ( 0x9558b4661b6565f8 , 0x4ac7ca59a424c507 ) ,
0 commit comments