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