#include "factorization_solve.h" #include #include #include #include #include using namespace std; void factorization_solve(vector &A, vector &b, const int32_t &n_rhs) { int32_t nelem = A.size(); int32_t N = sqrt(nelem); assert(N == static_cast(b.size())/n_rhs); vector IPIV(N); // pivot indices int info_factorization; dgetrf_(&N, &N, A.data(), &N, IPIV.data(), &info_factorization); const char transp = 'N'; int info_solve; dgetrs_(&transp, &N, &n_rhs, A.data(), &N, IPIV.data(), b.data(), &N, &info_solve, 1); // 1 is length of parameter 'N' } void print_matrix(vector &A, size_t M, size_t N) { for (size_t i = 0; i < M; ++i) { for (size_t j = 0; j < N; ++j) { cout << A[N*i + j] << "\t"; } cout << endl; } cout << endl; }