Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/LD/__sincosl.c
          +++ new/usr/src/lib/libm/common/LD/__sincosl.c
↓ open down ↓ 89 lines elided ↑ open up ↑
  90   90  q7      =  -1.147074481239662089072452129010790774761e-0011L,
  91   91  q8      =   4.777761647399651599730663422263531034782e-0014L;
  92   92  /* INDENT ON */
  93   93  long double
  94   94  __k_sincosl(long double x, long double y, long double *c) {
  95   95          long double a1, a2, t, t1, t2, z, w;
  96   96          int *pt = (int *) &t, *px = (int *) &x;
  97   97          int i, j, hx, ix;
  98   98  
  99   99          t = 1.0;
 100      -#if defined(_BIG_ENDIAN)
 101      -        hx = px[0];
 102      -#else
      100 +#if defined(__i386) || defined(__amd64)
 103  101          XTOI(px, hx);
      102 +#else
      103 +        hx = px[0];
 104  104  #endif
 105  105          ix = hx & 0x7fffffff;
 106  106          if (ix < 0x3ffc4000) {
 107  107                  if (ix < 0x3fc60000)
 108  108                          if (((int) x) == 0) {
 109  109                                  *c = one;
 110  110                                  return (x);
 111  111                          }       /* generate inexact */
 112  112                  z = x * x;
 113  113  
↓ open down ↓ 7 lines elided ↑ open up ↑
 121  121                                  (q5 + z * (q6 + z * (q7 + z * q8)))))));
 122  122                          t = z * (p1 + z * (p2 + z * (p3 + z * (p4 + z * (p5 +
 123  123                                  z * (p6 + z * (p7 + z * p8)))))));
 124  124                  }
 125  125  
 126  126                  t = y + x * t;
 127  127                  return (x + t);
 128  128          }
 129  129          j = (ix + 0x400) & 0x7ffff800;
 130  130          i = (j - 0x3ffc4000) >> 11;
 131      -#if defined(_BIG_ENDIAN)
 132      -        pt[0] = j;
 133      -#else
      131 +#if defined(__i386) || defined(__amd64)
 134  132          ITOX(j, pt);
      133 +#else
      134 +        pt[0] = j;
 135  135  #endif
 136  136          if (hx > 0)
 137  137                  x = y - (t - x);
 138  138          else
 139  139                  x = (-y) - (t + x);
 140  140          a1 = _TBL_sinl_hi[i];
 141  141          z = x * x;
 142  142          t = z * (qq1 + z * (qq2 + z * (qq3 + z * (qq4 + z * qq5))));
 143  143          w = x * (one + z * (pp1 + z * (pp2 + z * (pp3 + z * (pp4 + z *
 144  144                  pp5)))));
 145  145          a2 = _TBL_cosl_hi[i];
 146  146          t2 = _TBL_cosl_lo[i] - (a1 * w - a2 * t);
 147  147          *c = a2 + t2;
 148  148          t1 = a2 * w + a1 * t;
 149  149          t1 += _TBL_sinl_lo[i];
 150  150          if (hx < 0)
 151  151                  return (-a1 - t1);
 152  152          else
 153  153                  return (a1 + t1);
 154  154  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX