From 6bf4b90c90f15f4ab60833bddf5b5756d1a6b1f6 Mon Sep 17 00:00:00 2001 From: Elizabeth Alexander Hunt Date: Thu, 2 Jul 2026 11:55:17 -0700 Subject: Init --- Homework/math4610/src/lin.c | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 Homework/math4610/src/lin.c (limited to 'Homework/math4610/src/lin.c') diff --git a/Homework/math4610/src/lin.c b/Homework/math4610/src/lin.c new file mode 100644 index 0000000..d531025 --- /dev/null +++ b/Homework/math4610/src/lin.c @@ -0,0 +1,19 @@ +#include "lizfcm.h" +#include + +Line *least_squares_lin_reg(Array_double *x, Array_double *y) { + assert(x->size == y->size); + + uint64_t n = x->size; + double sum_x = sum_v(x); + double sum_y = sum_v(y); + double sum_xy = v_dot_v(x, y); + double sum_xx = v_dot_v(x, x); + double denom = ((n * sum_xx) - (sum_x * sum_x)); + + Line *line = malloc(sizeof(Line)); + line->m = ((sum_xy * n) - (sum_x * sum_y)) / denom; + line->a = ((sum_y * sum_xx) - (sum_x * sum_xy)) / denom; + + return line; +} -- cgit v1.3