e_lgammaf_r.c (152869) | e_lgammaf_r.c (152878) |
---|---|
1/* e_lgammaf_r.c -- float version of e_lgamma_r.c. 2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. 3 */ 4 5/* 6 * ==================================================== 7 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 8 * 9 * Developed at SunPro, a Sun Microsystems, Inc. business. 10 * Permission to use, copy, modify, and distribute this 11 * software is freely granted, provided that this notice 12 * is preserved. 13 * ==================================================== 14 */ 15 16#ifndef lint | 1/* e_lgammaf_r.c -- float version of e_lgamma_r.c. 2 * Conversion to float by Ian Lance Taylor, Cygnus Support, ian@cygnus.com. 3 */ 4 5/* 6 * ==================================================== 7 * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved. 8 * 9 * Developed at SunPro, a Sun Microsystems, Inc. business. 10 * Permission to use, copy, modify, and distribute this 11 * software is freely granted, provided that this notice 12 * is preserved. 13 * ==================================================== 14 */ 15 16#ifndef lint |
17static char rcsid[] = "$FreeBSD: head/lib/msun/src/e_lgammaf_r.c 152869 2005-11-28 04:58:57Z bde $"; | 17static char rcsid[] = "$FreeBSD: head/lib/msun/src/e_lgammaf_r.c 152878 2005-11-28 08:32:15Z bde $"; |
18#endif 19 20#include "math.h" 21#include "math_private.h" 22 23static const float 24two23= 8.3886080000e+06, /* 0x4b000000 */ 25half= 5.0000000000e-01, /* 0x3f000000 */ --- 117 unchanged lines hidden (view full) --- 143 144 GET_FLOAT_WORD(hx,x); 145 146 /* purge off +-inf, NaN, +-0, and negative arguments */ 147 *signgamp = 1; 148 ix = hx&0x7fffffff; 149 if(ix>=0x7f800000) return x*x; 150 if(ix==0) return one/zero; | 18#endif 19 20#include "math.h" 21#include "math_private.h" 22 23static const float 24two23= 8.3886080000e+06, /* 0x4b000000 */ 25half= 5.0000000000e-01, /* 0x3f000000 */ --- 117 unchanged lines hidden (view full) --- 143 144 GET_FLOAT_WORD(hx,x); 145 146 /* purge off +-inf, NaN, +-0, and negative arguments */ 147 *signgamp = 1; 148 ix = hx&0x7fffffff; 149 if(ix>=0x7f800000) return x*x; 150 if(ix==0) return one/zero; |
151 if(ix<0x1c800000) { /* |x|<2**-70, return -log(|x|) */ | 151 if(ix<0x35000000) { /* |x|<2**-21, return -log(|x|) */ |
152 if(hx<0) { 153 *signgamp = -1; 154 return -__ieee754_logf(-x); 155 } else return -__ieee754_logf(x); 156 } 157 if(hx<0) { 158 if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */ 159 return one/zero; --- 72 unchanged lines hidden --- | 152 if(hx<0) { 153 *signgamp = -1; 154 return -__ieee754_logf(-x); 155 } else return -__ieee754_logf(x); 156 } 157 if(hx<0) { 158 if(ix>=0x4b000000) /* |x|>=2**23, must be -integer */ 159 return one/zero; --- 72 unchanged lines hidden --- |