blob: 226d49975856645ef69413f69f47c8689311c2d4 [file] [log] [blame]
#include "libm.h"
double copysign(double x, double y) {
union {
double f;
uint64_t i;
} ux = {x}, uy = {y};
ux.i &= -1ULL / 2;
ux.i |= uy.i & 1ULL << 63;
return ux.f;
}