Annotation of 43BSDTahoe/old/libom/hypot.c, revision 1.1.1.1

1.1       root        1: /*     @(#)hypot.c     4.1     12/25/82        */
                      2: 
                      3: /*
                      4:  * sqrt(a^2 + b^2)
                      5:  *     (but carefully)
                      6:  */
                      7: 
                      8: double sqrt();
                      9: double
                     10: hypot(a,b)
                     11: double a,b;
                     12: {
                     13:        double t;
                     14:        if(a<0) a = -a;
                     15:        if(b<0) b = -b;
                     16:        if(a > b) {
                     17:                t = a;
                     18:                a = b;
                     19:                b = t;
                     20:        }
                     21:        if(b==0) return(0.);
                     22:        a /= b;
                     23:        /*
                     24:         * pathological overflow possible
                     25:         * in the next line.
                     26:         */
                     27:        return(b*sqrt(1. + a*a));
                     28: }
                     29: 
                     30: struct complex
                     31: {
                     32:        double  r;
                     33:        double  i;
                     34: };
                     35: 
                     36: double
                     37: cabs(arg)
                     38: struct complex arg;
                     39: {
                     40:        double hypot();
                     41: 
                     42:        return(hypot(arg.r, arg.i));
                     43: }

unix.superglobalmegacorp.com

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