home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: Science / Science.zip / gmt_os2.zip / src / math / w_gamma_r.c < prev    next >
Encoding:
C/C++ Source or Header  |  1995-03-16  |  1.1 KB  |  43 lines

  1.  
  2. /* @(#)w_gamma_r.c 1.3 95/01/18 */
  3. /*
  4.  * ====================================================
  5.  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
  6.  *
  7.  * Developed at SunSoft, a Sun Microsystems, Inc. business.
  8.  * Permission to use, copy, modify, and distribute this
  9.  * software is freely granted, provided that this notice 
  10.  * is preserved.
  11.  * ====================================================
  12.  */
  13.  
  14. /* 
  15.  * wrapper double gamma_r(double x, int *signgamp)
  16.  */
  17.  
  18. #include "fdlibm.h"
  19.  
  20.  
  21. #ifdef __STDC__
  22.     double gamma_r(double x, int *signgamp) /* wrapper lgamma_r */
  23. #else
  24.     double gamma_r(x,signgamp)              /* wrapper lgamma_r */
  25.         double x; int *signgamp;
  26. #endif
  27. {
  28. #ifdef _IEEE_LIBM
  29.     return __ieee754_gamma_r(x,signgamp);
  30. #else
  31.         double y;
  32.         y = __ieee754_gamma_r(x,signgamp);
  33.         if(_LIB_VERSION == _IEEE_) return y;
  34.         if(!finite(y)&&finite(x)) {
  35.             if(floor(x)==x&&x<=0.0)
  36.                 return __kernel_standard(x,x,41); /* gamma pole */
  37.             else
  38.                 return __kernel_standard(x,x,40); /* gamma overflow */
  39.         } else
  40.             return y;
  41. #endif
  42. }             
  43.