1 #include "libm.h" 2 copysign(double x,double y)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 } 9