@@ -22,7 +22,7 @@ use crate::common::*;
2222#[ cfg( not( integer128) ) ]
2323use crate :: d2s_intrinsics:: * ;
2424
25- pub static DOUBLE_POW5_INV_SPLIT2 : [ ( u64 , u64 ) ; 13 ] = [
25+ pub static DOUBLE_POW5_INV_SPLIT2 : [ ( u64 , u64 ) ; 15 ] = [
2626 ( 1 , 2305843009213693952 ) ,
2727 ( 5955668970331000884 , 1784059615882449851 ) ,
2828 ( 8982663654677661702 , 1380349269358112757 ) ,
@@ -36,6 +36,8 @@ pub static DOUBLE_POW5_INV_SPLIT2: [(u64, u64); 13] = [
3636 ( 12533209867169019542 , 1418129833677084982 ) ,
3737 ( 5577825024675947042 , 2194449627517475473 ) ,
3838 ( 11006974540203867551 , 1697873161311732311 ) ,
39+ ( 10313493231639821582 , 1313665730009899186 ) ,
40+ ( 12701016819766672773 , 2032799256770390445 ) ,
3941] ;
4042
4143pub static POW5_INV_OFFSETS : [ u32 ; 19 ] = [
@@ -112,7 +114,7 @@ pub unsafe fn compute_pow5(i: u32) -> (u64, u64) {
112114 let b0 = m as u128 * mul. 0 as u128 ;
113115 let b2 = m as u128 * mul. 1 as u128 ;
114116 let delta = pow5bits ( i as i32 ) - pow5bits ( base2 as i32 ) ;
115- debug_assert ! ( base < POW5_OFFSETS . len( ) as u32 ) ;
117+ debug_assert ! ( i / 16 < POW5_OFFSETS . len( ) as u32 ) ;
116118 let shifted_sum = ( b0 >> delta)
117119 + ( b2 << ( 64 - delta) )
118120 + ( ( * POW5_OFFSETS . get_unchecked ( ( i / 16 ) as usize ) >> ( ( i % 16 ) << 1 ) ) & 3 ) as u128 ;
@@ -165,7 +167,7 @@ pub unsafe fn compute_pow5(i: u32) -> (u64, u64) {
165167 }
166168 // high1 | sum | low0
167169 let delta = pow5bits ( i as i32 ) - pow5bits ( base2 as i32 ) ;
168- debug_assert ! ( base < POW5_OFFSETS . len( ) as u32 ) ;
170+ debug_assert ! ( i / 16 < POW5_OFFSETS . len( ) as u32 ) ;
169171 (
170172 shiftright128 ( low0, sum, delta as u32 )
171173 + ( ( * POW5_OFFSETS . get_unchecked ( ( i / 16 ) as usize ) >> ( ( i % 16 ) << 1 ) ) & 3 ) as u64 ,
0 commit comments