Annotation of 43BSDTahoe/usr.lib/libF77/zabs.c, revision 1.1

1.1     ! root        1: /*
        !             2:  *     @(#)zabs.c      5.2     11/3/86
        !             3:  */
        !             4: 
        !             5: #ifdef tahoe
        !             6: /* THIS IS BASED ON TAHOE FP REPRESENTATION */
        !             7: #include <tahoemath/FP.h>
        !             8: 
        !             9: double zabs(real, imag)
        !            10: double real, imag;
        !            11: {
        !            12: double temp, sqrt();
        !            13: 
        !            14: if(real < 0)
        !            15:        *(long int *)&real ^= SIGN_BIT;
        !            16: if(imag < 0)
        !            17:        *(long int *)&imag ^= SIGN_BIT;
        !            18: if(imag > real){
        !            19:        temp = real;
        !            20:        real = imag;
        !            21:        imag = temp;
        !            22: }
        !            23: if(imag == 0.)         /* if((real+imag) == real) */
        !            24:        return(real);
        !            25: 
        !            26: temp = imag/real;
        !            27: temp = real*sqrt(1.0 + temp*temp);  /*overflow!!*/
        !            28: return(temp);
        !            29: }
        !            30: #endif tahoe

unix.superglobalmegacorp.com

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