rework langinfo code for ABI compat and for use by time code
[musl] / src / math / __sinl.c
index 71851d8..068adff 100644 (file)
  * See __cosl.c for more details about the polynomial.
  */
 
-static const double half = 0.5;
-
-// FIXME
-/* Long double constants are slow on these arches, and broken on i386. */
-static const volatile double
-S1hi = -0.16666666666666666,      /* -0x15555555555555.0p-55 */
-S1lo = -9.2563760475949941e-18;   /* -0x15580000000000.0p-109 */
-#define S1      ((long double)S1hi + S1lo)
-
-#if 0
 static const long double
 S1 = -0.166666666666666666671L;   /* -0xaaaaaaaaaaaaaaab.0p-66 */
-#endif
 
 static const double
 S2 =  0.0083333333333333332,      /*  0x11111111111111.0p-59 */
@@ -56,6 +45,6 @@ long double __sinl(long double x, long double y, int iy)
        r = S2+z*(S3+z*(S4+z*(S5+z*(S6+z*(S7+z*S8)))));
        if (iy == 0)
                return x+v*(S1+z*r);
-       return x-((z*(half*y-v*r)-y)-v*S1);
+       return x-((z*(0.5*y-v*r)-y)-v*S1);
 }
 #endif