X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=math.lisp;h=b3df9d6a045e0fb66938e21f0bdf7d7acb3a364e;hp=fcbab3c4baa2e922b0eba049af0bd04079a19739;hb=b43594669e466089305948a40cfacd1b63b0767a;hpb=ad1c18be22d33d7dbda5344c801ee62c3e069072 diff --git a/math.lisp b/math.lisp index fcbab3c..b3df9d6 100644 --- a/math.lisp +++ b/math.lisp @@ -96,3 +96,15 @@ (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 number-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)))