(I deleted the prompt since it looks like a citation. This is the
ANSI CL version of GCL, by the way).
(lisp-implementation-version)
"GCL-2-5.2000000000000002"
(scale-float 1.0 -24)
1.0
This seems to explain everything since the code (in trigi.lisp) is
#.(SETQ EPS #+PDP10 (FSC 1.0 -26.)
#+cl ;(ASH 1.0 #+3600 -24. #-3600 -31.)
(scale-float 1.0 -24)
#-(or PDP10 Cl) 1.4E-8)
[...]
(DEFMFUN ASIN (NUM)
(LET ((YFLO (FLOAT NUM)))
(COND ((> (ABS YFLO) 1.0) (LOGARC '%ASIN YFLO))
((< (ABS YFLO) #.(SQRT EPS)) YFLO)
(T (*$ (ATAN (ABS YFLO) (SQRT (-$ 1.0 (*$ YFLO YFLO))))
(IF (< YFLO 0.0) -1.0 1.0))))))
So the second clause always returns the argument.
Wolfgang