s_tan.c (cb92d4d58f289f2dc253ec7a03729d87eb5c1378) s_tan.c (8e77cc64315e2d8ae4a60cbd3f160a35a1359550)
1/* @(#)s_tan.c 5.1 93/09/24 */
2/*
3 * ====================================================
4 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5 *
6 * Developed at SunPro, a Sun Microsystems, Inc. business.
7 * Permission to use, copy, modify, and distribute this
8 * software is freely granted, provided that this notice

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

39 * Let trig be any of sin, cos, or tan.
40 * trig(+-INF) is NaN, with signals;
41 * trig(NaN) is that NaN;
42 *
43 * Accuracy:
44 * TRIG(x) returns trig(x) nearly rounded
45 */
46
1/* @(#)s_tan.c 5.1 93/09/24 */
2/*
3 * ====================================================
4 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
5 *
6 * Developed at SunPro, a Sun Microsystems, Inc. business.
7 * Permission to use, copy, modify, and distribute this
8 * software is freely granted, provided that this notice

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

39 * Let trig be any of sin, cos, or tan.
40 * trig(+-INF) is NaN, with signals;
41 * trig(NaN) is that NaN;
42 *
43 * Accuracy:
44 * TRIG(x) returns trig(x) nearly rounded
45 */
46
47#include <float.h>
48
47#include "math.h"
48#include "math_private.h"
49
50double
51tan(double x)
52{
53 double y[2],z=0.0;
54 int32_t n, ix;

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

69
70 /* argument reduction needed */
71 else {
72 n = __ieee754_rem_pio2(x,y);
73 return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
74 -1 -- n odd */
75 }
76}
49#include "math.h"
50#include "math_private.h"
51
52double
53tan(double x)
54{
55 double y[2],z=0.0;
56 int32_t n, ix;

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

71
72 /* argument reduction needed */
73 else {
74 n = __ieee754_rem_pio2(x,y);
75 return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
76 -1 -- n odd */
77 }
78}
79
80#if (LDBL_MANT_DIG == 53)
81__weak_reference(tan, tanl);
82#endif