Skip to content

Commit 92a9474

Browse files
added pragmas into GaussJordan
1 parent 5865c34 commit 92a9474

1 file changed

Lines changed: 5 additions & 0 deletions

File tree

src/include/VectorSolver.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include <cmath>
1414
#include <iostream>
1515
#include <limits>
16+
#include <omp.h>
1617
#include <vector>
1718
using namespace std;
1819
typedef std::vector<std::vector<double>> matrix;
@@ -49,11 +50,13 @@ void gaussJordan(matrix a, int k, matrix &ans) {
4950
}
5051

5152
ans.assign(m, vector<double>(k, 0));
53+
#pragma omp parallel for
5254
for (int i = 0; i < m; ++i)
5355
if (where[i] != -1)
5456
for (int j = 0; j < k; ++j)
5557
ans[i][j] = a[where[i]][m + j] / a[where[i]][i];
5658

59+
#pragma omp parallel for
5760
for (int i = 0; i < n; ++i) {
5861
for (int j = 0; j < k; ++j) {
5962
double sum = 0;
@@ -75,6 +78,7 @@ matrix solve(matrix &A, matrix &B) {
7578
}
7679

7780
matrix augmented(m, std::vector<double>(m + n));
81+
#pragma omp parallel for
7882
for (int i = 0; i < m; ++i) {
7983
for (int j = 0; j < m; ++j) {
8084
augmented[i][j] = A[i][j];
@@ -85,6 +89,7 @@ matrix solve(matrix &A, matrix &B) {
8589
}
8690
gaussJordan(augmented, B[0].size(), B);
8791
matrix X(m, std::vector<double>(n));
92+
#pragma omp parallel for
8893
for (int i = 0; i < m; ++i) {
8994
for (int j = 0; j < n; ++j) {
9095
X[i][j] = B[i][j];

0 commit comments

Comments
 (0)