diff options
author | Szabolcs Nagy <nsz@port70.net> | 2013-09-04 17:36:00 +0000 |
---|---|---|
committer | Szabolcs Nagy <nsz@port70.net> | 2013-09-05 11:30:09 +0000 |
commit | 8dba5486288e719ed290cccefcd932ed32756d7c (patch) | |
tree | 7e9cac9140e4c2c54e31cd817e95e135833a0deb /src/math/copysign.c | |
parent | 63b9cc777323488da3474e8bc53e0ac4d3521382 (diff) | |
download | musl-8dba5486288e719ed290cccefcd932ed32756d7c.tar.gz musl-8dba5486288e719ed290cccefcd932ed32756d7c.tar.xz musl-8dba5486288e719ed290cccefcd932ed32756d7c.zip |
math: cosmetic cleanup (use explicit union instead of fshape and dshape)
Diffstat (limited to 'src/math/copysign.c')
-rw-r--r-- | src/math/copysign.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/src/math/copysign.c b/src/math/copysign.c index 038b8b4c..b09331b6 100644 --- a/src/math/copysign.c +++ b/src/math/copysign.c @@ -1,11 +1,8 @@ #include "libm.h" double copysign(double x, double y) { - union dshape ux, uy; - - ux.value = x; - uy.value = y; - ux.bits &= (uint64_t)-1>>1; - ux.bits |= uy.bits & (uint64_t)1<<63; - return ux.value; + union {double f; uint64_t i;} ux={x}, uy={y}; + ux.i &= -1ULL/2; + ux.i |= uy.i & 1ULL<<63; + return ux.f; } |