From a2c4f52747a3d46be90259ed3e364928621e8b0a Mon Sep 17 00:00:00 2001
From: Florent Pruvost <florent.pruvost@inria.fr>
Date: Mon, 15 Dec 2014 15:07:22 +0000
Subject: [PATCH] memset T to 0 for parfb on gpu

---
 testing/testing_zgels.c  | 1 +
 timing/time_zgels.c      | 3 ++-
 timing/time_zgels_tile.c | 1 +
 timing/time_zgeqrf.c     | 5 +++--
 4 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/testing/testing_zgels.c b/testing/testing_zgels.c
index 8c6cdab6a..c8459baf0 100644
--- a/testing/testing_zgels.c
+++ b/testing/testing_zgels.c
@@ -271,6 +271,7 @@ int testing_zgels(int argc, char **argv)
     }
 
     MORSE_Alloc_Workspace_zgels(M, N, &T);
+    memset(T->mat, 0, (T->llm*T->lln)*sizeof(MORSE_Complex64_t));
     eps = BLAS_dfpinfo( blas_eps );
 
     /*----------------------------------------------------------
diff --git a/timing/time_zgels.c b/timing/time_zgels.c
index 3b15552a3..63e80560e 100644
--- a/timing/time_zgels.c
+++ b/timing/time_zgels.c
@@ -29,7 +29,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 {
     MORSE_desc_t *T;
     PASTE_CODE_IPARAM_LOCALS( iparam );
-    
+
     if ( M != N ) {
         fprintf(stderr, "This timing works only with M == N\n");
         return -1;
@@ -46,6 +46,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
     MORSE_zplrnt( M, NRHS, x, LDB, 5673 );
 
     MORSE_Alloc_Workspace_zgels(M, N, &T);
+    memset(T->mat, 0, (T->llm*T->lln)*sizeof(MorseComplexDouble));
 
     /* Save A and b  */
     if (check) {
diff --git a/timing/time_zgels_tile.c b/timing/time_zgels_tile.c
index 7f9b01e0e..db28d7be6 100644
--- a/timing/time_zgels_tile.c
+++ b/timing/time_zgels_tile.c
@@ -46,6 +46,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 
     /* Allocate Workspace */
     MORSE_Alloc_Workspace_zgels_Tile(M, N, &descT);
+    memset(descT->mat, 0, (descT->llm*descT->lln)*sizeof(MorseComplexDouble));
 
     /* Save A and B for check */
     if (check == 1){
diff --git a/timing/time_zgeqrf.c b/timing/time_zgeqrf.c
index 0bbbc97ef..c6e5dd34d 100644
--- a/timing/time_zgeqrf.c
+++ b/timing/time_zgeqrf.c
@@ -43,6 +43,7 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
 
     /* Allocate Workspace */
     MORSE_Alloc_Workspace_zgels(M, N, &T);
+    memset(T->mat, 0, (T->llm*T->lln)*sizeof(MorseComplexDouble));
 
     /* Save AT in lapack layout for check */
     PASTE_CODE_ALLOCATE_COPY( Acpy, check, MORSE_Complex64_t, A, LDA, N );
@@ -50,14 +51,14 @@ RunTest(int *iparam, double *dparam, morse_time_t *t_)
     START_TIMING();
     MORSE_zgeqrf( M, N, A, LDA, T );
     STOP_TIMING();
-    
+
     /* Check the solution */
     if ( check )
     {
         PASTE_CODE_ALLOCATE_MATRIX( X, 1, MORSE_Complex64_t, LDB, NRHS );
         MORSE_zplrnt( N, NRHS, X, LDB, 5673 );
         PASTE_CODE_ALLOCATE_COPY( B, 1, MORSE_Complex64_t, X, LDB, NRHS );
-        
+
         MORSE_zgeqrs(M, N, NRHS, A, LDA, T, X, LDB);
 
         dparam[IPARAM_RES] = z_check_solution(M, N, NRHS, Acpy, LDA, B, X, LDB,
-- 
GitLab