code 35121; real procedure ARCSIN(X); value X; real X; begin real U; U:= ABS(X); ARCSIN:= if U<0.8 then ARCTAN(X/SQRT(1-X*X)) else SIGN(X) * ( if U=1 then 1.57079632679489 else ( 1.57079632679489 - ARCTAN(SQRT(1/(X*X)-1)))) end ARCSIN; eop