Simple Challenge :
Give this Routine a Name
and write a description Header.
(DEFUN ARoseByAnyName (ang)
(WHILE (MINUSP ang) (SETQ ang (+ ang PI)))
(WHILE (> ang PI) (SETQ ang (- ang PI)))
(IF (AND (> ang (* 0.5 PI)) (<= ang (* 1.5 PI)))
(- ang PI)
ang
)
)
Helpers :
(DEFUN _rtd (ang) (/ (* ang 180.0) PI))
(DEFUN _dtr (ang) (* PI (/ ang 180.0)))
TestCode :
(_RTD (ARoseByAnyName (_DTR -700.4)))
(_RTD (ARoseByAnyName (_DTR 15)))
(_RTD (ARoseByAnyName (_DTR 90)))
(_RTD (ARoseByAnyName (_DTR 180)))
(_RTD (ARoseByAnyName (_DTR 270)))
(_RTD (ARoseByAnyName (_DTR 335)))
(_RTD (ARoseByAnyName (_DTR -20)))