Annotation of coherent/b/lib/libm/sqrt.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Square root function.
                      3:  */
                      4: #include <math.h>
                      5: 
                      6: #if    EMU87
                      7: #include "emumath.h"
                      8: #endif
                      9: 
                     10: double
                     11: sqrt(x)
                     12: double x;
                     13: {
                     14:        double s;
                     15:        int i;
                     16:        register int n;
                     17: 
                     18:        if (x < 0.0) {
                     19:                errno = EDOM;
                     20:                return (0.0);
                     21:        }
                     22:        if (x == 0.)
                     23:                return(0.);
                     24:        n = L2L2P;
                     25:        /* The assignment in the following line is to avoid compiler bug. */
                     26:        s = frexp(x, &i);
                     27:        s = ldexp(1.0, i/2);
                     28:        do {
                     29:                s = (s + x/s) / 2.0;
                     30:        } while (--n);
                     31:        return (s);
                     32: }

unix.superglobalmegacorp.com

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