]> git.jsancho.org Git - gacela.git/blobdiff - src/gacela_misc.scm
(no commit message)
[gacela.git] / src / gacela_misc.scm
index b75a44eb1cf91a4d1c1158db9c754a5c06687b0a..a9393ca89607d52e3d75ea42700753ec9f6c44d6 100644 (file)
 ;;; along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
 
+
+;;; Additional modules
+
+(use-modules (srfi srfi-1))
+
+
+;;; Constants
+
+(define *pi* (* (asin 1) 2))
+
+
+;;; Functions
+
 (define (nearest-power-of-two n)
   (define (power p n)
     (cond ((> (* p 2) n) p)
          (else (power (* p 2) n))))
   (power 1 n))
+
+(define (degrees-to-radians angle)
+  (/ (* angle *pi*) 180))
+
+(define (radians-to-degrees angle)
+  (/ (* angle 180) *pi*))
+
+(define-macro (pushnew elem list)
+  `(cond ((not (find (lambda (e) (eq? e ,elem)) ,list))
+         (set! ,list (cons ,elem ,list)))))
+
+(define (assoc-multiple-set! alist . pairs)
+  (define (amset! alist pairs)
+    (cond ((< (length pairs) 2)
+          alist)
+         (else
+          (assoc-set! alist (car pairs) (cadr pairs))
+          (amset! alist (cddr pairs)))))
+  (amset! alist pairs))