Prims - Implement rt, lt
[clnl] / src / main / nvm / utils.lisp
1 (in-package #:clnl-nvm)
2
3 (defun min-pxcor () (getf *dimensions* :xmin))
4 (defun max-pxcor () (getf *dimensions* :xmax))
5 (defun min-pycor () (getf *dimensions* :ymin))
6 (defun max-pycor () (getf *dimensions* :ymax))
7
8 (defvar *cached-sins*
9  (loop
10   :for i :from 0 :to 360
11   :collect
12   (let
13    ((potential-sin (strictmath:sin (strictmath:to-radians i))))
14    (if (< (abs potential-sin) 3.2d-15) 0d0 potential-sin))))
15
16 (defun using-cached-sin (n)
17  (if (= (floor n) n) (nth (floor n) *cached-sins*) (strictmath:sin (strictmath:to-radians n))))
18
19 (defvar *cached-coses*
20  (loop
21   :for i :from 0 :to 360
22   :collect
23   (let
24    ((potential-cos (strictmath:cos (strictmath:to-radians i))))
25    (if (< (abs potential-cos) 3.2d-15) 0d0 potential-cos))))
26
27 (defun using-cached-cos (n)
28  (if (= (floor n) n) (nth (floor n) *cached-coses*) (strictmath:cos (strictmath:to-radians n))))