From 38982b501a0f0bbb70834e010123a651141748e1 Mon Sep 17 00:00:00 2001 From: Spectre113 <132831053+Spectre113@users.noreply.github.com> Date: Sun, 22 Sep 2024 22:10:53 +0700 Subject: [PATCH] Division by 0 check added --- tools/elimination.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/tools/elimination.cpp b/tools/elimination.cpp index 183cdbd..679e402 100644 --- a/tools/elimination.cpp +++ b/tools/elimination.cpp @@ -85,17 +85,22 @@ FracturedMatrix elimination(Matrix A, ColumnVector C, ColumnVector b, int pivot_ DestroyMatrix destroyedMatrix = destroyGeneralMatrix(generalMatrix); - pivot_column_index = Math::max_index(destroyedMatrix.C); + pivot_column_index = max_index(destroyedMatrix.C); ColumnVector ratio_vector(A.getRows()); for (int i = 0; i < A.getRows(); i++) { - ratio_vector[i] = b[i] / A[i][pivot_column_index]; + if (A[i][pivot_column_index] != 0) { + ratio_vector[i] = b[i] / A[i][pivot_column_index]; + } + + else { + ratio_vector[i] = 0; + } } - int pivot_row_index = Math::min_index(ratio_vector); + int pivot_row_index = min_index(ratio_vector); return {A, C, b, pivot_column_index, pivot_row_index}; -}