[BACK]Return to k_standard.c CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / lib / libm / src

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/lib/libm/src/k_standard.c between version 1.3 and 1.4

version 1.3, 1994/02/18 02:26:04 version 1.4, 1994/08/10 20:31:44
Line 14 
Line 14 
 static char rcsid[] = "$Id$";  static char rcsid[] = "$Id$";
 #endif  #endif
   
 #include <math.h>  #include "math.h"
   #include "math_private.h"
 #include <errno.h>  #include <errno.h>
   
 #ifndef _USE_WRITE  #ifndef _USE_WRITE
Line 26  static char rcsid[] = "$Id$";
Line 27  static char rcsid[] = "$Id$";
 #undef fflush  #undef fflush
 #endif  /* !defined(_USE_WRITE) */  #endif  /* !defined(_USE_WRITE) */
   
   #ifdef __STDC__
   static const double zero = 0.0; /* used as const */
   #else
 static double zero = 0.0;       /* used as const */  static double zero = 0.0;       /* used as const */
   #endif
   
 /*  /*
  * Standard conformance (non-IEEE) on exception cases.   * Standard conformance (non-IEEE) on exception cases.
Line 86  static double zero = 0.0; /* used as con
Line 91  static double zero = 0.0; /* used as con
         struct exception exc;          struct exception exc;
 #ifndef HUGE_VAL        /* this is the only routine that uses HUGE_VAL */  #ifndef HUGE_VAL        /* this is the only routine that uses HUGE_VAL */
 #define HUGE_VAL inf  #define HUGE_VAL inf
         double one = 1.0, inf = 0.0;          double inf = 0.0;
         int i0;  
   
         i0 = ((*(int*)&one)>>29)^1;          SET_HIGH_WORD(inf,0x7ff00000);  /* set inf to infinite */
         *(i0+(int*)&inf) = 0x7ff00000;  /* set inf to infinite */  
 #endif  #endif
   
 #ifdef _USE_WRITE  #ifdef _USE_WRITE
Line 100  static double zero = 0.0; /* used as con
Line 103  static double zero = 0.0; /* used as con
         exc.arg2 = y;          exc.arg2 = y;
         switch(type) {          switch(type) {
             case 1:              case 1:
               case 101:
                 /* acos(|x|>1) */                  /* acos(|x|>1) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "acos";                  exc.name = type < 100 ? "acos" : "acosf";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = EDOM;                    errno = EDOM;
Line 114  static double zero = 0.0; /* used as con
Line 118  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 2:              case 2:
               case 102:
                 /* asin(|x|>1) */                  /* asin(|x|>1) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "asin";                  exc.name = type < 100 ? "asin" : "asinf";
                 exc.retval = zero;                  exc.retval = zero;
                 if(_LIB_VERSION == _POSIX_)                  if(_LIB_VERSION == _POSIX_)
                   errno = EDOM;                    errno = EDOM;
Line 128  static double zero = 0.0; /* used as con
Line 133  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 3:              case 3:
               case 103:
                 /* atan2(+-0,+-0) */                  /* atan2(+-0,+-0) */
                 exc.arg1 = y;                  exc.arg1 = y;
                 exc.arg2 = x;                  exc.arg2 = x;
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "atan2";                  exc.name = type < 100 ? "atan2" : "atan2f";
                 exc.retval = zero;                  exc.retval = zero;
                 if(_LIB_VERSION == _POSIX_)                  if(_LIB_VERSION == _POSIX_)
                   errno = EDOM;                    errno = EDOM;
Line 144  static double zero = 0.0; /* used as con
Line 150  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 4:              case 4:
               case 104:
                 /* hypot(finite,finite) overflow */                  /* hypot(finite,finite) overflow */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "hypot";                  exc.name = type < 100 ? "hypot" : "hypotf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = HUGE;                    exc.retval = HUGE;
                 else                  else
Line 158  static double zero = 0.0; /* used as con
Line 165  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 5:              case 5:
               case 105:
                 /* cosh(finite) overflow */                  /* cosh(finite) overflow */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "cosh";                  exc.name = type < 100 ? "cosh" : "coshf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = HUGE;                    exc.retval = HUGE;
                 else                  else
Line 172  static double zero = 0.0; /* used as con
Line 180  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 6:              case 6:
               case 106:
                 /* exp(finite) overflow */                  /* exp(finite) overflow */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "exp";                  exc.name = type < 100 ? "exp" : "expf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = HUGE;                    exc.retval = HUGE;
                 else                  else
Line 186  static double zero = 0.0; /* used as con
Line 195  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 7:              case 7:
               case 107:
                 /* exp(finite) underflow */                  /* exp(finite) underflow */
                 exc.type = UNDERFLOW;                  exc.type = UNDERFLOW;
                 exc.name = "exp";                  exc.name = type < 100 ? "exp" : "expf";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = ERANGE;                    errno = ERANGE;
