f*::NAN: guarantee that this is a quiet NaN
This commit is contained in:
parent
25a615bf82
commit
da0b9a2b89
4 changed files with 40 additions and 32 deletions
|
|
@ -224,14 +224,16 @@ impl f128 {
|
|||
|
||||
/// Not a Number (NaN).
|
||||
///
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value;
|
||||
/// a plethora of bit patterns are considered to be NaN.
|
||||
/// Furthermore, the standard makes a difference
|
||||
/// between a "signaling" and a "quiet" NaN,
|
||||
/// and allows inspecting its "payload" (the unspecified bits in the bit pattern).
|
||||
/// This constant isn't guaranteed to equal to any specific NaN bitpattern,
|
||||
/// and the stability of its representation over Rust versions
|
||||
/// and target platforms isn't guaranteed.
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value; a plethora of bit patterns are
|
||||
/// considered to be NaN. Furthermore, the standard makes a difference between a "signaling" and
|
||||
/// a "quiet" NaN, and allows inspecting its "payload" (the unspecified bits in the bit pattern)
|
||||
/// and its sign. See the [specification of NaN bit patterns](f32#nan-bit-patterns) for more
|
||||
/// info.
|
||||
///
|
||||
/// This constant is guaranteed to be a quiet NaN (on targets that follow the Rust assumptions
|
||||
/// that the quiet/signaling bit being set to 1 indicates a quiet NaN). Beyond that, nothing is
|
||||
/// guaranteed about the specific bit pattern chosen here: both payload and sign are arbitrary.
|
||||
/// The concrete bit pattern may change across Rust versions and target platforms.
|
||||
#[allow(clippy::eq_op)]
|
||||
#[rustc_diagnostic_item = "f128_nan"]
|
||||
#[unstable(feature = "f128", issue = "116909")]
|
||||
|
|
|
|||
|
|
@ -219,14 +219,16 @@ impl f16 {
|
|||
|
||||
/// Not a Number (NaN).
|
||||
///
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value;
|
||||
/// a plethora of bit patterns are considered to be NaN.
|
||||
/// Furthermore, the standard makes a difference
|
||||
/// between a "signaling" and a "quiet" NaN,
|
||||
/// and allows inspecting its "payload" (the unspecified bits in the bit pattern).
|
||||
/// This constant isn't guaranteed to equal to any specific NaN bitpattern,
|
||||
/// and the stability of its representation over Rust versions
|
||||
/// and target platforms isn't guaranteed.
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value; a plethora of bit patterns are
|
||||
/// considered to be NaN. Furthermore, the standard makes a difference between a "signaling" and
|
||||
/// a "quiet" NaN, and allows inspecting its "payload" (the unspecified bits in the bit pattern)
|
||||
/// and its sign. See the [specification of NaN bit patterns](f32#nan-bit-patterns) for more
|
||||
/// info.
|
||||
///
|
||||
/// This constant is guaranteed to be a quiet NaN (on targets that follow the Rust assumptions
|
||||
/// that the quiet/signaling bit being set to 1 indicates a quiet NaN). Beyond that, nothing is
|
||||
/// guaranteed about the specific bit pattern chosen here: both payload and sign are arbitrary.
|
||||
/// The concrete bit pattern may change across Rust versions and target platforms.
|
||||
#[allow(clippy::eq_op)]
|
||||
#[rustc_diagnostic_item = "f16_nan"]
|
||||
#[unstable(feature = "f16", issue = "116909")]
|
||||
|
|
|
|||
|
|
@ -470,14 +470,16 @@ impl f32 {
|
|||
|
||||
/// Not a Number (NaN).
|
||||
///
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value;
|
||||
/// a plethora of bit patterns are considered to be NaN.
|
||||
/// Furthermore, the standard makes a difference
|
||||
/// between a "signaling" and a "quiet" NaN,
|
||||
/// and allows inspecting its "payload" (the unspecified bits in the bit pattern).
|
||||
/// This constant isn't guaranteed to equal to any specific NaN bitpattern,
|
||||
/// and the stability of its representation over Rust versions
|
||||
/// and target platforms isn't guaranteed.
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value; a plethora of bit patterns are
|
||||
/// considered to be NaN. Furthermore, the standard makes a difference between a "signaling" and
|
||||
/// a "quiet" NaN, and allows inspecting its "payload" (the unspecified bits in the bit pattern)
|
||||
/// and its sign. See the [specification of NaN bit patterns](f32#nan-bit-patterns) for more
|
||||
/// info.
|
||||
///
|
||||
/// This constant is guaranteed to be a quiet NaN (on targets that follow the Rust assumptions
|
||||
/// that the quiet/signaling bit being set to 1 indicates a quiet NaN). Beyond that, nothing is
|
||||
/// guaranteed about the specific bit pattern chosen here: both payload and sign are arbitrary.
|
||||
/// The concrete bit pattern may change across Rust versions and target platforms.
|
||||
#[stable(feature = "assoc_int_consts", since = "1.43.0")]
|
||||
#[rustc_diagnostic_item = "f32_nan"]
|
||||
#[allow(clippy::eq_op)]
|
||||
|
|
|
|||
|
|
@ -469,14 +469,16 @@ impl f64 {
|
|||
|
||||
/// Not a Number (NaN).
|
||||
///
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value;
|
||||
/// a plethora of bit patterns are considered to be NaN.
|
||||
/// Furthermore, the standard makes a difference
|
||||
/// between a "signaling" and a "quiet" NaN,
|
||||
/// and allows inspecting its "payload" (the unspecified bits in the bit pattern).
|
||||
/// This constant isn't guaranteed to equal to any specific NaN bitpattern,
|
||||
/// and the stability of its representation over Rust versions
|
||||
/// and target platforms isn't guaranteed.
|
||||
/// Note that IEEE 754 doesn't define just a single NaN value; a plethora of bit patterns are
|
||||
/// considered to be NaN. Furthermore, the standard makes a difference between a "signaling" and
|
||||
/// a "quiet" NaN, and allows inspecting its "payload" (the unspecified bits in the bit pattern)
|
||||
/// and its sign. See the [specification of NaN bit patterns](f32#nan-bit-patterns) for more
|
||||
/// info.
|
||||
///
|
||||
/// This constant is guaranteed to be a quiet NaN (on targets that follow the Rust assumptions
|
||||
/// that the quiet/signaling bit being set to 1 indicates a quiet NaN). Beyond that, nothing is
|
||||
/// guaranteed about the specific bit pattern chosen here: both payload and sign are arbitrary.
|
||||
/// The concrete bit pattern may change across Rust versions and target platforms.
|
||||
#[rustc_diagnostic_item = "f64_nan"]
|
||||
#[stable(feature = "assoc_int_consts", since = "1.43.0")]
|
||||
#[allow(clippy::eq_op)]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue