math: raise invalid flag in ilogb*.c on +-0, +-inf and nan
[musl] / src / math / atan2l.c
index 64ec12e..0fc901c 100644 (file)
@@ -24,19 +24,10 @@ long double atan2l(long double y, long double x)
 }
 #elif (LDBL_MANT_DIG == 64 || LDBL_MANT_DIG == 113) && LDBL_MAX_EXP == 16384
 #include "__invtrigl.h"
-static volatile long double
+static const volatile long double
 tiny = 1.0e-300;
 static const long double
-zero = 0.0;
-/* XXX Work around the fact that gcc truncates long double constants on i386 */
-static volatile double
-pi1 = 3.14159265358979311600e+00, /* 0x1.921fb54442d18p+1  */
-pi2 = 1.22514845490862001043e-16; /* 0x1.1a80000000000p-53 */
-#define pi ((long double)pi1 + pi2)
-#if 0
-static const long double
 pi = 3.14159265358979323846264338327950280e+00L;
-#endif
 
 long double atan2l(long double y, long double x)
 {
@@ -83,8 +74,8 @@ long double atan2l(long double y, long double x)
                        }
                } else {
                        switch(m) {
-                       case 0: return  zero;    /* atan(+...,+INF) */
-                       case 1: return -zero;    /* atan(-...,+INF) */
+                       case 0: return  0.0;     /* atan(+...,+INF) */
+                       case 1: return -0.0;     /* atan(-...,+INF) */
                        case 2: return  pi+tiny; /* atan(+...,-INF) */
                        case 3: return -pi-tiny; /* atan(-...,-INF) */
                        }