Back to index

lightning-sunbird  0.9+nobinonly
Functions | Variables
k_cos.c File Reference
#include "fdlibm.h"

Go to the source code of this file.

Functions

double __kernel_cos (double x, double y)

Variables

static double one = 1.00000000000000000000e+00
static double C1 = 4.16666666666666019037e-02
static double C2 = -1.38888888888741095749e-03
static double C3 = 2.48015872894767294178e-05
static double C4 = -2.75573143513906633035e-07
static double C5 = 2.08757232129817482790e-09
static double C6 = -1.13596475577881948265e-11

Function Documentation

double __kernel_cos ( double  x,
double  y 
)

Definition at line 105 of file k_cos.c.

{
        fd_twoints u;
        double qx = 0;
       double a,hz,z,r;
       int ix;
        u.d = x;
       ix = __HI(u)&0x7fffffff;    /* ix = |x|'s high word*/
       if(ix<0x3e400000) {                /* 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 < 0x3FD33333)                /* if |x| < 0.3 */ 
           return one - (0.5*z - (z*r - x*y));
       else {
           if(ix > 0x3fe90000) {          /* x > 0.78125 */
              qx = 0.28125;
           } else {
                u.d = qx;
               __HI(u) = ix-0x00200000;   /* x/4 */
               __LO(u) = 0;
                qx = u.d;
           }
           hz = 0.5*z-qx;
           a  = one-qx;
           return a - (hz - (z*r-x*y));
       }
}

Here is the caller graph for this function:


Variable Documentation

double C1 = 4.16666666666666019037e-02 [static]

Definition at line 95 of file k_cos.c.

double C2 = -1.38888888888741095749e-03 [static]

Definition at line 96 of file k_cos.c.

double C3 = 2.48015872894767294178e-05 [static]

Definition at line 97 of file k_cos.c.

double C4 = -2.75573143513906633035e-07 [static]

Definition at line 98 of file k_cos.c.

double C5 = 2.08757232129817482790e-09 [static]

Definition at line 99 of file k_cos.c.

double C6 = -1.13596475577881948265e-11 [static]

Definition at line 100 of file k_cos.c.

double one = 1.00000000000000000000e+00 [static]

Definition at line 94 of file k_cos.c.