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