diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-09-25 10:36:23 -0600 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2023-09-25 10:36:23 -0600 |
commit | 58c73fd511b77cb94124b71a4bb75c7ab6a6d8bc (patch) | |
tree | 25ae52afe365de29973efbb10fdecf2712deb430 /cl/src/vector | |
parent | 2e284b71500a1f8dc6cc46ecf21eb1e9389ea780 (diff) | |
download | cmath-58c73fd511b77cb94124b71a4bb75c7ab6a6d8bc.tar.gz cmath-58c73fd511b77cb94124b71a4bb75c7ab6a6d8bc.zip |
add september notes & hw2 code / pdf
Diffstat (limited to 'cl/src/vector')
-rw-r--r-- | cl/src/vector/distance.lisp | 6 | ||||
-rw-r--r-- | cl/src/vector/norm.lisp | 17 | ||||
-rw-r--r-- | cl/src/vector/package.lisp | 7 |
3 files changed, 30 insertions, 0 deletions
diff --git a/cl/src/vector/distance.lisp b/cl/src/vector/distance.lisp new file mode 100644 index 0000000..74631ce --- /dev/null +++ b/cl/src/vector/distance.lisp @@ -0,0 +1,6 @@ +(in-package :lizfcm.vector) + +(defun distance (v1 v2 norm) + (let* ((d (mapcar #'- v1 v2)) + (length (funcall norm d))) + length)) diff --git a/cl/src/vector/norm.lisp b/cl/src/vector/norm.lisp new file mode 100644 index 0000000..2158296 --- /dev/null +++ b/cl/src/vector/norm.lisp @@ -0,0 +1,17 @@ +(in-package :lizfcm.vector) + +(defun p-norm (p) + (lambda (v) + (expt + (reduce (lambda (acc x) + (+ acc x)) + (mapcar (lambda (x) + (abs + (expt x p))) + v)) + (/ 1 p)))) + +(defun max-norm (v) + (reduce (lambda (acc x) + (max acc x)) + v)) diff --git a/cl/src/vector/package.lisp b/cl/src/vector/package.lisp new file mode 100644 index 0000000..009b190 --- /dev/null +++ b/cl/src/vector/package.lisp @@ -0,0 +1,7 @@ +(in-package :cl-user) +(defpackage lizfcm.vector + (:use :cl) + (:export + :p-norm + :max-norm + :distance)) |