SDL  2.0
s_tan.c File Reference
#include "math_libm.h"
#include "math_private.h"
+ Include dependency graph for s_tan.c:

Go to the source code of this file.

Functions

double tan (double x)

Function Documentation

double tan ( double  x)

Definition at line 45 of file s_tan.c.

References __ieee754_rem_pio2(), __kernel_tan(), and GET_HIGH_WORD.

Referenced by SDL_tan().

{
double y[2],z=0.0;
int32_t n, ix;
/* High word of x. */
/* |x| ~< pi/4 */
ix &= 0x7fffffff;
if(ix <= 0x3fe921fb) return __kernel_tan(x,z,1);
/* tan(Inf or NaN) is NaN */
else if (ix>=0x7ff00000) return x-x; /* NaN */
/* argument reduction needed */
else {
return __kernel_tan(y[0],y[1],1-((n&1)<<1)); /* 1 -- n even
-1 -- n odd */
}
}