From b2d4f7dac42a7236a6e5c993844f7cc04606f436 Mon Sep 17 00:00:00 2001 From: Francesco Cozzuto Date: Thu, 30 Mar 2023 01:35:30 +0200 Subject: [PATCH] bug fix in matrix inversion routine --- src/lina.c | 2 +- src/lina.h | 20 +++++++------------- 2 files changed, 8 insertions(+), 14 deletions(-) diff --git a/src/lina.c b/src/lina.c index 3f9b517..3387490 100644 --- a/src/lina.c +++ b/src/lina.c @@ -985,7 +985,7 @@ copyMatrixWithoutRowAndCol(double *M, double *D, int n, // Copy the lower left portion that comes // after both the deleted column and row. for (int i = del_row+1; i < n; i++) - for (int j = del_row+1; j < n; j++) + for (int j = del_col+1; j < n; j++) D[(i-1) * (n-1) + (j-1)] = M[i * n + j]; // Copy the bottom portion that comes after diff --git a/src/lina.h b/src/lina.h index 22a8552..82571ad 100644 --- a/src/lina.h +++ b/src/lina.h @@ -1,19 +1,13 @@ #include #include -void lina_dot(double *A, double *B, double *C, int m, int n, int l); -void lina_add(double *A, double *B, double *C, int m, int n); -bool lina_det(double *A, int n, double *det); -void lina_scale(double *A, double *B, double k, int m, int n); -void lina_transpose(double *A, double *B, int m, int n); -bool lina_inverse(double *M, double *D, int n); -void lina_conv(double *A, double *B, double *C, - int Aw, int Ah, int Bw, int Bh); - -void lina_dot2(double *A, double *B, double *C, - int As, int Bs, int Cs, - int m, int n, int l); - +void lina_dot(double *A, double *B, double *C, int m, int n, int l); +void lina_add(double *A, double *B, double *C, int m, int n); +bool lina_det(double *A, int n, double *det); +void lina_scale(double *A, double *B, double k, int m, int n); +void lina_transpose(double *A, double *B, int m, int n); +bool lina_inverse(double *M, double *D, int n); +void lina_conv(double *A, double *B, double *C, int Aw, int Ah, int Bw, int Bh); bool lina_eig(double *M, double complex *E, int n); void lina_reallyP(int *P, double *P2, int n); int lina_decompLUP(double *A, double *L, double *U, int *P, int n);