r10985: actually apply diff
[kmrcl.git] / math.lisp
index fcbab3c4baa2e922b0eba049af0bd04079a19739..c03b27f5d54238e5cfc1a48df0e43d7e3d3d5f8c 100644 (file)
--- a/math.lisp
+++ b/math.lisp
                       (double-float double-float-epsilon)
                       (long-float long-float-epsilon))
                     (- exponent 1.0-exponent))))))
+
+(defun sinc (x)
+  (if (zerop x)
+      1d0
+    (let ((x (coerce x 'double-float)))
+      (/ (sin x) x))))
+
+
+(defun numbers-within-percentage (a b percent)
+  "Determines if two numbers are equal within a percentage difference."
+  (let ((abs-diff (* 0.01 percent 0.5 (+ (abs a) (abs b)))))
+    (< (abs (- a b)) abs-diff)))