diff --git a/src/simpleFile.cpp b/src/simpleFile.cpp index ff0b857..738b902 100644 --- a/src/simpleFile.cpp +++ b/src/simpleFile.cpp @@ -12,7 +12,21 @@ arma::vec* general_algorithm( arma::vec* g_vec ) { + int n = main_diag->n_elem; + double d; + for (int i = 1; i < n; i++) { + d = (*sub_diag)(i-1) / (*main_diag)(i-1); + (*main_diag)(i) -= d*(*sup_diag)(i-1); + (*g_vec)(i) -= d*(*g_vec)(i-1); + } + + (*g_vec)(n-1) /= (*main_diag)(n-1); + + for (int i = n-2; i >= 0; i--) { + (*g_vec)(i) = ((*g_vec)(i) - (*sup_diag)(i) * (*g_vec)(i+1)) / (*main_diag)(i); + } + return g_vec; }