Revision: | 1.4 |
Committed: | Wed Nov 12 18:06:54 2003 UTC (21 years, 5 months ago) by greg |
Content type: | text/plain |
Branch: | MAIN |
CVS Tags: | rad3R6P1, rad3R6 |
Changes since 1.3: | +5 -8 lines |
Log Message: | Update to library replacement function frexp() |
# | Content |
---|---|
1 | #ifndef lint |
2 | static const char RCSid[] = "$Id: frexp.c,v 1.3 2003/02/25 02:47:21 greg Exp $"; |
3 | #endif |
4 | |
5 | double |
6 | frexp(x, ip) /* call it paranoia, I've seen the lib version */ |
7 | double x; |
8 | int *ip; |
9 | { |
10 | int neg; |
11 | register int i; |
12 | |
13 | if (neg = (x < 0.0)) |
14 | x = -x; |
15 | else if (x == 0.0) { |
16 | *ip = 0; |
17 | return(0.0); |
18 | } |
19 | if (x < 0.5) |
20 | for (i = 0; x < 0.5; i--) |
21 | x *= 2.0; |
22 | else |
23 | for (i = 0; x >= 1.0; i++) |
24 | x *= 0.5; |
25 | *ip = i; |
26 | return (neg ? -x : x); |
27 | } |