Print this page
5261 libm should stop using synonyms.h
5298 fabs is 0-sized, confuses dis(1) and others
Reviewed by: Josef 'Jeff' Sipek <jeffpc@josefsipek.net>
Approved by: Gordon Ross <gwr@nexenta.com>

Split Close
Expand all
Collapse all
          --- old/usr/src/lib/libm/common/LD/atanhl.c
          +++ new/usr/src/lib/libm/common/LD/atanhl.c
↓ open down ↓ 19 lines elided ↑ open up ↑
  20   20   */
  21   21  
  22   22  /*
  23   23   * Copyright 2011 Nexenta Systems, Inc.  All rights reserved.
  24   24   */
  25   25  /*
  26   26   * Copyright 2006 Sun Microsystems, Inc.  All rights reserved.
  27   27   * Use is subject to license terms.
  28   28   */
  29   29  
  30      -#pragma weak atanhl = __atanhl
       30 +#pragma weak __atanhl = atanhl
  31   31  
  32   32  #include "libm.h"
  33      -#include "libm_synonyms.h"
  34   33  
  35   34  #define GENERIC long double
  36   35  #define ATANH   atanhl
  37   36  
  38   37  /* ATANH(x)
  39   38   *                  1              2x                          x
  40   39   *      ATANH(x) = --- * LOG(1 + -------) = 0.5 * LOG1P(2 * --------)
  41   40   *                  2             1 - x                      1 - x
  42   41   * Note: to guarantee ATANH(-x) = -ATANH(x), we use
  43      - *                 sign(x)             |x|  
       42 + *                 sign(x)             |x|
  44   43   *      ATANH(x) = ------- * LOG1P(2*-------).
  45   44   *                    2              1 - |x|
  46   45   *
  47   46   * Special cases:
  48   47   *      ATANH(x) is NaN if |x| > 1 with signal;
  49   48   *      ATANH(NaN) is that NaN with no signal;
  50   49   *      ATANH(+-1) is +-INF with signal.
  51   50   *
  52   51   */
  53   52  
↓ open down ↓ 4 lines elided ↑ open up ↑
  58   57  
  59   58  extern GENERIC  FABS(),LOG1P(),COPYSIGN();
  60   59  
  61   60  static GENERIC
  62   61  zero    = (GENERIC) 0.0,
  63   62  half    = (GENERIC) 0.5,
  64   63  one     = (GENERIC) 1.0;
  65   64  
  66   65  GENERIC ATANH(x)
  67   66  GENERIC x;
  68      -{       
       67 +{
  69   68          GENERIC t;
  70   69          t = FABS(x);
  71   70          if (t == one) return x/zero;
  72   71          t = t/(one-t);
  73   72          return COPYSIGN(half,x)*LOG1P(t+t);
  74   73  }
    
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX