summaryrefslogtreecommitdiffstats
path: root/floatprops.h
diff options
context:
space:
mode:
authorErik Schnetter <schnetter@gmail.com>2014-06-07 16:02:22 -0400
committerErik Schnetter <schnetter@gmail.com>2014-06-07 16:02:22 -0400
commit4adda2e7e6ab48001a2c70c56fe2939a5a2ddf6a (patch)
treeeb4bcb324407e65be286d7d8e45996824cc91cb1 /floatprops.h
parentd986ee7ec52e34bd5276bd42047f1ed94e27321a (diff)
downloadvecmathlib-4adda2e7e6ab48001a2c70c56fe2939a5a2ddf6a.zip
vecmathlib-4adda2e7e6ab48001a2c70c56fe2939a5a2ddf6a.tar.gz
Correct calculating inverse of a bit pattern (counteract integer promotion)
Diffstat (limited to 'floatprops.h')
-rw-r--r--floatprops.h6
1 files changed, 4 insertions, 2 deletions
diff --git a/floatprops.h b/floatprops.h
index 992f999..f1c39a2 100644
--- a/floatprops.h
+++ b/floatprops.h
@@ -199,7 +199,8 @@ namespace vecmathlib {
static uint_t const signbit_mask = uint_t(1) << (bits-1);
static_assert((mantissa_mask & exponent_mask & signbit_mask) == uint_t(0),
"error in masks");
- static_assert((mantissa_mask | exponent_mask | signbit_mask) == ~uint_t(0),
+ static_assert((mantissa_mask | exponent_mask | signbit_mask) ==
+ uint_t(~uint_t(0)),
"error in masks");
// Re-interpret bit patterns
@@ -260,7 +261,8 @@ namespace vecmathlib {
static uint_t const signbit_mask = uint_t(1) << (bits-1);
static_assert((mantissa_mask & exponent_mask & signbit_mask) == uint_t(0),
"error in masks");
- static_assert((mantissa_mask | exponent_mask | signbit_mask) == ~uint_t(0),
+ static_assert((mantissa_mask | exponent_mask | signbit_mask) ==
+ uint_t(~uint_t(0)),
"error in masks");
// Re-interpret bit patterns
OpenPOWER on IntegriCloud