From 5e85a662d21081bc27adc1142759659cca59cd62 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Wed, 27 Sep 2023 09:38:55 -0600 Subject: fix compute-maceps arguments --- cl/src/approx/maceps.lisp | 14 ++++++-------- cl/tests/maceps.lisp | 10 ++++++---- 2 files changed, 12 insertions(+), 12 deletions(-) (limited to 'cl') diff --git a/cl/src/approx/maceps.lisp b/cl/src/approx/maceps.lisp index cd24482..ad234e8 100644 --- a/cl/src/approx/maceps.lisp +++ b/cl/src/approx/maceps.lisp @@ -1,13 +1,11 @@ (in-package :lizfcm.approx) -(defun compute-maceps (val f) - (let* ((h val) - (a val) - (err val)) +(defun compute-maceps (f a init) + (let ((h init) + (err init)) (loop while (> err 0) do - (progn - (setf h (/ h 2) - err (abs (- (funcall f (+ a h)) - (funcall f a))))) + (setf h (/ h 2) + err (abs (- (funcall f (+ a h)) + (funcall f a)))) collect (list a h err)))) diff --git a/cl/tests/maceps.lisp b/cl/tests/maceps.lisp index 9d61772..cd5ced9 100644 --- a/cl/tests/maceps.lisp +++ b/cl/tests/maceps.lisp @@ -13,10 +13,12 @@ (test maceps :description "double precision provides precision about (mac eps of single precision) squared" - (let* ((maceps-computation-double (compute-maceps 1.0d0 - (lambda (x) x))) - (maceps-computation-single (compute-maceps 1.0 - (lambda (x) x))) + (let* ((maceps-computation-double (compute-maceps (lambda (x) x) + 1.0d0 + 1.0d0)) + (maceps-computation-single (compute-maceps (lambda (x) x) + 1.0 + 1.0)) (last-double-h (cadar (last maceps-computation-double))) (last-single-h (cadar (last maceps-computation-single)))) (is (within-range-p -- cgit v1.2.3-70-g09d2