github.com/afumu/libc@v0.0.6/musl/src/math/copysign.c (about) 1 #include "libm.h" 2 3 double copysign(double x, double y) { 4 union {double f; uint64_t i;} ux={x}, uy={y}; 5 ux.i &= -1ULL/2; 6 ux.i |= uy.i & 1ULL<<63; 7 return ux.f; 8 }