[movitz-cvs] CVS movitz/losp/muerte

ffjeld ffjeld at common-lisp.net
Sun Apr 8 13:44:45 UTC 2007


Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv27055

Modified Files:
	ratios.lisp 
Log Message:
Add some silly and slow cos and sin functions.


--- /project/movitz/cvsroot/movitz/losp/muerte/ratios.lisp	2007/03/16 19:49:24	1.9
+++ /project/movitz/cvsroot/movitz/losp/muerte/ratios.lisp	2007/04/08 13:44:44	1.10
@@ -10,7 +10,7 @@
 ;;;; Author:        Frode Vatvedt Fjeld <frodef at acm.org>
 ;;;; Created at:    Tue Jul 20 00:39:59 2004
 ;;;;                
-;;;; $Id: ratios.lisp,v 1.9 2007/03/16 19:49:24 ffjeld Exp $
+;;;; $Id: ratios.lisp,v 1.10 2007/04/08 13:44:44 ffjeld Exp $
 ;;;;                
 ;;;;------------------------------------------------------------------
 
@@ -76,9 +76,28 @@
     (integer 1)
     (ratio (%ratio-denominator x))))
 
-(defconstant pi #xea7632a/4aa1a8b)
-
 (defconstant least-positive-short-float 1/1000)
 (defconstant least-positive-single-float 1/1000)
 (defconstant least-positive-double-float 1/1000)
 (defconstant least-positive-long-float 1/1000)
+
+;;;
+
+(defconstant pi #xea7632a/4aa1a8b)
+
+(defvar long-float-epsilon 1/10000)
+
+(defun cos (x)
+  "http://mathworld.wolfram.com/Cosine.html"
+  (do* ((rad (mod x 44/7))
+        (n2 0 (+ n2 2))
+        (sign 1 (- sign))
+        (denominator 1 (* denominator (1- n2) n2))
+        (term 1 (/ (expt rad n2)
+                   denominator))
+        (sum 1 (+ sum (* sign term))))
+       ((<= term long-float-epsilon)
+        sum)))
+
+(defun sin (x)
+  (cos (- x (/ pi 2))))




More information about the Movitz-cvs mailing list