1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#if 0 # 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) */ #endif