#include arma::vec* general_algorithm( arma::vec* sub_diag, arma::vec* main_diag, arma::vec* sup_diag, 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; } arma::vec* special_algorithm( double sub_sig, double main_sig, double sup_sig, arma::vec* g_vec ) { } arma::vec* error( arma::vec* v_vec, arma::vec* a_vec ) { } double time() { } int main() { }