Line 197  static double zero = 0.0; /* used as con
Line 207  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 8:              case 8:
               case 108:
                 /* y0(0) = -inf */                  /* y0(0) = -inf */
                 exc.type = DOMAIN;      /* should be SING for IEEE */                  exc.type = DOMAIN;      /* should be SING for IEEE */
                 exc.name = "y0";                  exc.name = type < 100 ? "y0" : "y0f";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 214  static double zero = 0.0; /* used as con
Line 225  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 9:              case 9:
               case 109:
                 /* y0(x<0) = NaN */                  /* y0(x<0) = NaN */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "y0";                  exc.name = type < 100 ? "y0" : "y0f";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 231  static double zero = 0.0; /* used as con
Line 243  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 10:              case 10:
               case 110:
                 /* y1(0) = -inf */                  /* y1(0) = -inf */
                 exc.type = DOMAIN;      /* should be SING for IEEE */                  exc.type = DOMAIN;      /* should be SING for IEEE */
                 exc.name = "y1";                  exc.name = type < 100 ? "y1" : "y1f";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 248  static double zero = 0.0; /* used as con
Line 261  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 11:              case 11:
               case 111:
                 /* y1(x<0) = NaN */                  /* y1(x<0) = NaN */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "y1";                  exc.name = type < 100 ? "y1" : "y1f";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 265  static double zero = 0.0; /* used as con
Line 279  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 12:              case 12:
               case 112:
                 /* yn(n,0) = -inf */                  /* yn(n,0) = -inf */
                 exc.type = DOMAIN;      /* should be SING for IEEE */                  exc.type = DOMAIN;      /* should be SING for IEEE */
                 exc.name = "yn";                  exc.name = type < 100 ? "yn" : "ynf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 282  static double zero = 0.0; /* used as con
Line 297  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 13:              case 13:
               case 113:
                 /* yn(x<0) = NaN */                  /* yn(x<0) = NaN */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "yn";                  exc.name = type < 100 ? "yn" : "ynf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 299  static double zero = 0.0; /* used as con
Line 315  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 14:              case 14:
               case 114:
                 /* lgamma(finite) overflow */                  /* lgamma(finite) overflow */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "lgamma";                  exc.name = type < 100 ? "lgamma" : "lgammaf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = HUGE;                    exc.retval = HUGE;
                 else                  else
Line 313  static double zero = 0.0; /* used as con
Line 330  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 15:              case 15:
               case 115:
                 /* lgamma(-integer) or lgamma(0) */                  /* lgamma(-integer) or lgamma(0) */
                 exc.type = SING;                  exc.type = SING;
                 exc.name = "lgamma";                  exc.name = type < 100 ? "lgamma" : "lgammaf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = HUGE;                    exc.retval = HUGE;
                 else                  else
Line 330  static double zero = 0.0; /* used as con
Line 348  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 16:              case 16:
               case 116:
                 /* log(0) */                  /* log(0) */
                 exc.type = SING;                  exc.type = SING;
                 exc.name = "log";                  exc.name = type < 100 ? "log" : "logf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 347  static double zero = 0.0; /* used as con
