From acf17e0099c28c838fd42d57a8c54275462346a6 Mon Sep 17 00:00:00 2001
From: Joseph John <joseph.john@anu.edu.au>
Date: Mon, 11 Dec 2023 11:52:31 +1100
Subject: [PATCH] Tasks used

---
 src/exercise5_solution.c | 23 ++++++++++++++---------
 1 file changed, 14 insertions(+), 9 deletions(-)

diff --git a/src/exercise5_solution.c b/src/exercise5_solution.c
index f2b5484..c254edb 100644
--- a/src/exercise5_solution.c
+++ b/src/exercise5_solution.c
@@ -232,6 +232,7 @@ void block_triangular_solve(const size_t m, const size_t n, const double *a,
     for (size_t i = 0; i < m; i++) {
       b[i * ldb + k] = tmp * b[i * ldb + k];
     }
+    
     for (size_t j = k + 1; j < n; j++) {
       if (a[j * lda + k] != 0.0) {
         double tmp = a[j * lda + k];
@@ -258,11 +259,13 @@ void block_symmetric_rank_k_update(const size_t n, const size_t k,
                                    const size_t ldc) {
   #pragma omp parallel for
   for (size_t j = 0; j < n; j++) {
-    #pragma omp parallel for
-    for (size_t l = 0; l < k; l++) {
-      double tmp = a[j * lda + l];
-      for (size_t i = j; i < n; i++) {
-        c[i * ldc + j] -= tmp * a[i * lda + l];
+    #pragma omp task 
+    {
+      for (size_t l = 0; l < k; l++) {
+        double tmp = a[j * lda + l];
+        for (size_t i = j; i < n; i++) {
+          c[i * ldc + j] -= tmp * a[i * lda + l];
+        }
       }
     }
   }
@@ -286,10 +289,12 @@ void block_sub_matrix_mul(const size_t m, const size_t n, const size_t k,
                           const size_t ldb, double *c, const size_t ldc) {
   #pragma omp parallel for
   for (size_t i = 0; i < m; i++) {
-    #pragma omp parallel for
-    for (size_t j = 0; j < n; j++)
-      for (size_t l = 0; l < k; l++)
-        c[i * ldc + j] = c[i * ldc + j] - a[i * lda + l] * b[j * ldb + l];
+    #pragma omp task 
+    {
+      for (size_t j = 0; j < n; j++)
+        for (size_t l = 0; l < k; l++)
+          c[i * ldc + j] = c[i * ldc + j] - a[i * lda + l] * b[j * ldb + l];
+    }
   }
 }