1#include "libm.h"
2
3double copysign(double x, double y) {
4    union {
5        double f;
6        uint64_t i;
7    } ux = {x}, uy = {y};
8    ux.i &= -1ULL / 2;
9    ux.i |= uy.i & 1ULL << 63;
10    return ux.f;
11}
12