assembly optimizations for fmod/remainder functions
[musl] / src / math / acosf.c
index dd3bba2..945347c 100644 (file)
@@ -19,7 +19,7 @@ static const float
 one = 1.0000000000e+00, /* 0x3F800000 */
 pi  = 3.1415925026e+00, /* 0x40490fda */
 pio2_hi = 1.5707962513e+00; /* 0x3fc90fda */
-static volatile float
+static const volatile float
 pio2_lo = 7.5497894159e-08; /* 0x33a22168 */
 static const float
 pS0 =  1.6666586697e-01,
@@ -36,8 +36,8 @@ float acosf(float x)
        ix = hx & 0x7fffffff;
        if (ix >= 0x3f800000) {  /* |x| >= 1 */
                if (ix == 0x3f800000) {  /* |x| == 1 */
-                       if(hx>0) return 0.0;  /* acos(1) = 0 */
-                       return pi + (float)2.0*pio2_lo;  /* acos(-1)= pi */
+                       if (hx > 0) return 0.0f;  /* acos(1) = 0 */
+                       return pi + 2.0f*pio2_lo;  /* acos(-1)= pi */
                }
                return (x-x)/(x-x);  /* acos(|x|>1) is NaN */
        }
@@ -50,17 +50,17 @@ float acosf(float x)
                r = p/q;
                return pio2_hi - (x - (pio2_lo-x*r));
        } else if (hx < 0) {     /* x < -0.5 */
-               z = (one+x)*(float)0.5;
+               z = (one+x)*0.5f;
                p = z*(pS0+z*(pS1+z*pS2));
                q = one+z*qS1;
                s = sqrtf(z);
                r = p/q;
                w = r*s-pio2_lo;
-               return pi - (float)2.0*(s+w);
+               return pi - 2.0f*(s+w);
        } else {                 /* x > 0.5 */
                int32_t idf;
 
-               z = (one-x)*(float)0.5;
+               z = (one-x)*0.5f;
                s = sqrtf(z);
                df = s;
                GET_FLOAT_WORD(idf,df);
@@ -70,6 +70,6 @@ float acosf(float x)
                q = one+z*qS1;
                r = p/q;
                w = r*s+c;
-               return (float)2.0*(df+w);
+               return 2.0f*(df+w);
        }
 }