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

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/C/logb.c
          +++ new/usr/src/lib/libm/common/C/logb.c
↓ open down ↓ 14 lines elided ↑ open up ↑
  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   23   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  24   24   */
       25 +
  25   26  /*
  26   27   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  27   28   * Use is subject to license terms.
  28   29   */
  29   30  
  30   31  #pragma weak __logb = logb
  31   32  #pragma weak _logb = logb
  32   33  
  33   34  #include "libm.h"
  34      -#include "xpg6.h"       /* __xpg6 */
       35 +#include "xpg6.h"                       /* __xpg6 */
  35   36  #define _C99SUSv3_logb  _C99SUSv3_logb_subnormal_is_like_ilogb
  36   37  
  37   38  #if defined(__x86)
  38   39  static const double two52 = 4503599627370496.0;
  39   40  #else
  40   41  /*
  41   42   * v: high part of a non-zero subnormal |x|; w: low part of |x|
  42   43   */
  43   44  static int
  44      -ilogb_subnormal(unsigned v, unsigned w) {
       45 +ilogb_subnormal(unsigned v, unsigned w)
       46 +{
  45   47          int r = -1022 - 52;
  46   48  
  47   49          if (v)
  48   50                  r += 32;
  49   51          else
  50   52                  v = w;
       53 +
  51   54          if (v & 0xffff0000)
  52   55                  r += 16, v >>= 16;
       56 +
  53   57          if (v & 0xff00)
  54   58                  r += 8, v >>= 8;
       59 +
  55   60          if (v & 0xf0)
  56   61                  r += 4, v >>= 4;
       62 +
  57   63          v <<= 1;
  58   64          return (r + ((0xffffaa50 >> v) & 0x3));
  59   65  }
  60      -#endif  /* defined(__x86) */
       66 +#endif /* defined(__x86) */
  61   67  
  62   68  double
  63      -logb(double x) {
  64      -        int *px = (int *) &x, k = px[HIWORD] & ~0x80000000;
       69 +logb(double x)
       70 +{
       71 +        int *px = (int *)&x, k = px[HIWORD] & ~0x80000000;
  65   72  
  66   73          if (k < 0x00100000) {
  67      -                if ((px[LOWORD] | k) == 0)
       74 +                if ((px[LOWORD] | k) == 0) {
  68   75                          return (_SVID_libm_err(x, x, 45));
  69      -                else if ((__xpg6 & _C99SUSv3_logb) != 0) {
       76 +                } else if ((__xpg6 & _C99SUSv3_logb) != 0) {
  70   77  #if defined(__x86)
  71   78                          x *= two52;
  72      -                        return ((double) (((px[HIWORD] & 0x7ff00000) >> 20)
  73      -                                - 1075));
       79 +                        return ((double)(((px[HIWORD] & 0x7ff00000) >> 20) -
       80 +                            1075));
  74   81  #else
  75      -                        return ((double) ilogb_subnormal(k, px[LOWORD]));
       82 +                        return ((double)ilogb_subnormal(k, px[LOWORD]));
  76   83  #endif
  77      -                } else
       84 +                } else {
  78   85                          return (-1022.0);
  79      -        } else if (k < 0x7ff00000)
  80      -                return ((double) ((k >> 20) - 1023));
  81      -        else
       86 +                }
       87 +        } else if (k < 0x7ff00000) {
       88 +                return ((double)((k >> 20) - 1023));
       89 +        } else {
  82   90                  return (x * x);
       91 +        }
  83   92  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX