|
|
1.1 root 1: /* @(#)frexp.c 4.1 (Berkeley) 12/21/80 */
2: /*
3: the call
4: x = frexp(arg,&exp);
5: must return a double fp quantity x which is <1.0
6: and the corresponding binary exponent "exp".
7: such that
8: arg = x*2^exp
9: */
10:
11: double
12: frexp(x,i)
13: double x;
14: int *i;
15: {
16: int neg;
17: int j;
18: j = 0;
19: neg = 0;
20: if(x<0){
21: x = -x;
22: neg = 1;
23: }
24: if(x>1.0)
25: while(x>1){
26: j = j+1;
27: x = x/2;
28: }
29: else if(x<0.5)
30: while(x<0.5){
31: j = j-1;
32: x = 2*x;
33: }
34: *i = j;
35: if(neg) x = -x;
36: return(x);
37: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.