Annotation of 43BSDReno/old/libm/libom/asin.c, revision 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.