#include "trigl.c"
#endif
#endif
+#include "isnanl.h"
/*
* ====================================================
long double z, r, v, w, s, u, u1;
int flag, sign;
- sign = 1;
- if (x < 0)
- {
- x = -x;
- y = -y;
- sign = -1;
- }
+ sign = 1;
+ if (x < 0)
+ {
+ x = -x;
+ y = -y;
+ sign = -1;
+ }
if (x < 0.000000000000000006938893903907228377647697925567626953125L) /* x < 2**-57 */
{
long double y[2], z = 0.0L;
int n;
+ /* tanl(NaN) is NaN */
+ if (isnanl (x))
+ return x;
+
/* |x| ~< pi/4 */
if (x >= -0.7853981633974483096156608458198757210492 &&
x <= 0.7853981633974483096156608458198757210492)
return kernel_tanl (x, z, 1);
- /* tanl(Inf or NaN) is NaN, tanl(0) is 0 */
- else if (x + x == x || x != x)
+ /* tanl(Inf) is NaN, tanl(0) is 0 */
+ else if (x + x == x)
return x - x; /* NaN */
/* argument reduction needed */