diff options
Diffstat (limited to 'cl/src')
-rw-r--r-- | cl/src/approx/derivative.lisp | 8 | ||||
-rw-r--r-- | cl/src/approx/package.lisp | 4 | ||||
-rw-r--r-- | cl/src/utils/package.lisp | 4 | ||||
-rw-r--r-- | cl/src/utils/within-range.lisp | 5 |
4 files changed, 21 insertions, 0 deletions
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)))) |