diff options
author | Leonhard Markert <curiousleo@users.noreply.github.com> | 2021-08-06 15:21:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-08-06 09:21:35 -0400 |
commit | ab01e0403a40813857a8e580d9cf1580ba0c4139 (patch) | |
tree | 4734a3fb6264535802536712c659ec638a52f5c9 /absl | |
parent | ee0ebdae4a9e789b92f5abbe8573ddeeaead4864 (diff) |
Simplifies the construction of the value returned by GenerateRealFromBits() (#994)
* GenerateRealFromBits: sign is already set
If std::is_same<SignedTag, GeneratePositiveTag>::value then sign is
already set to zero thanks to:
uint_type sign = std::is_same<SignedTag, GenerateNegativeTag>::value
? (static_cast<uint_type>(1) << (kUintBits - 1))
: 0; // <- here
So the conditional is unnecessary.
* Update generate_real.h
Remove extra parenthesis
Co-authored-by: Derek Mauro <761129+derekmauro@users.noreply.github.com>
Diffstat (limited to 'absl')
-rw-r--r-- | absl/random/internal/generate_real.h | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/absl/random/internal/generate_real.h b/absl/random/internal/generate_real.h index 4f62873d..d5fbb44c 100644 --- a/absl/random/internal/generate_real.h +++ b/absl/random/internal/generate_real.h @@ -127,10 +127,8 @@ inline RealType GenerateRealFromBits(uint64_t bits, int exp_bias = 0) { // Construct the 32-bit or 64-bit IEEE 754 floating-point value from // the individual fields: sign, exp, mantissa(bits). - uint_type val = - (std::is_same<SignedTag, GeneratePositiveTag>::value ? 0u : sign) | - (static_cast<uint_type>(exp) << kExp) | - (static_cast<uint_type>(bits) & kMask); + uint_type val = sign | (static_cast<uint_type>(exp) << kExp) | + (static_cast<uint_type>(bits) & kMask); // bit_cast to the output-type real_type result; |