;;;subroutine for arcsine. requires a sine value as input with the function call ;;;COND traps for limits of function (0, 1, -1) and returns the correct value. (defun asin (sine_val / ) (setq sine_limit (* PI 0.5)) (cond ((zerop sine_val) 0.0) ((eq sine_val 1.0) sine_limit) ((eq sine_val -1.0) (- sine_limit)) (T (atan sine_val (sqrt (- 1.0 (* sine_val sine_val))))) ) )