Annotation of 43BSDReno/old/libm/libom/asin.c, revision 1.1.1.1

1.1       root        1: /*     @(#)asin.c      4.1     12/25/82        */
                      2: 
                      3: /*
                      4:        asin(arg) and acos(arg) return the arcsin, arccos,
                      5:        respectively of their arguments.
                      6: 
                      7:        Arctan is called after appropriate range reduction.
                      8: */
                      9: 
                     10: #include       <errno.h>
                     11: int errno;
                     12: double atan();
                     13: double sqrt();
                     14: static double pio2     = 1.570796326794896619;
                     15: 
                     16: double
                     17: asin(arg) double arg; {
                     18: 
                     19:        double sign, temp;
                     20: 
                     21:        sign = 1.;
                     22:        if(arg <0){
                     23:                arg = -arg;
                     24:                sign = -1.;
                     25:        }
                     26: 
                     27:        if(arg > 1.){
                     28:                errno = EDOM;
                     29:                return(0.);
                     30:        }
                     31: 
                     32:        temp = sqrt(1. - arg*arg);
                     33:        if(arg > 0.7)
                     34:                temp = pio2 - atan(temp/arg);
                     35:        else
                     36:                temp = atan(arg/temp);
                     37: 
                     38:        return(sign*temp);
                     39: }
                     40: 
                     41: double
                     42: acos(arg) double arg; {
                     43: 
                     44:        if((arg > 1.) || (arg < -1.)){
                     45:                errno = EDOM;
                     46:                return(0.);
                     47:        }
                     48: 
                     49:        return(pio2 - asin(arg));
                     50: }

unix.superglobalmegacorp.com

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