Annotation of 40BSD/libc/gen/frexp.c, revision 1.1.1.1

1.1       root        1: /*
                      2:        the call
                      3:                x = frexp(arg,&exp);
                      4:        must return a double fp quantity x which is <1.0
                      5:        and the corresponding binary exponent "exp".
                      6:        such that
                      7:                arg = x*2^exp
                      8: */
                      9: 
                     10: double
                     11: frexp(x,i)
                     12: double x;
                     13: int *i;
                     14: {
                     15:        int neg;
                     16:        int j;
                     17:        j = 0;
                     18:        neg = 0;
                     19:        if(x<0){
                     20:                x = -x;
                     21:                neg = 1;
                     22:                }
                     23:        if(x>1.0)
                     24:                while(x>1){
                     25:                        j = j+1;
                     26:                        x = x/2;
                     27:                        }
                     28:        else if(x<0.5)
                     29:                while(x<0.5){
                     30:                        j = j-1;
                     31:                        x = 2*x;
                     32:                        }
                     33:        *i = j;
                     34:        if(neg) x = -x;
                     35:        return(x);
                     36:        }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.