X-Git-Url: https://code.consxy.com/gitweb/gitweb.cgi?a=blobdiff_plain;f=src%2Fmain%2Fnvm%2Futils.lisp;h=a656df32eb37dd6b89f12d444d40d25f51b42248;hb=1e4bdde8e36b29b411b6a113f586d040abac331f;hp=22242f5f2f285fda1e2dd834546251ae90efb291;hpb=81d51af6e0ac022d1e96b2bcd45909b75d855675;p=clnl diff --git a/src/main/nvm/utils.lisp b/src/main/nvm/utils.lisp index 22242f5..a656df3 100644 --- a/src/main/nvm/utils.lisp +++ b/src/main/nvm/utils.lisp @@ -4,3 +4,25 @@ (defun max-pxcor () (getf *dimensions* :xmax)) (defun min-pycor () (getf *dimensions* :ymin)) (defun max-pycor () (getf *dimensions* :ymax)) + +(defvar *cached-sins* + (loop + :for i :from 0 :to 360 + :collect + (let + ((potential-sin (strictmath:sin (strictmath:to-radians i)))) + (if (< (abs potential-sin) 3.2d-15) 0d0 potential-sin)))) + +(defun using-cached-sin (n) + (if (= (floor n) n) (nth (floor n) *cached-sins*) (strictmath:sin (strictmath:to-radians n)))) + +(defvar *cached-coses* + (loop + :for i :from 0 :to 360 + :collect + (let + ((potential-cos (strictmath:cos (strictmath:to-radians i)))) + (if (< (abs potential-cos) 3.2d-15) 0d0 potential-cos)))) + +(defun using-cached-cos (n) + (if (= (floor n) n) (nth (floor n) *cached-coses*) (strictmath:cos (strictmath:to-radians n))))