Line 366  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 17:              case 17:
               case 117:
                 /* log(x<0) */                  /* log(x<0) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "log";                  exc.name = type < 100 ? "log" : "logf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 364  static double zero = 0.0; /* used as con
Line 384  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 18:              case 18:
               case 118:
                 /* log10(0) */                  /* log10(0) */
                 exc.type = SING;                  exc.type = SING;
                 exc.name = "log10";                  exc.name = type < 100 ? "log10" : "log10f";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 381  static double zero = 0.0; /* used as con
Line 402  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 19:              case 19:
               case 119:
                 /* log10(x<0) */                  /* log10(x<0) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "log10";                  exc.name = type < 100 ? "log10" : "log10f";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = -HUGE;                    exc.retval = -HUGE;
                 else                  else
Line 398  static double zero = 0.0; /* used as con
Line 420  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 20:              case 20:
               case 120:
                 /* pow(0.0,0.0) */                  /* pow(0.0,0.0) */
                 /* error only if _LIB_VERSION == _SVID_ */                  /* error only if _LIB_VERSION == _SVID_ */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "pow";                  exc.name = type < 100 ? "pow" : "powf";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION != _SVID_) exc.retval = 1.0;                  if (_LIB_VERSION != _SVID_) exc.retval = 1.0;
                 else if (!matherr(&exc)) {                  else if (!matherr(&exc)) {
Line 410  static double zero = 0.0; /* used as con
Line 433  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 21:              case 21:
               case 121:
                 /* pow(x,y) overflow */                  /* pow(x,y) overflow */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "pow";                  exc.name = type < 100 ? "pow" : "powf";
                 if (_LIB_VERSION == _SVID_) {                  if (_LIB_VERSION == _SVID_) {
                   exc.retval = HUGE;                    exc.retval = HUGE;
                   y *= 0.5;                    y *= 0.5;
Line 429  static double zero = 0.0; /* used as con
Line 453  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 22:              case 22:
               case 122:
                 /* pow(x,y) underflow */                  /* pow(x,y) underflow */
                 exc.type = UNDERFLOW;                  exc.type = UNDERFLOW;
                 exc.name = "pow";                  exc.name = type < 100 ? "pow" : "powf";
                 exc.retval =  zero;                  exc.retval =  zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = ERANGE;                    errno = ERANGE;
Line 440  static double zero = 0.0; /* used as con
Line 465  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 23:              case 23:
               case 123:
                 /* 0**neg */                  /* 0**neg */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "pow";                  exc.name = type < 100 ? "pow" : "powf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = zero;                    exc.retval = zero;
                 else                  else
Line 457  static double zero = 0.0; /* used as con
Line 483  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 24:              case 24:
               case 124:
                 /* neg**non-integral */                  /* neg**non-integral */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "pow";                  exc.name = type < 100 ? "pow" : "powf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                     exc.retval = zero;                      exc.retval = zero;
                 else                  else
Line 474  static double zero = 0.0; /* used as con
Line 501  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 25:              case 25:
               case 125:
                 /* sinh(finite) overflow */                  /* sinh(finite) overflow */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "sinh";                  exc.name = type < 100 ? "sinh" : "sinhf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = ( (x>zero) ? HUGE : -HUGE);                    exc.retval = ( (x>zero) ? HUGE : -HUGE);
                 else                  else
Line 488  static double zero = 0.0; /* used as con
Line 516  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 26:              case 26:
               case 126:
                 /* sqrt(x<0) */                  /* sqrt(x<0) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "sqrt";                  exc.name = type < 100 ? "sqrt" : "sqrtf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = zero;                    exc.retval = zero;
                 else                  else
Line 505  static double zero = 0.0; /* used as con
Line 534  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 27:              case 27:
               case 127:
                 /* fmod(x,0) */                  /* fmod(x,0) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "fmod";                  exc.name = type < 100 ? "fmod" : "fmodf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                     exc.retval = x;                      exc.retval = x;
                 else                  else
Line 522  static double zero = 0.0; /* used as con
Line 552  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 28:              case 28:
               case 128:
                 /* remainder(x,0) */                  /* remainder(x,0) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "remainder";                  exc.name = type < 100 ? "remainder" : "remainderf";
                 exc.retval = zero/zero;                  exc.retval = zero/zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = EDOM;                    errno = EDOM;
Line 536  static double zero = 0.0; /* used as con
Line 567  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 29:              case 29:
               case 129:
                 /* acosh(x<1) */                  /* acosh(x<1) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "acosh";                  exc.name = type < 100 ? "acosh" : "acoshf";
                 exc.retval = zero/zero;                  exc.retval = zero/zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = EDOM;                    errno = EDOM;
Line 550  static double zero = 0.0; /* used as con
Line 582  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 30:              case 30:
               case 130:
                 /* atanh(|x|>1) */                  /* atanh(|x|>1) */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "atanh";                  exc.name = type < 100 ? "atanh" : "atanhf";
                 exc.retval = zero/zero;                  exc.retval = zero/zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = EDOM;                    errno = EDOM;
Line 564  static double zero = 0.0; /* used as con
Line 597  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 31:              case 31:
               case 131:
                 /* atanh(|x|=1) */                  /* atanh(|x|=1) */
                 exc.type = SING;                  exc.type = SING;
                 exc.name = "atanh";                  exc.name = type < 100 ? "atanh" : "atanhf";
                 exc.retval = x/zero;    /* sign(x)*inf */                  exc.retval = x/zero;    /* sign(x)*inf */
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = EDOM;                    errno = EDOM;
Line 578  static double zero = 0.0; /* used as con
Line 612  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 32:              case 32:
               case 132:
                 /* scalb overflow; SVID also returns +-HUGE_VAL */                  /* scalb overflow; SVID also returns +-HUGE_VAL */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "scalb";                  exc.name = type < 100 ? "scalb" : "scalbf";
                 exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL;                  exc.retval = x > zero ? HUGE_VAL : -HUGE_VAL;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = ERANGE;                    errno = ERANGE;
Line 589  static double zero = 0.0; /* used as con
Line 624  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 33:              case 33:
               case 133:
                 /* scalb underflow */                  /* scalb underflow */
                 exc.type = UNDERFLOW;                  exc.type = UNDERFLOW;
                 exc.name = "scalb";                  exc.name = type < 100 ? "scalb" : "scalbf";
                 exc.retval = copysign(zero,x);                  exc.retval = copysign(zero,x);
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                   errno = ERANGE;                    errno = ERANGE;
Line 600  static double zero = 0.0; /* used as con
Line 636  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 34:              case 34:
               case 134:
                 /* j0(|x|>X_TLOSS) */                  /* j0(|x|>X_TLOSS) */
                 exc.type = TLOSS;                  exc.type = TLOSS;
                 exc.name = "j0";                  exc.name = type < 100 ? "j0" : "j0f";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                         errno = ERANGE;                          errno = ERANGE;
Line 615  static double zero = 0.0; /* used as con
Line 652  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 35:              case 35:
               case 135:
                 /* y0(x>X_TLOSS) */                  /* y0(x>X_TLOSS) */
                 exc.type = TLOSS;                  exc.type = TLOSS;
                 exc.name = "y0";                  exc.name = type < 100 ? "y0" : "y0f";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                         errno = ERANGE;                          errno = ERANGE;
Line 630  static double zero = 0.0; /* used as con
Line 668  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 36:              case 36:
               case 136:
                 /* j1(|x|>X_TLOSS) */                  /* j1(|x|>X_TLOSS) */
                 exc.type = TLOSS;                  exc.type = TLOSS;
                 exc.name = "j1";                  exc.name = type < 100 ? "j1" : "j1f";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                         errno = ERANGE;                          errno = ERANGE;
Line 645  static double zero = 0.0; /* used as con
Line 684  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 37:              case 37:
               case 137:
                 /* y1(x>X_TLOSS) */                  /* y1(x>X_TLOSS) */
                 exc.type = TLOSS;                  exc.type = TLOSS;
                 exc.name = "y1";                  exc.name = type < 100 ? "y1" : "y1f";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                         errno = ERANGE;                          errno = ERANGE;
Line 660  static double zero = 0.0; /* used as con
Line 700  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 38:              case 38:
               case 138:
                 /* jn(|x|>X_TLOSS) */                  /* jn(|x|>X_TLOSS) */
                 exc.type = TLOSS;                  exc.type = TLOSS;
                 exc.name = "jn";                  exc.name = type < 100 ? "jn" : "jnf";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                         errno = ERANGE;                          errno = ERANGE;
Line 675  static double zero = 0.0; /* used as con
Line 716  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 39:              case 39:
               case 139:
                 /* yn(x>X_TLOSS) */                  /* yn(x>X_TLOSS) */
                 exc.type = TLOSS;                  exc.type = TLOSS;
                 exc.name = "yn";                  exc.name = type < 100 ? "yn" : "ynf";
                 exc.retval = zero;                  exc.retval = zero;
                 if (_LIB_VERSION == _POSIX_)                  if (_LIB_VERSION == _POSIX_)
                         errno = ERANGE;                          errno = ERANGE;
Line 690  static double zero = 0.0; /* used as con
Line 732  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 40:              case 40:
               case 140:
                 /* gamma(finite) overflow */                  /* gamma(finite) overflow */
                 exc.type = OVERFLOW;                  exc.type = OVERFLOW;
                 exc.name = "gamma";                  exc.name = type < 100 ? "gamma" : "gammaf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = HUGE;                    exc.retval = HUGE;
                 else                  else
Line 704  static double zero = 0.0; /* used as con
Line 747  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 41:              case 41:
               case 141:
                 /* gamma(-integer) or gamma(0) */                  /* gamma(-integer) or gamma(0) */
                 exc.type = SING;                  exc.type = SING;
                 exc.name = "gamma";                  exc.name = type < 100 ? "gamma" : "gammaf";
                 if (_LIB_VERSION == _SVID_)                  if (_LIB_VERSION == _SVID_)
                   exc.retval = HUGE;                    exc.retval = HUGE;
                 else                  else
Line 721  static double zero = 0.0; /* used as con
Line 765  static double zero = 0.0; /* used as con
                 }                  }
                 break;                  break;
             case 42:              case 42:
               case 142:
                 /* pow(NaN,0.0) */                  /* pow(NaN,0.0) */
                 /* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */                  /* error only if _LIB_VERSION == _SVID_ & _XOPEN_ */
                 exc.type = DOMAIN;                  exc.type = DOMAIN;
                 exc.name = "pow";                  exc.name = type < 100 ? "pow" : "powf";
                 exc.retval = x;                  exc.retval = x;
                 if (_LIB_VERSION == _IEEE_ ||                  if (_LIB_VERSION == _IEEE_ ||
                     _LIB_VERSION == _POSIX_) exc.retval = 1.0;                      _LIB_VERSION == _POSIX_) exc.retval = 1.0;

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4

CVSweb <webmaster@jp.NetBSD.org>