X-Git-Url: http://nsz.repo.hu/git/?a=blobdiff_plain;f=src%2Fmath%2Facosf.c;h=d875f3ef50c3e7a00f1cc09ca0de4b7675239e6f;hb=30df206cb0c66848142898115d301a0d80333d0f;hp=dd3bba29e31cf212c73c7a175d3bc0ca5b1679ee;hpb=b69f695acedd4ce2798ef9ea28d834ceccc789bd;p=musl diff --git a/src/math/acosf.c b/src/math/acosf.c index dd3bba29..d875f3ef 100644 --- a/src/math/acosf.c +++ b/src/math/acosf.c @@ -16,10 +16,9 @@ #include "libm.h" static const float -one = 1.0000000000e+00, /* 0x3F800000 */ -pi = 3.1415925026e+00, /* 0x40490fda */ +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 +35,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 */ } @@ -46,30 +45,30 @@ float acosf(float x) return pio2_hi + pio2_lo; z = x*x; p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = 1.0f+z*qS1; 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 = (1.0f+x)*0.5f; p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = 1.0f+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 = (1.0f-x)*0.5f; s = sqrtf(z); df = s; GET_FLOAT_WORD(idf,df); SET_FLOAT_WORD(df,idf&0xfffff000); c = (z-df*df)/(s+df); p = z*(pS0+z*(pS1+z*pS2)); - q = one+z*qS1; + q = 1.0f+z*qS1; r = p/q; w = r*s+c; - return (float)2.0*(df+w); + return 2.0f*(df+w); } }