Print this page
11210 libm should be cstyle(1ONBLD) clean

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/C/exp2.c
          +++ new/usr/src/lib/libm/common/C/exp2.c
↓ open down ↓ 10 lines elided ↑ open up ↑
  11   11   * and limitations under the License.
  12   12   *
  13   13   * When distributing Covered Code, include this CDDL HEADER in each
  14   14   * file and include the License file at usr/src/OPENSOLARIS.LICENSE.
  15   15   * If applicable, add the following below this CDDL HEADER, with the
  16   16   * fields enclosed by brackets "[]" replaced with your own identifying
  17   17   * information: Portions Copyright [yyyy] [name of copyright owner]
  18   18   *
  19   19   * CDDL HEADER END
  20   20   */
       21 +
  21   22  /*
  22   23   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  23   24   */
       25 +
  24   26  /*
  25   27   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  26   28   * Use is subject to license terms.
  27   29   */
  28   30  
  29   31  #pragma weak __exp2 = exp2
  30   32  
  31      -/* INDENT OFF */
       33 +
  32   34  /*
  33   35   * exp2(x)
  34   36   * Code by K.C. Ng for SUN 4.0 libm.
  35   37   * Method :
  36   38   *      exp2(x) = 2**x = 2**((x-anint(x))+anint(x))
  37   39   *              = 2**anint(x)*2**(x-anint(x))
  38   40   *              = 2**anint(x)*exp((x-anint(x))*ln2)
  39   41   */
  40      -/* INDENT ON */
  41   42  
  42   43  #include "libm.h"
  43   44  
  44   45  static const double C[] = {
  45   46          0.0,
  46   47          1.0,
  47   48          0.5,
  48   49          6.93147180559945286227e-01,
  49   50          1.0e300,
  50   51          1.0e-300,
  51   52  };
  52   53  
  53      -#define zero    C[0]
  54      -#define one     C[1]
  55      -#define half    C[2]
  56      -#define ln2     C[3]
  57      -#define huge    C[4]
  58      -#define tiny    C[5]
       54 +#define zero            C[0]
       55 +#define one             C[1]
       56 +#define half            C[2]
       57 +#define ln2             C[3]
       58 +#define huge            C[4]
       59 +#define tiny            C[5]
  59   60  
  60   61  double
  61      -exp2(double x) {
  62      -        int     ix, hx, k;
  63      -        double  t;
       62 +exp2(double x)
       63 +{
       64 +        int ix, hx, k;
       65 +        double t;
  64   66  
  65   67          ix = ((int *)&x)[HIWORD];
  66   68          hx = ix & ~0x80000000;
  67   69  
  68      -        if (hx >= 0x4090e000) { /* |x| >= 1080 or x is nan */
       70 +        if (hx >= 0x4090e000) {         /* |x| >= 1080 or x is nan */
  69   71                  if (hx >= 0x7ff00000) { /* x is inf or nan */
  70   72                          if (ix == 0xfff00000 && ((int *)&x)[LOWORD] == 0)
  71   73                                  return (zero);
       74 +
  72   75                          return (x * x);
  73   76                  }
  74      -                t = (ix < 0)? tiny : huge;
       77 +
       78 +                t = (ix < 0) ? tiny : huge;
  75   79                  return (t * t);
  76   80          }
  77   81  
  78      -        if (hx < 0x3fe00000) {  /* |x| < 0.5 */
       82 +        if (hx < 0x3fe00000) {          /* |x| < 0.5 */
  79   83                  if (hx < 0x3c000000)
  80   84                          return (one + x);
       85 +
  81   86                  return (exp(ln2 * x));
  82   87          }
  83   88  
  84   89          k = (int)x;
       90 +
  85   91          if (x != (double)k)
  86      -                k = (int)((ix < 0)? x - half : x + half);
       92 +                k = (int)((ix < 0) ? x - half : x + half);
       93 +
  87   94          return (scalbn(exp(ln2 * (x - (double)k)), k));
  88   95  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX