summaryrefslogtreecommitdiff
path: root/absl/random
diff options
context:
space:
mode:
authorGravatar Leonhard Markert <curiousleo@users.noreply.github.com>2021-08-06 15:21:35 +0200
committerGravatar GitHub <noreply@github.com>2021-08-06 09:21:35 -0400
commitab01e0403a40813857a8e580d9cf1580ba0c4139 (patch)
tree4734a3fb6264535802536712c659ec638a52f5c9 /absl/random
parentee0ebdae4a9e789b92f5abbe8573ddeeaead4864 (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/random')
-rw-r--r--absl/random/internal/generate_real.h6
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;