minor fix in __tanl (get sign properly)
authornsz <nsz@port70.net>
Mon, 19 Mar 2012 18:14:32 +0000 (19:14 +0100)
committernsz <nsz@port70.net>
Mon, 19 Mar 2012 18:14:32 +0000 (19:14 +0100)
src/math/__tanl.c

index e39e9df44b5b79cd9713cc49e9bf8b6dab6d8b09..50ba21409444d2735a612e3d4d065fbf535bb96a 100644 (file)
@@ -51,8 +51,7 @@ long double __tanl(long double x, long double y, int iy) {
        int i;
 
        iy = iy == 1 ? -1 : 1;        /* XXX recover original interface */
-       // FIXME: this is wrong, use copysign, signbit or union bithack
-       osign = x >= 0 ? 1.0 : -1.0;  /* XXX slow, probably wrong for -0 */
+       osign = copysignl(1.0, x);
        if (fabsl(x) >= 0.67434) {
                if (x < 0) {
                        x = -x;