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

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/LD/sinhl.c
          +++ new/usr/src/lib/libm/common/LD/sinhl.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 __sinhl = sinhl
  31   32  
  32   33  #include "libm.h"
  33   34  #include "longdouble.h"
  34   35  
  35      -/* SINH(X)
       36 +/* BEGIN CSTYLED */
       37 +/*
       38 + * SINH(X)
  36   39   * RETURN THE HYPERBOLIC SINE OF X
  37   40   *
  38   41   * Method :
  39   42   *      1. reduce x to non-negative by SINH(-x) = - SINH(x).
  40   43   *      2.
  41   44   *
  42   45   *                                            EXPM1(x) + EXPM1(x)/(EXPM1(x)+1)
  43   46   *          0 <= x <= lnovft     : SINH(x) := --------------------------------
  44      - *                                                            2
       47 + *                                                            2
  45   48   *
  46   49   *     lnovft <= x <  INF        : SINH(x) := EXP(x-MEP1*ln2)*2**ME
  47   50   *
  48   51   * here
  49   52   *      lnovft          logarithm of the overflow threshold
  50   53   *                      = MEP1*ln2 chopped to machine precision.
  51   54   *      ME              maximum exponent
  52   55   *      MEP1            maximum exponent plus 1
  53   56   *
  54   57   * Special cases:
  55   58   *      SINH(x) is x if x is +INF, -INF, or NaN.
  56   59   *      only SINH(0)=0 is exact for finite argument.
  57   60   *
  58   61   */
       62 +/* END CSTYLED */
  59   63  
  60   64  static const long double C[] = {
  61   65          0.5L,
  62   66          1.0L,
  63   67          1.135652340629414394879149e+04L,
  64   68          7.004447686242549087858985e-16L
  65   69  };
  66   70  
  67      -#define half    C[0]
  68      -#define one     C[1]
  69      -#define lnovft  C[2]
  70      -#define lnovlo  C[3]
       71 +#define half            C[0]
       72 +#define one             C[1]
       73 +#define lnovft          C[2]
       74 +#define lnovlo          C[3]
  71   75  
  72   76  long double
  73   77  sinhl(long double x)
  74   78  {
  75      -        long double     r, t;
       79 +        long double r, t;
  76   80  
  77   81          if (!finitel(x))
  78      -                return (x + x); /* x is INF or NaN */
       82 +                return (x + x);         /* x is INF or NaN */
       83 +
  79   84          r = fabsl(x);
       85 +
  80   86          if (r < lnovft) {
  81   87                  t = expm1l(r);
  82   88                  r = copysignl((t + t / (one + t)) * half, x);
  83   89          } else {
  84   90                  r = copysignl(expl((r - lnovft) - lnovlo), x);
  85   91                  r = scalbnl(r, 16383);
  86   92          }
       93 +
  87   94          return (r);
  88   95  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX