void eqnsys<nr_type_t>::solve (void) { #if DEBUG && 0 time_t t = time (NULL); #endif switch (algo) { case ALGO_INVERSE: solve_inverse (); break; case ALGO_GAUSS: solve_gauss (); break; case ALGO_GAUSS_JORDAN: solve_gauss_jordan (); break; case ALGO_LU_DECOMPOSITION_CROUT: solve_lu_crout (); break; case ALGO_LU_DECOMPOSITION_DOOLITTLE: solve_lu_doolittle (); break; case ALGO_LU_FACTORIZATION_CROUT: factorize_lu_crout (); break; case ALGO_LU_FACTORIZATION_DOOLITTLE: factorize_lu_doolittle (); break; case ALGO_LU_SUBSTITUTION_CROUT: substitute_lu_crout (); break; case ALGO_LU_SUBSTITUTION_DOOLITTLE: substitute_lu_doolittle (); break; case ALGO_JACOBI: case ALGO_GAUSS_SEIDEL: solve_iterative (); break; case ALGO_SOR: solve_sor (); break; case ALGO_QR_DECOMPOSITION: solve_qr (); break; case ALGO_QR_DECOMPOSITION_LS: solve_qr_ls (); break; case ALGO_SV_DECOMPOSITION: solve_svd (); break; case ALGO_QR_DECOMPOSITION_2: solve_qrh (); break; } #if DEBUG && 0 logprint (LOG_STATUS, "NOTIFY: %dx%d eqnsys solved in %ld seconds\n", A->getRows (), A->getCols (), time (NULL) - t); #endif }
void solve(vector<vector<char>>& board) { return solve_iterative(board); }