ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/frexp.c
Revision: 1.3
Committed: Tue Feb 25 02:47:21 2003 UTC (21 years, 2 months ago) by greg
Content type: text/plain
Branch: MAIN
CVS Tags: rad3R5
Changes since 1.2: +1 -56 lines
Log Message:
Replaced inline copyright notice with #include "copyright.h"

File Contents

# User Rev Content
1 greg 1.1 #ifndef lint
2 greg 1.2 static const char RCSid[] = "$Id$";
3 greg 1.1 #endif
4 greg 1.3 #include "copyright.h"
5 greg 1.1
6     frexp(x, ip) /* call it paranoia, I've seen the lib version */
7     register 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 /= 2.0;
25     *ip = i;
26     if (neg)
27     return(-x);
28     else
29     return(x);
30     }