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

Go to the source code of this file.

Functions

double cos (double x)
 

Function Documentation

◆ cos()

double cos ( double  x)

Definition at line 46 of file s_cos.c.

47{
48 double y[2],z=0.0;
49 int32_t n, ix;
50
51 /* High word of x. */
52 GET_HIGH_WORD(ix,x);
53
54 /* |x| ~< pi/4 */
55 ix &= 0x7fffffff;
56 if(ix <= 0x3fe921fb) return __kernel_cos(x,z);
57
58 /* cos(Inf or NaN) is NaN */
59 else if (ix>=0x7ff00000) return x-x;
60
61 /* argument reduction needed */
62 else {
64 switch(n&3) {
65 case 0: return __kernel_cos(y[0],y[1]);
66 case 1: return -__kernel_sin(y[0],y[1],1);
67 case 2: return -__kernel_cos(y[0],y[1]);
68 default:
69 return __kernel_sin(y[0],y[1],1);
70 }
71 }
72}
signed int int32_t
GLint GLint GLint GLint GLint GLint y
Definition: SDL_opengl.h:1574
GLint GLint GLint GLint GLint x
Definition: SDL_opengl.h:1574
GLdouble GLdouble z
GLdouble n
int32_t attribute_hidden __ieee754_rem_pio2(double x, double *y)
Definition: e_rem_pio2.c:69
double attribute_hidden __kernel_cos(double x, double y)
Definition: k_cos.c:59
double attribute_hidden __kernel_sin(double x, double y, int iy)
Definition: k_sin.c:52
#define GET_HIGH_WORD(i, d)
Definition: math_private.h:109

References __ieee754_rem_pio2(), __kernel_cos(), __kernel_sin(), and GET_HIGH_WORD.

Referenced by SDL_cos().