diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-03-26 09:05:52 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-03-26 09:05:52 +0100 |
| commit | 0677eb1eaad5295391ee24974c7e68465a5f2eb3 (patch) | |
| tree | 4a36a21ee1554f466a29bef9a594ca1241b78701 | |
| parent | 95e7a5016607b5e566aa9394e66ec6acad135e33 (diff) | |
| parent | 0bb36a2f90358c5eb647655e9a891d26f9499bec (diff) | |
| download | rust-0677eb1eaad5295391ee24974c7e68465a5f2eb3.tar.gz rust-0677eb1eaad5295391ee24974c7e68465a5f2eb3.zip | |
Rollup merge of #59410 - tbu-:pr_doc_clarifyclamp, r=joshtriplett
Clarify `{Ord,f32,f64}::clamp` docs a little
Explicitly call out when it returns NaN, adhere to the panic doc
guidelines.
| -rw-r--r-- | src/libcore/cmp.rs | 13 | ||||
| -rw-r--r-- | src/libstd/f32.rs | 22 | ||||
| -rw-r--r-- | src/libstd/f64.rs | 21 |
3 files changed, 40 insertions, 16 deletions
diff --git a/src/libcore/cmp.rs b/src/libcore/cmp.rs index ea52b0ea721..807b35e1af1 100644 --- a/src/libcore/cmp.rs +++ b/src/libcore/cmp.rs @@ -568,8 +568,14 @@ pub trait Ord: Eq + PartialOrd<Self> { if self <= other { self } else { other } } - /// Returns max if self is greater than max, and min if self is less than min. - /// Otherwise this will return self. Panics if min > max. + /// Restrict a value to a certain interval. + /// + /// Returns `max` if `self` is greater than `max`, and `min` if `self` is + /// less than `min`. Otherwise this returns `self`. + /// + /// # Panics + /// + /// Panics if `min > max`. /// /// # Examples /// @@ -586,8 +592,7 @@ pub trait Ord: Eq + PartialOrd<Self> { assert!(min <= max); if self < min { min - } - else if self > max { + } else if self > max { max } else { self diff --git a/src/libstd/f32.rs b/src/libstd/f32.rs index 688d9c1aabb..796908b0df9 100644 --- a/src/libstd/f32.rs +++ b/src/libstd/f32.rs @@ -960,17 +960,27 @@ impl f32 { pub fn atanh(self) -> f32 { 0.5 * ((2.0 * self) / (1.0 - self)).ln_1p() } - /// Returns max if self is greater than max, and min if self is less than min. - /// Otherwise this returns self. Panics if min > max, min equals NaN, or max equals NaN. + + /// Restrict a value to a certain interval unless it is NaN. + /// + /// Returns `max` if `self` is greater than `max`, and `min` if `self` is + /// less than `min`. Otherwise this returns `self`. + /// + /// Not that this function returns NaN if the initial value was NaN as + /// well. + /// + /// # Panics + /// + /// Panics if `min > max`, `min` is NaN, or `max` is NaN. /// /// # Examples /// /// ``` /// #![feature(clamp)] - /// assert!((-3.0f32).clamp(-2.0f32, 1.0f32) == -2.0f32); - /// assert!((0.0f32).clamp(-2.0f32, 1.0f32) == 0.0f32); - /// assert!((2.0f32).clamp(-2.0f32, 1.0f32) == 1.0f32); - /// assert!((std::f32::NAN).clamp(-2.0f32, 1.0f32).is_nan()); + /// assert!((-3.0f32).clamp(-2.0, 1.0) == -2.0); + /// assert!((0.0f32).clamp(-2.0, 1.0) == 0.0); + /// assert!((2.0f32).clamp(-2.0, 1.0) == 1.0); + /// assert!((std::f32::NAN).clamp(-2.0, 1.0).is_nan()); /// ``` #[unstable(feature = "clamp", issue = "44095")] #[inline] diff --git a/src/libstd/f64.rs b/src/libstd/f64.rs index b171e1c7ac9..e679a7d2e8c 100644 --- a/src/libstd/f64.rs +++ b/src/libstd/f64.rs @@ -882,17 +882,26 @@ impl f64 { 0.5 * ((2.0 * self) / (1.0 - self)).ln_1p() } - /// Returns max if self is greater than max, and min if self is less than min. - /// Otherwise this returns self. Panics if min > max, min equals NaN, or max equals NaN. + /// Restrict a value to a certain interval unless it is NaN. + /// + /// Returns `max` if `self` is greater than `max`, and `min` if `self` is + /// less than `min`. Otherwise this returns `self`. + /// + /// Not that this function returns NaN if the initial value was NaN as + /// well. + /// + /// # Panics + /// + /// Panics if `min > max`, `min` is NaN, or `max` is NaN. /// /// # Examples /// /// ``` /// #![feature(clamp)] - /// assert!((-3.0f64).clamp(-2.0f64, 1.0f64) == -2.0f64); - /// assert!((0.0f64).clamp(-2.0f64, 1.0f64) == 0.0f64); - /// assert!((2.0f64).clamp(-2.0f64, 1.0f64) == 1.0f64); - /// assert!((std::f64::NAN).clamp(-2.0f64, 1.0f64).is_nan()); + /// assert!((-3.0f64).clamp(-2.0, 1.0) == -2.0); + /// assert!((0.0f64).clamp(-2.0, 1.0) == 0.0); + /// assert!((2.0f64).clamp(-2.0, 1.0) == 1.0); + /// assert!((std::f64::NAN).clamp(-2.0, 1.0).is_nan()); /// ``` #[unstable(feature = "clamp", issue = "44095")] #[inline] |
