File tree Expand file tree Collapse file tree 4 files changed +44
-6
lines changed Expand file tree Collapse file tree 4 files changed +44
-6
lines changed Original file line number Diff line number Diff line change @@ -324,6 +324,20 @@ impl f128 {
324324/// 
325325/// The precision of this function is non-deterministic. This means it varies by platform, 
326326/// Rust version, and can even differ within the same execution from one invocation to the next. 
327+ /// 
328+ /// # Examples 
329+ /// 
330+ /// ``` 
331+ /// #![feature(f128)] 
332+ /// # #[cfg(reliable_f128_math)] { 
333+ /// 
334+ /// let x = 2.0_f128; 
335+ /// let abs_difference = (x.powi(2) - (x * x)).abs(); 
336+ /// assert!(abs_difference <= f128::EPSILON); 
337+ /// 
338+ /// assert_eq!(f128::powi(f128::NAN, 0), 1.0); 
339+ /// # } 
340+ /// ``` 
327341#[ inline]  
328342    #[ rustc_allow_incoherent_impl]  
329343    #[ unstable( feature = "f128" ,  issue = "116909" ) ]  
@@ -347,8 +361,10 @@ impl f128 {
347361/// 
348362/// let x = 2.0_f128; 
349363/// let abs_difference = (x.powf(2.0) - (x * x)).abs(); 
350- /// 
351364/// assert!(abs_difference <= f128::EPSILON); 
365+ /// 
366+ /// assert_eq!(f128::powf(1.0, f128::NAN), 1.0); 
367+ /// assert_eq!(f128::powf(f128::NAN, 0.0), 1.0); 
352368/// # } 
353369/// ``` 
354370#[ inline]  
Original file line number Diff line number Diff line change @@ -324,6 +324,20 @@ impl f16 {
324324/// 
325325/// The precision of this function is non-deterministic. This means it varies by platform, 
326326/// Rust version, and can even differ within the same execution from one invocation to the next. 
327+ /// 
328+ /// # Examples 
329+ /// 
330+ /// ``` 
331+ /// #![feature(f16)] 
332+ /// # #[cfg(reliable_f16_math)] { 
333+ /// 
334+ /// let x = 2.0_f16; 
335+ /// let abs_difference = (x.powi(2) - (x * x)).abs(); 
336+ /// assert!(abs_difference <= f16::EPSILON); 
337+ /// 
338+ /// assert_eq!(f16::powi(f16::NAN, 0), 1.0); 
339+ /// # } 
340+ /// ``` 
327341#[ inline]  
328342    #[ rustc_allow_incoherent_impl]  
329343    #[ unstable( feature = "f16" ,  issue = "116909" ) ]  
@@ -347,8 +361,10 @@ impl f16 {
347361/// 
348362/// let x = 2.0_f16; 
349363/// let abs_difference = (x.powf(2.0) - (x * x)).abs(); 
350- /// 
351364/// assert!(abs_difference <= f16::EPSILON); 
365+ /// 
366+ /// assert_eq!(f16::powf(1.0, f16::NAN), 1.0); 
367+ /// assert_eq!(f16::powf(f16::NAN, 0.0), 1.0); 
352368/// # } 
353369/// ``` 
354370#[ inline]  
Original file line number Diff line number Diff line change @@ -306,8 +306,9 @@ impl f32 {
306306/// ``` 
307307/// let x = 2.0_f32; 
308308/// let abs_difference = (x.powi(2) - (x * x)).abs(); 
309- /// 
310309/// assert!(abs_difference <= f32::EPSILON); 
310+ /// 
311+ /// assert_eq!(f32::powi(f32::NAN, 0), 1.0); 
311312/// ``` 
312313#[ rustc_allow_incoherent_impl]  
313314    #[ must_use = "method returns a new number and does not mutate the original value" ]  
@@ -329,8 +330,10 @@ impl f32 {
329330/// ``` 
330331/// let x = 2.0_f32; 
331332/// let abs_difference = (x.powf(2.0) - (x * x)).abs(); 
332- /// 
333333/// assert!(abs_difference <= f32::EPSILON); 
334+ /// 
335+ /// assert_eq!(f32::powf(1.0, f32::NAN), 1.0); 
336+ /// assert_eq!(f32::powf(f32::NAN, 0.0), 1.0); 
334337/// ``` 
335338#[ rustc_allow_incoherent_impl]  
336339    #[ must_use = "method returns a new number and does not mutate the original value" ]  
Original file line number Diff line number Diff line change @@ -306,8 +306,9 @@ impl f64 {
306306/// ``` 
307307/// let x = 2.0_f64; 
308308/// let abs_difference = (x.powi(2) - (x * x)).abs(); 
309+ /// assert!(abs_difference <= f64::EPSILON); 
309310/// 
310- /// assert!(abs_difference < 1e-10 ); 
311+ /// assert_eq!(f64::powi(f64::NAN, 0), 1.0 ); 
311312/// ``` 
312313#[ rustc_allow_incoherent_impl]  
313314    #[ must_use = "method returns a new number and does not mutate the original value" ]  
@@ -329,8 +330,10 @@ impl f64 {
329330/// ``` 
330331/// let x = 2.0_f64; 
331332/// let abs_difference = (x.powf(2.0) - (x * x)).abs(); 
333+ /// assert!(abs_difference <= f64::EPSILON); 
332334/// 
333- /// assert!(abs_difference < 1e-10); 
335+ /// assert_eq!(f64::powf(1.0, f64::NAN), 1.0); 
336+ /// assert_eq!(f64::powf(f64::NAN, 0.0), 1.0); 
334337/// ``` 
335338#[ rustc_allow_incoherent_impl]  
336339    #[ must_use = "method returns a new number and does not mutate the original value" ]  
 
 
   
 
     
   
   
          
    
    
     
    
      
     
     
    You can’t perform that action at this time.
  
 
    
  
    
      
        
     
       
      
     
   
 
    
    
  
 
  
 
     
    
0 commit comments