Deleted Added
full compact
k_sin.c (141296) k_sin.c (151620)
1
2/* @(#)k_sin.c 1.3 95/01/18 */
3/*
4 * ====================================================
5 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
6 *
7 * Developed at SunSoft, a Sun Microsystems, Inc. business.
8 * Permission to use, copy, modify, and distribute this
9 * software is freely granted, provided that this notice
10 * is preserved.
11 * ====================================================
12 */
13
14#ifndef lint
1
2/* @(#)k_sin.c 1.3 95/01/18 */
3/*
4 * ====================================================
5 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
6 *
7 * Developed at SunSoft, a Sun Microsystems, Inc. business.
8 * Permission to use, copy, modify, and distribute this
9 * software is freely granted, provided that this notice
10 * is preserved.
11 * ====================================================
12 */
13
14#ifndef lint
15static char rcsid[] = "$FreeBSD: head/lib/msun/src/k_sin.c 141296 2005-02-04 18:26:06Z das $";
15static char rcsid[] = "$FreeBSD: head/lib/msun/src/k_sin.c 151620 2005-10-24 14:08:36Z bde $";
16#endif
17
18/* __kernel_sin( x, y, iy)
19 * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854
20 * Input x is assumed to be bounded by ~pi/4 in magnitude.
21 * Input y is the tail of x.
22 * Input iy indicates whether y is 0. (if iy=0, y assume to be 0).
23 *

--- 30 unchanged lines hidden (view full) ---

54S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
55S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
56S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
57
58double
59__kernel_sin(double x, double y, int iy)
60{
61 double z,r,v;
16#endif
17
18/* __kernel_sin( x, y, iy)
19 * kernel sin function on [-pi/4, pi/4], pi/4 ~ 0.7854
20 * Input x is assumed to be bounded by ~pi/4 in magnitude.
21 * Input y is the tail of x.
22 * Input iy indicates whether y is 0. (if iy=0, y assume to be 0).
23 *

--- 30 unchanged lines hidden (view full) ---

54S4 = 2.75573137070700676789e-06, /* 0x3EC71DE3, 0x57B1FE7D */
55S5 = -2.50507602534068634195e-08, /* 0xBE5AE5E6, 0x8A2B9CEB */
56S6 = 1.58969099521155010221e-10; /* 0x3DE5D93A, 0x5ACFD57C */
57
58double
59__kernel_sin(double x, double y, int iy)
60{
61 double z,r,v;
62 int32_t ix;
63 GET_HIGH_WORD(ix,x);
64 ix &= 0x7fffffff; /* high word of x */
65 if(ix<0x3e400000) /* |x| < 2**-27 */
66 {if((int)x==0) return x;} /* generate inexact */
62
67 z = x*x;
68 v = z*x;
69 r = S2+z*(S3+z*(S4+z*(S5+z*S6)));
70 if(iy==0) return x+v*(S1+z*r);
71 else return x-((z*(half*y-v*r)-y)-v*S1);
72}
63 z = x*x;
64 v = z*x;
65 r = S2+z*(S3+z*(S4+z*(S5+z*S6)));
66 if(iy==0) return x+v*(S1+z*r);
67 else return x-((z*(half*y-v*r)-y)-v*S1);
68}