diff options
Diffstat (limited to 'native/fdlibm/s_sin.c')
-rw-r--r-- | native/fdlibm/s_sin.c | 70 |
1 files changed, 8 insertions, 62 deletions
diff --git a/native/fdlibm/s_sin.c b/native/fdlibm/s_sin.c index d31545554..43394e577 100644 --- a/native/fdlibm/s_sin.c +++ b/native/fdlibm/s_sin.c @@ -1,66 +1,16 @@ -/* @(#)s_sin.c 5.1 93/09/24 */ +/* @(#)s_sin.c 1.3 95/01/18 */ /* * ==================================================== * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. * - * Developed at SunPro, a Sun Microsystems, Inc. business. + * Developed at SunSoft, a Sun Microsystems, Inc. business. * Permission to use, copy, modify, and distribute this - * software is freely granted, provided that this notice + * software is freely granted, provided that this notice * is preserved. * ==================================================== */ -/* -FUNCTION - <<sin>>, <<sinf>>, <<cos>>, <<cosf>>---sine or cosine -INDEX -sin -INDEX -sinf -INDEX -cos -INDEX -cosf -ANSI_SYNOPSIS - #include <math.h> - double sin(double <[x]>); - float sinf(float <[x]>); - double cos(double <[x]>); - float cosf(float <[x]>); - -TRAD_SYNOPSIS - #include <math.h> - double sin(<[x]>) - double <[x]>; - float sinf(<[x]>) - float <[x]>; - - double cos(<[x]>) - double <[x]>; - float cosf(<[x]>) - float <[x]>; - -DESCRIPTION - <<sin>> and <<cos>> compute (respectively) the sine and cosine - of the argument <[x]>. Angles are specified in radians. - - <<sinf>> and <<cosf>> are identical, save that they take and - return <<float>> values. - - -RETURNS - The sine or cosine of <[x]> is returned. - -PORTABILITY - <<sin>> and <<cos>> are ANSI C. - <<sinf>> and <<cosf>> are extensions. - -QUICKREF - sin ansi pure - sinf - pure -*/ - /* sin(x) * Return sine function of x. * @@ -70,8 +20,8 @@ QUICKREF * __ieee754_rem_pio2 ... argument reduction routine * * Method. - * Let S,C and T denote the sin, cos and tan respectively on - * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 + * Let S,C and T denote the sin, cos and tan respectively on + * [-PI/4, +PI/4]. Reduce the argument x to y1+y2 = x-k*pi/2 * in [-pi/4 , +pi/4], and let n = k mod 4. * We have * @@ -89,13 +39,11 @@ QUICKREF * trig(NaN) is that NaN; * * Accuracy: - * TRIG(x) returns trig(x) nearly rounded + * TRIG(x) returns trig(x) nearly rounded */ #include "fdlibm.h" -#ifndef _DOUBLE_IS_32BITS - #ifdef __STDC__ double sin(double x) #else @@ -104,10 +52,10 @@ QUICKREF #endif { double y[2],z=0.0; - int32_t n,ix; + int n, ix; /* High word of x. */ - GET_HIGH_WORD(ix,x); + ix = __HI(x); /* |x| ~< pi/4 */ ix &= 0x7fffffff; @@ -128,5 +76,3 @@ QUICKREF } } } - -#endif /* _DOUBLE_IS_32BITS */ |