ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/frexp.c
Revision: 1.4
Committed: Wed Nov 12 18:06:54 2003 UTC (20 years, 4 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()

File Contents

# 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 }