X-Git-Url: http://git.kpe.io/?p=kmrcl.git;a=blobdiff_plain;f=math.lisp;h=c03b27f5d54238e5cfc1a48df0e43d7e3d3d5f8c;hp=fcbab3c4baa2e922b0eba049af0bd04079a19739;hb=9493a989698437c5b7615a4fc280856cb0cd2dfe;hpb=ad1c18be22d33d7dbda5344c801ee62c3e069072 diff --git a/math.lisp b/math.lisp index fcbab3c..c03b27f 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 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)))