Back to index

glibc  2.9
Functions | Variables
k_cosf.c File Reference
#include "math.h"
#include "math_private.h"

Go to the source code of this file.

Functions

float __kernel_cosf (float x, float y)

Variables

static float one = 1.0000000000e+00
static float C1 = 4.1666667908e-02
static float C2 = -1.3888889225e-03
static float C3 = 2.4801587642e-05
static float C4 = -2.7557314297e-07
static float C5 = 2.0875723372e-09
static float C6 = -1.1359647598e-11

Function Documentation

float __kernel_cosf ( float  x,
float  y 
)

Definition at line 39 of file k_cosf.c.

{
       float a,hz,z,r,qx;
       int32_t ix;
       GET_FLOAT_WORD(ix,x);
       ix &= 0x7fffffff;                  /* ix = |x|'s high word*/
       if(ix<0x32000000) {                /* if x < 2**27 */
           if(((int)x)==0) return one;           /* generate inexact */
       }
       z  = x*x;
       r  = z*(C1+z*(C2+z*(C3+z*(C4+z*(C5+z*C6)))));
       if(ix < 0x3e99999a)                /* if |x| < 0.3 */ 
           return one - ((float)0.5*z - (z*r - x*y));
       else {
           if(ix > 0x3f480000) {          /* x > 0.78125 */
              qx = (float)0.28125;
           } else {
               SET_FLOAT_WORD(qx,ix-0x01000000); /* x/4 */
           }
           hz = (float)0.5*z-qx;
           a  = one-qx;
           return a - (hz - (z*r-x*y));
       }
}

Here is the caller graph for this function:


Variable Documentation

float C1 = 4.1666667908e-02 [static]

Definition at line 29 of file k_cosf.c.

float C2 = -1.3888889225e-03 [static]

Definition at line 30 of file k_cosf.c.

float C3 = 2.4801587642e-05 [static]

Definition at line 31 of file k_cosf.c.

float C4 = -2.7557314297e-07 [static]

Definition at line 32 of file k_cosf.c.

float C5 = 2.0875723372e-09 [static]

Definition at line 33 of file k_cosf.c.

float C6 = -1.1359647598e-11 [static]

Definition at line 34 of file k_cosf.c.

float one = 1.0000000000e+00 [static]

Definition at line 28 of file k_cosf.c.