s_sinf.c (152871) | s_sinf.c (152872) |
---|---|
1/* s_sinf.c -- float version of s_sin.c. 2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. 3 * Optimized by Bruce D. Evans. 4 */ 5 6/* 7 * ==================================================== 8 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 9 * 10 * Developed at SunPro, a Sun Microsystems, Inc. business. 11 * Permission to use, copy, modify, and distribute this 12 * software is freely granted, provided that this notice 13 * is preserved. 14 * ==================================================== 15 */ 16 17#ifndef lint | 1/* s_sinf.c -- float version of s_sin.c. 2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. 3 * Optimized by Bruce D. Evans. 4 */ 5 6/* 7 * ==================================================== 8 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 9 * 10 * Developed at SunPro, a Sun Microsystems, Inc. business. 11 * Permission to use, copy, modify, and distribute this 12 * software is freely granted, provided that this notice 13 * is preserved. 14 * ==================================================== 15 */ 16 17#ifndef lint |
18static char rcsid[] = "$FreeBSD: head/lib/msun/src/s_sinf.c 152871 2005-11-28 05:46:13Z bde $"; | 18static char rcsid[] = "$FreeBSD: head/lib/msun/src/s_sinf.c 152872 2005-11-28 06:15:10Z bde $"; |
19#endif 20 21#include "math.h" 22#define INLINE_KERNEL_COSDF 23#define INLINE_KERNEL_SINDF 24#include "math_private.h" 25#include "k_cosf.c" 26#include "k_sinf.c" --- 21 unchanged lines hidden (view full) --- 48 } 49 if(ix<=0x407b53d1) { /* |x| ~<= 5*pi/4 */ 50 if(ix<=0x4016cbe3) { /* |x| ~<= 3pi/4 */ 51 if(hx>0) 52 return __kernel_cosdf(x - s1pio2); 53 else 54 return -__kernel_cosdf(x + s1pio2); 55 } else | 19#endif 20 21#include "math.h" 22#define INLINE_KERNEL_COSDF 23#define INLINE_KERNEL_SINDF 24#include "math_private.h" 25#include "k_cosf.c" 26#include "k_sinf.c" --- 21 unchanged lines hidden (view full) --- 48 } 49 if(ix<=0x407b53d1) { /* |x| ~<= 5*pi/4 */ 50 if(ix<=0x4016cbe3) { /* |x| ~<= 3pi/4 */ 51 if(hx>0) 52 return __kernel_cosdf(x - s1pio2); 53 else 54 return -__kernel_cosdf(x + s1pio2); 55 } else |
56 return -__kernel_sindf(x + (hx > 0 ? -s2pio2 : s2pio2)); | 56 return __kernel_sindf((hx > 0 ? s2pio2 : -s2pio2) - x); |
57 } 58 if(ix<=0x40e231d5) { /* |x| ~<= 9*pi/4 */ 59 if(ix<=0x40afeddf) { /* |x| ~<= 7*pi/4 */ 60 if(hx>0) 61 return -__kernel_cosdf(x - s3pio2); 62 else 63 return __kernel_cosdf(x + s3pio2); 64 } else --- 4 unchanged lines hidden (view full) --- 69 else if (ix>=0x7f800000) return x-x; 70 71 /* general argument reduction needed */ 72 else { 73 n = __ieee754_rem_pio2f(x,y); 74 switch(n&3) { 75 case 0: return __kernel_sindf((double)y[0]+y[1]); 76 case 1: return __kernel_cosdf((double)y[0]+y[1]); | 57 } 58 if(ix<=0x40e231d5) { /* |x| ~<= 9*pi/4 */ 59 if(ix<=0x40afeddf) { /* |x| ~<= 7*pi/4 */ 60 if(hx>0) 61 return -__kernel_cosdf(x - s3pio2); 62 else 63 return __kernel_cosdf(x + s3pio2); 64 } else --- 4 unchanged lines hidden (view full) --- 69 else if (ix>=0x7f800000) return x-x; 70 71 /* general argument reduction needed */ 72 else { 73 n = __ieee754_rem_pio2f(x,y); 74 switch(n&3) { 75 case 0: return __kernel_sindf((double)y[0]+y[1]); 76 case 1: return __kernel_cosdf((double)y[0]+y[1]); |
77 case 2: return -__kernel_sindf((double)y[0]+y[1]); | 77 case 2: return __kernel_sindf(-(double)y[0]-y[1]); |
78 default: 79 return -__kernel_cosdf((double)y[0]+y[1]); 80 } 81 } 82} | 78 default: 79 return -__kernel_cosdf((double)y[0]+y[1]); 80 } 81 } 82} |