Print this page


Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/Q/asinhl.c
          +++ new/usr/src/lib/libm/common/Q/asinhl.c
↓ open down ↓ 34 lines elided ↑ open up ↑
  35   35  
  36   36  static const long double
  37   37          ln2     = 6.931471805599453094172321214581765680755e-0001L,
  38   38          one     = 1.0L,
  39   39          big     = 1.0e+20L,
  40   40          tiny    = 1.0e-20L;
  41   41  
  42   42  long double
  43   43  asinhl(long double x) {
  44   44          long double t, w;
       45 +        volatile long double dummy;
  45   46  
  46   47          w = fabsl(x);
  47   48          if (isnanl(x))
  48   49                  return (x + x); /* x is NaN */
  49   50          if (w < tiny) {
  50   51  #ifndef lint
  51      -                volatile long double dummy = x + big;   /* inexact if x != 0 */
       52 +                dummy = x + big;        /* inexact if x != 0 */
  52   53  #endif
  53   54                  return (x);     /* tiny x */
  54   55          } else if (w < big) {
  55   56                  t = one / w;
  56   57                  return (copysignl(log1pl(w + w / (t + sqrtl(one + t * t))), x));
  57   58          } else
  58   59                  return (copysignl(logl(w) + ln2, x));
  59   60  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX