summaryrefslogtreecommitdiff
path: root/deprecated-cl/vector,least-squares.lisp
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-10-11 10:04:04 -0600
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2023-10-11 10:04:04 -0600
commit43f06890e2689af2ef54c4480fe5790692a24f65 (patch)
treeb933f3e05aad81d780c0c94646676efa1bbad22d /deprecated-cl/vector,least-squares.lisp
parenta74a732b27fb610133190e89a91b2d42d0cf78b3 (diff)
downloadcmath-43f06890e2689af2ef54c4480fe5790692a24f65.tar.gz
cmath-43f06890e2689af2ef54c4480fe5790692a24f65.zip
deprecate common lisp solutions and write c; it's too much effort to keep up with the requirements for an archive.
Diffstat (limited to 'deprecated-cl/vector,least-squares.lisp')
-rw-r--r--deprecated-cl/vector,least-squares.lisp14
1 files changed, 14 insertions, 0 deletions
diff --git a/deprecated-cl/vector,least-squares.lisp b/deprecated-cl/vector,least-squares.lisp
new file mode 100644
index 0000000..687af32
--- /dev/null
+++ b/deprecated-cl/vector,least-squares.lisp
@@ -0,0 +1,14 @@
+(in-package :lizfcm.vector)
+
+(defun least-squares-reg (x y)
+ (let* ((n (length x))
+ (sum-y (reduce #'+ y))
+ (sum-x (reduce #'+ x))
+ (sum-xy (reduce #'+ (mapcar #'* x y)))
+ (sum-xsquared (reduce #'+ (mapcar #'* x x)))
+ (b (/ (- (* sum-y sum-xsquared) (* sum-x sum-xy))
+ (- (* n sum-xsquared) (* sum-x sum-x))))
+ (a (/ (- (* n sum-xy) (* sum-x sum-y))
+ (- (* n sum-xsquared) (* sum-x sum-x)))))
+ (list a b)))
+