1
Fork 0

Improve floating point documentation:

- Refine the "NaN as a special value" top level explanation of f32
- Refine `const NAN` docstring.
- Refine `fn is_sign_positive` and `fn is_sign_negative` docstrings.
- Refine `fn min` and `fn max` docstrings.
- Refine `fn trunc` docstrings.
- Refine `fn powi` docstrings.
- Refine `fn copysign` docstrings.
- Reword `NaN` and `NAN` as plain "NaN", unless they refer to the specific `const NAN`.
- Reword "a number" to `self` in function docstrings to clarify.
- Remove "Returns NAN if the number is NAN" as this is told to be the default behavior in the top explanation.
- Remove "propagating NaNs", as full propagation (preservation of payloads) is not guaranteed.
This commit is contained in:
Pyry Kontio 2022-03-31 00:58:43 +09:00
parent 3e7514670d
commit 3561187221
6 changed files with 126 additions and 64 deletions

View file

@ -30,7 +30,7 @@ pub use core::f64::{
#[cfg(not(test))]
#[cfg_attr(bootstrap, lang = "f64_runtime")]
impl f64 {
/// Returns the largest integer less than or equal to a number.
/// Returns the largest integer less than or equal to `self`.
///
/// # Examples
///
@ -51,7 +51,7 @@ impl f64 {
unsafe { intrinsics::floorf64(self) }
}
/// Returns the smallest integer greater than or equal to a number.
/// Returns the smallest integer greater than or equal to `self`.
///
/// # Examples
///
@ -70,7 +70,7 @@ impl f64 {
unsafe { intrinsics::ceilf64(self) }
}
/// Returns the nearest integer to a number. Round half-way cases away from
/// Returns the nearest integer to `self`. Round half-way cases away from
/// `0.0`.
///
/// # Examples
@ -90,7 +90,8 @@ impl f64 {
unsafe { intrinsics::roundf64(self) }
}
/// Returns the integer part of a number.
/// Returns the integer part of `self`.
/// This means that non-integer numbers are always truncated towards zero.
///
/// # Examples
///
@ -111,7 +112,7 @@ impl f64 {
unsafe { intrinsics::truncf64(self) }
}
/// Returns the fractional part of a number.
/// Returns the fractional part of `self`.
///
/// # Examples
///
@ -132,8 +133,7 @@ impl f64 {
self - self.trunc()
}
/// Computes the absolute value of `self`. Returns `NAN` if the
/// number is `NAN`.
/// Computes the absolute value of `self`.
///
/// # Examples
///
@ -161,7 +161,7 @@ impl f64 {
///
/// - `1.0` if the number is positive, `+0.0` or `INFINITY`
/// - `-1.0` if the number is negative, `-0.0` or `NEG_INFINITY`
/// - `NAN` if the number is `NAN`
/// - NaN if the number is NaN
///
/// # Examples
///
@ -185,8 +185,10 @@ impl f64 {
/// `sign`.
///
/// Equal to `self` if the sign of `self` and `sign` are the same, otherwise
/// equal to `-self`. If `self` is a `NAN`, then a `NAN` with the sign of
/// `sign` is returned.
/// equal to `-self`. If `self` is a NaN, then a NaN with the sign bit of
/// `sign` is returned. Note, however, that conserving the sign bit on NaN
/// across arithmetical operations is not generally guaranteed.
/// See [explanation of NaN as a special value](primitive@f32) for more info.
///
/// # Examples
///
@ -299,7 +301,9 @@ impl f64 {
/// Raises a number to an integer power.
///
/// Using this function is generally faster than using `powf`
/// Using this function is generally faster than using `powf`.
/// It might have different sequence of rounding operations than `powf`,
/// so the results are not guaranteed to agree.
///
/// # Examples
///