File tree Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Expand file tree Collapse file tree 2 files changed +8
-0
lines changed Original file line number Diff line number Diff line change @@ -15,6 +15,8 @@ pub(crate) fn apply_random_float_error<F: rustc_apfloat::Float>(
1515        || matches ! ( ecx. machine. float_rounding_error,  FloatRoundingErrorMode :: None ) 
1616        // relative errors don't do anything to zeros... avoid messing up the sign 
1717        || val. is_zero ( ) 
18+         // The logic below makes no sense if the input is already non-finite. 
19+         || !val. is_finite ( ) 
1820    { 
1921        return  val; 
2022    } 
@@ -54,6 +56,8 @@ pub(crate) fn apply_random_float_error_ulp<F: rustc_apfloat::Float>(
5456        // FIXME: also disturb zeros? That requires a lot more cases in `fixed_float_value` 
5557        // and might make the std test suite quite unhappy. 
5658        || val. is_zero ( ) 
59+         // The logic below makes no sense if the input is already non-finite. 
60+         || !val. is_finite ( ) 
5761    { 
5862        return  val; 
5963    } 
Original file line number Diff line number Diff line change @@ -1052,6 +1052,10 @@ pub fn libm() {
10521052    assert_eq ! ( 42f64 . powf( 0.0 ) ,  1.0 ) ; 
10531053    assert_eq ! ( f32 :: INFINITY . powf( 0.0 ) ,  1.0 ) ; 
10541054    assert_eq ! ( f64 :: INFINITY . powf( 0.0 ) ,  1.0 ) ; 
1055+     assert_eq ! ( f32 :: NEG_INFINITY . powi( 3 ) ,  f32 :: NEG_INFINITY ) ; 
1056+     assert_eq ! ( f32 :: NEG_INFINITY . powi( 2 ) ,  f32 :: INFINITY ) ; 
1057+     assert_eq ! ( f64 :: INFINITY . powi( 3 ) ,  f64 :: INFINITY ) ; 
1058+     assert_eq ! ( f64 :: INFINITY . powi( 2 ) ,  f64 :: INFINITY ) ; 
10551059
10561060    // f*::NAN is a quiet NAN and should return 1 as well. 
10571061    assert_eq ! ( f32 :: NAN . powi( 0 ) ,  1.0 ) ; 
    
 
   
 
     
   
   
          
     
  
    
     
 
    
      
     
 
     
    You can’t perform that action at this time.
  
 
    
  
     
    
      
        
     
 
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments