From f0fa65a9d5fa7b98834569c721a94a8087726450 Mon Sep 17 00:00:00 2001 From: Lee Bousfield Date: Sat, 8 Jul 2017 17:15:35 -0400 Subject: [PATCH] Fix float NaN pos/neg assumptions --- traits/src/float.rs | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/traits/src/float.rs b/traits/src/float.rs index 757be87..db0d900 100644 --- a/traits/src/float.rs +++ b/traits/src/float.rs @@ -323,8 +323,8 @@ pub trait Float /// ``` fn signum(self) -> Self; - /// Returns `true` if `self` is positive, including `+0.0` and - /// `Float::infinity()`. + /// Returns `true` if `self` is positive, including `+0.0`, + /// `Float::infinity()`, and `f64::NAN` with newer versions of Rust. /// /// ``` /// use num_traits::Float; @@ -337,27 +337,25 @@ pub trait Float /// /// assert!(f.is_sign_positive()); /// assert!(!g.is_sign_positive()); - /// // Requires both tests to determine if is `NaN` - /// assert!(!nan.is_sign_positive() && !nan.is_sign_negative()); + /// assert!(!nan.is_sign_negative()); /// ``` fn is_sign_positive(self) -> bool; - /// Returns `true` if `self` is negative, including `-0.0` and - /// `Float::neg_infinity()`. + /// Returns `true` if `self` is negative, including `-0.0`, + /// `Float::neg_infinity()`, and `-f64::NAN` with newer versions of Rust. /// /// ``` /// use num_traits::Float; /// use std::f64; /// - /// let nan = f64::NAN; + /// let neg_nan: f64 = -f64::NAN; /// /// let f = 7.0; /// let g = -7.0; /// /// assert!(!f.is_sign_negative()); /// assert!(g.is_sign_negative()); - /// // Requires both tests to determine if is `NaN`. - /// assert!(!nan.is_sign_positive() && !nan.is_sign_negative()); + /// assert!(!neg_nan.is_sign_positive()); /// ``` fn is_sign_negative(self) -> bool;