1*20002Sdist /* 2*20002Sdist acos(arg) return the arccos, 3*20002Sdist respectively of their arguments. 4*20002Sdist 5*20002Sdist Arctan is called after appropriate range reduction. 6*20002Sdist */ 7*20002Sdist 8*20002Sdist #include <errno.h> 9*20002Sdist int errno; 10*20002Sdist double atan(); 11*20002Sdist double asin(); 12*20002Sdist static double pio2 = 1.570796326794896619; 13*20002Sdist 14*20002Sdist double 15*20002Sdist acos(arg) double arg; { 16*20002Sdist 17*20002Sdist asm(" bispsw $0xe0"); 18*20002Sdist if(arg > 1.|| arg < -1.){ 19*20002Sdist errno = EDOM; 20*20002Sdist return(0.); 21*20002Sdist } 22*20002Sdist 23*20002Sdist return(pio2 - asin(arg)); 24*20002Sdist } 25