1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
# define TGSOURCE "copysign.c" #include "_tgmath.h" #include <math.h> #undef copysign TYPE TGFN(copysign)(TYPE x, TYPE y) { if (isnan(x)) { if (signbit(y)) { /* return -NaN; */ } else { /* return NaN; */ } } x = TGFN(fabs)(x); return signbit(y) ? -x : x; } /* STDC(199901) LINK(m) */