From 9fcd733232b6f209519d2eadc83ed4cbd3376e0d Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Thu, 7 Sep 2023 12:19:32 -0600 Subject: common lisp! --- cl/src/approx/derivative.lisp | 8 ++++++++ cl/src/approx/package.lisp | 4 ++++ cl/src/utils/package.lisp | 4 ++++ cl/src/utils/within-range.lisp | 5 +++++ 4 files changed, 21 insertions(+) create mode 100644 cl/src/approx/derivative.lisp create mode 100644 cl/src/approx/package.lisp create mode 100644 cl/src/utils/package.lisp create mode 100644 cl/src/utils/within-range.lisp (limited to 'cl/src') diff --git a/cl/src/approx/derivative.lisp b/cl/src/approx/derivative.lisp new file mode 100644 index 0000000..280463f --- /dev/null +++ b/cl/src/approx/derivative.lisp @@ -0,0 +1,8 @@ +(in-package :lizfcm.approx) + +(defun derivative-at (f x &optional (delta 0.01)) + (let* ((x2 (+ x delta)) + (x1 (- x delta)) + (y2 (apply f (list x2))) + (y1 (apply f (list x1)))) + (/ (- y2 y1) (- x2 x1)))) diff --git a/cl/src/approx/package.lisp b/cl/src/approx/package.lisp new file mode 100644 index 0000000..60dd0bb --- /dev/null +++ b/cl/src/approx/package.lisp @@ -0,0 +1,4 @@ +(in-package :cl-user) +(defpackage lizfcm.approx + (:use :cl) + (:export :derivative-at)) diff --git a/cl/src/utils/package.lisp b/cl/src/utils/package.lisp new file mode 100644 index 0000000..0436a94 --- /dev/null +++ b/cl/src/utils/package.lisp @@ -0,0 +1,4 @@ +(in-package :cl-user) +(defpackage lizfcm.utils + (:use :cl) + (:export :within-range-p)) diff --git a/cl/src/utils/within-range.lisp b/cl/src/utils/within-range.lisp new file mode 100644 index 0000000..9a0b762 --- /dev/null +++ b/cl/src/utils/within-range.lisp @@ -0,0 +1,5 @@ +(in-package :lizfcm.utils) + +(defun within-range-p (x true-value delta) + (and (< x (+ true-value delta)) + (> x (- true-value delta)))) -- cgit v1.2.3-70-g09d2