diff options
| author | Yuki Okushi <jtitor@2k36.org> | 2021-07-12 04:31:59 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-12 04:31:59 +0900 |
| commit | 5541d1ac16547e6bb4aad9a1b38c0b3b8722eebc (patch) | |
| tree | db4d1dbc7338b60fa2c915c2c198cd1a6bc13b4c | |
| parent | a4e7a3c29c43c8087066899ca9b9b00c7289a0d9 (diff) | |
| parent | a853a49425c042ffd2d0d46883537a6fc85dddba (diff) | |
| download | rust-5541d1ac16547e6bb4aad9a1b38c0b3b8722eebc.tar.gz rust-5541d1ac16547e6bb4aad9a1b38c0b3b8722eebc.zip | |
Rollup merge of #86951 - cyberia-ng:fp-negative-zero-sqrt-docs, r=Mark-Simulacrum
[docs] Clarify behaviour of f64 and f32::sqrt when argument is negative zero From IEEE 754 section 6.3: > Except that squareRoot(−0) shall be −0, every numeric squareRoot result shall have a positive sign.
| -rw-r--r-- | library/std/src/f32.rs | 4 | ||||
| -rw-r--r-- | library/std/src/f64.rs | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/library/std/src/f32.rs b/library/std/src/f32.rs index 21bd79611a5..e0cc6ad1d42 100644 --- a/library/std/src/f32.rs +++ b/library/std/src/f32.rs @@ -324,18 +324,20 @@ impl f32 { /// Returns the square root of a number. /// - /// Returns NaN if `self` is a negative number. + /// Returns NaN if `self` is a negative number other than `-0.0`. /// /// # Examples /// /// ``` /// let positive = 4.0_f32; /// let negative = -4.0_f32; + /// let negative_zero = -0.0_f32; /// /// let abs_difference = (positive.sqrt() - 2.0).abs(); /// /// assert!(abs_difference <= f32::EPSILON); /// assert!(negative.sqrt().is_nan()); + /// assert!(negative_zero.sqrt() == negative_zero); /// ``` #[must_use = "method returns a new number and does not mutate the original value"] #[stable(feature = "rust1", since = "1.0.0")] diff --git a/library/std/src/f64.rs b/library/std/src/f64.rs index 8c8cf73741b..7ed65b7dafe 100644 --- a/library/std/src/f64.rs +++ b/library/std/src/f64.rs @@ -324,18 +324,20 @@ impl f64 { /// Returns the square root of a number. /// - /// Returns NaN if `self` is a negative number. + /// Returns NaN if `self` is a negative number other than `-0.0`. /// /// # Examples /// /// ``` /// let positive = 4.0_f64; /// let negative = -4.0_f64; + /// let negative_zero = -0.0_f64; /// /// let abs_difference = (positive.sqrt() - 2.0).abs(); /// /// assert!(abs_difference < 1e-10); /// assert!(negative.sqrt().is_nan()); + /// assert!(negative_zero.sqrt() == negative_zero); /// ``` #[must_use = "method returns a new number and does not mutate the original value"] #[stable(feature = "rust1", since = "1.0.0")] |
