Line | |
---|

1 | |
---|

2 | /* @(#)w_lgamma_r.c 5.1 93/09/24 */ |
---|

3 | /* |
---|

4 | * ==================================================== |
---|

5 | * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. |
---|

6 | * |
---|

7 | * Developed at SunPro, 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 lgamma_r(double x, int *signgamp) |
---|

16 | */ |
---|

17 | |
---|

18 | #include <libm/fdlibm.h> |
---|

19 | |
---|

20 | |
---|

21 | #ifdef __STDC__ |
---|

22 | double lgamma_r(double x, int *signgamp) /* wrapper lgamma_r */ |
---|

23 | #else |
---|

24 | double lgamma_r(x,signgamp) /* wrapper lgamma_r */ |
---|

25 | double x; int *signgamp; |
---|

26 | #endif |
---|

27 | { |
---|

28 | #ifdef _IEEE_LIBM |
---|

29 | return __ieee754_lgamma_r(x,signgamp); |
---|

30 | #else |
---|

31 | double y; |
---|

32 | y = __ieee754_lgamma_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,15); /* lgamma pole */ |
---|

37 | else |
---|

38 | return __kernel_standard(x,x,14); /* lgamma overflow */ |
---|

39 | } else |
---|

40 | return y; |
---|

41 | #endif |
---|

42 | } |
---|

**Note:** See

TracBrowser
for help on using the repository browser.