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

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/C/cosh.c
          +++ new/usr/src/lib/libm/common/C/cosh.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 2005 Sun Microsystems, Inc.  All rights reserved.
  26   28   * Use is subject to license terms.
  27   29   */
  28   30  
  29   31  #pragma weak __cosh = cosh
  30   32  
  31      -/* INDENT OFF */
       33 +
  32   34  /*
  33   35   * cosh(x)
  34   36   * Code originated from 4.3bsd.
  35   37   * Modified by K.C. Ng for SUN 4.0 libm.
  36   38   * Method :
  37   39   *      1. Replace x by |x| (cosh(x) = cosh(-x)).
  38   40   *      2.
  39   41   *                                       [ exp(x) - 1 ]^2
  40   42   *  0        <= x <= 0.3465  :  cosh(x) := 1 + -------------------
  41   43   *                                                                    2*exp(x)
↓ open down ↓ 3 lines elided ↑ open up ↑
  45   47   *                                                                         2
  46   48   *  22       <= x <= lnovft  :  cosh(x) := exp(x)/2
  47   49   *  lnovft   <= x <  INF     :  cosh(x) := scalbn(exp(x-1024*ln2),1023)
  48   50   *
  49   51   *      Note: .3465 is a number near one half of ln2.
  50   52   *
  51   53   * Special cases:
  52   54   *      cosh(x) is |x| if x is +INF, -INF, or NaN.
  53   55   *      only cosh(0)=1 is exact for finite x.
  54   56   */
  55      -/* INDENT ON */
  56   57  
  57   58  #include "libm.h"
  58   59  
  59      -static const double
  60      -        ln2 = 6.93147180559945286227e-01,
       60 +static const double ln2 = 6.93147180559945286227e-01,
  61   61          ln2hi = 6.93147180369123816490e-01,
  62   62          ln2lo = 1.90821492927058770002e-10,
  63   63          lnovft = 7.09782712893383973096e+02;
  64   64  
  65   65  double
  66      -cosh(double x) {
       66 +cosh(double x)
       67 +{
  67   68          double t, w;
  68   69  
  69   70          w = fabs(x);
       71 +
  70   72          if (!finite(w))
  71   73                  return (w * w);
       74 +
  72   75          if (w < 0.3465) {
  73   76                  t = expm1(w);
  74   77                  w = 1.0 + t;
       78 +
  75   79                  if (w != 1.0)
  76   80                          w = 1.0 + (t * t) / (w + w);
       81 +
  77   82                  return (w);
  78   83          } else if (w < 22.0) {
  79   84                  t = exp(w);
  80   85                  return (0.5 * (t + 1.0 / t));
  81   86          } else if (w <= lnovft) {
  82   87                  return (0.5 * exp(w));
  83   88          } else {
  84   89                  w = (w - 1024 * ln2hi) - 1024 * ln2lo;
       90 +
  85   91                  if (w >= ln2)
  86   92                          return (_SVID_libm_err(x, x, 5));
  87   93                  else
  88   94                          return (scalbn(exp(w), 1023));
  89   95          }
  90   96  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX