diff options
| author | Phosphorus15 <steepout@qq.com> | 2019-08-20 12:39:12 +0800 |
|---|---|---|
| committer | Phosphorus15 <steepout@qq.com> | 2019-08-20 12:39:12 +0800 |
| commit | 535efa4afd3bb5a141eae8579f54aa641ccedaa2 (patch) | |
| tree | 8bc50a374bbb64b2dea15141a9cf282692f2e798 /src/libstd | |
| parent | 64e3a10a82e6abad20f4a56750dac4cdd5df19ab (diff) | |
| download | rust-535efa4afd3bb5a141eae8579f54aa641ccedaa2.tar.gz rust-535efa4afd3bb5a141eae8579f54aa641ccedaa2.zip | |
Used `copysign` to avoid unnecessary branches.
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/f32.rs | 10 | ||||
| -rw-r--r-- | src/libstd/f64.rs | 10 |
2 files changed, 2 insertions, 18 deletions
diff --git a/src/libstd/f32.rs b/src/libstd/f32.rs index ba75650fc4c..dcb035993ae 100644 --- a/src/libstd/f32.rs +++ b/src/libstd/f32.rs @@ -910,15 +910,7 @@ impl f32 { pub fn asinh(self) -> f32 { match self { x if x == NEG_INFINITY => NEG_INFINITY, - x if x.is_sign_negative() => { - let v = (x + ((x * x) + 1.0).sqrt()).ln(); - if v.is_sign_negative() { - v - } else { - -v - } - } - x => (x + ((x * x) + 1.0).sqrt()).ln() + x => (x + ((x * x) + 1.0).sqrt()).ln().copysign(self) } } diff --git a/src/libstd/f64.rs b/src/libstd/f64.rs index 62c659739de..076b6340d89 100644 --- a/src/libstd/f64.rs +++ b/src/libstd/f64.rs @@ -833,15 +833,7 @@ impl f64 { pub fn asinh(self) -> f64 { match self { x if x == NEG_INFINITY => NEG_INFINITY, - x if x.is_sign_negative() => { - let v = (x + ((x * x) + 1.0).sqrt()).ln(); - if v.is_sign_negative() { - v - } else { - -v - } - } - x => (x + ((x * x) + 1.0).sqrt()).ln() + x => (x + ((x * x) + 1.0).sqrt()).ln().copysign(self) } } |
