diff options
Diffstat (limited to 'src/math/copysign.c')
-rw-r--r-- | src/math/copysign.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/src/math/copysign.c b/src/math/copysign.c new file mode 100644 index 00000000..038b8b4c --- /dev/null +++ b/src/math/copysign.c @@ -0,0 +1,11 @@ +#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; +} |