e_j0f.c (275476) | e_j0f.c (275518) |
---|---|
1/* e_j0f.c -- float version of e_j0.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#include <sys/cdefs.h> | 1/* e_j0f.c -- float version of e_j0.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#include <sys/cdefs.h> |
17__FBSDID("$FreeBSD: head/lib/msun/src/e_j0f.c 275476 2014-12-04 15:57:58Z kargl $"); | 17__FBSDID("$FreeBSD: head/lib/msun/src/e_j0f.c 275518 2014-12-05 19:00:55Z kargl $"); |
18 19#include "math.h" 20#include "math_private.h" 21 22static float pzerof(float), qzerof(float); 23 24static const float 25huge = 1e30, --- 38 unchanged lines hidden (view full) --- 64 */ 65 if(ix>0x54000000) z = (invsqrtpi*cc)/sqrtf(x); 66 else { 67 u = pzerof(x); v = qzerof(x); 68 z = invsqrtpi*(u*cc-v*ss)/sqrtf(x); 69 } 70 return z; 71 } | 18 19#include "math.h" 20#include "math_private.h" 21 22static float pzerof(float), qzerof(float); 23 24static const float 25huge = 1e30, --- 38 unchanged lines hidden (view full) --- 64 */ 65 if(ix>0x54000000) z = (invsqrtpi*cc)/sqrtf(x); 66 else { 67 u = pzerof(x); v = qzerof(x); 68 z = invsqrtpi*(u*cc-v*ss)/sqrtf(x); 69 } 70 return z; 71 } |
72 if(ix<0x39000000) { /* |x| < 2**-13 */ | 72 if(ix<0x3c000000) { /* |x| < 2**-7 */ |
73 if(huge+x>one) { /* raise inexact if x != 0 */ | 73 if(huge+x>one) { /* raise inexact if x != 0 */ |
74 if(ix<0x32000000) return one; /* |x|<2**-27 */ 75 else return one - (float)0.25*x*x; | 74 if(ix<0x39800000) return one; /* |x|<2**-12 */ 75 else return one - x*x/4; |
76 } 77 } 78 z = x*x; 79 r = z*(R02+z*(R03+z*(R04+z*R05))); 80 s = one+z*(S01+z*(S02+z*(S03+z*S04))); 81 if(ix < 0x3F800000) { /* |x| < 1.00 */ 82 return one + z*((float)-0.25+(r/s)); 83 } else { --- 254 unchanged lines hidden --- | 76 } 77 } 78 z = x*x; 79 r = z*(R02+z*(R03+z*(R04+z*R05))); 80 s = one+z*(S01+z*(S02+z*(S03+z*S04))); 81 if(ix < 0x3F800000) { /* |x| < 1.00 */ 82 return one + z*((float)-0.25+(r/s)); 83 } else { --- 254 unchanged lines hidden --- |