From 5bf3f770946b15673815cd88a66ff568629bc7cc Mon Sep 17 00:00:00 2001
From: Mathieu Faverge <mathieu.faverge@inria.fr>
Date: Tue, 20 Jun 2017 19:37:06 +0200
Subject: [PATCH] Fix complex hermitian conversion test

---
 z_spm_convert_to_csc.c | 14 +++++++++-----
 z_spm_convert_to_csr.c | 14 +++++++++-----
 2 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/z_spm_convert_to_csc.c b/z_spm_convert_to_csc.c
index 45acca7d..3c66d832 100644
--- a/z_spm_convert_to_csc.c
+++ b/z_spm_convert_to_csc.c
@@ -160,11 +160,15 @@ z_spmConvertCSR2CSC( pastix_spm_t *spm )
     {
         /* Similar to PastixSymmetric case with conjugate of the values */
         pastix_complex64_t *valptr = spm->values;
-        pastix_int_t i;
-
-        for(i=0; i<spm->nnz; i++, valptr++){
-            if (spm->rowptr[i] != spm->colptr[i]) {
-                *valptr = conj( *valptr );
+        pastix_int_t *colptr = spm->colptr;
+        pastix_int_t *rowptr = spm->rowptr;
+        pastix_int_t  i, j;
+
+        for(i=0; i<spm->n; i++, rowptr++){
+            for(j=rowptr[0]; j<rowptr[1]; j++, colptr++, valptr++) {
+                if ( *colptr != i ) {
+                    *valptr = conj( *valptr );
+                }
             }
         }
     }
diff --git a/z_spm_convert_to_csr.c b/z_spm_convert_to_csr.c
index f940ddb2..c490d3c6 100644
--- a/z_spm_convert_to_csr.c
+++ b/z_spm_convert_to_csr.c
@@ -51,11 +51,15 @@ z_spmConvertCSC2CSR( pastix_spm_t *spm )
     {
         /* Similar to PastixSymmetric case with conjugate of the values */
         pastix_complex64_t *valptr = spm->values;
-        pastix_int_t i;
-
-        for(i=0; i<spm->nnz; i++, valptr++){
-            if (spm->rowptr[i] != spm->colptr[i]) {
-                *valptr = conj( *valptr );
+        pastix_int_t *colptr = spm->colptr;
+        pastix_int_t *rowptr = spm->rowptr;
+        pastix_int_t  i, j;
+
+        for(j=0; j<spm->n; j++, colptr++){
+            for(i=colptr[0]; i<colptr[1]; i++, rowptr++, valptr++) {
+                if ( *rowptr != j ) {
+                    *valptr = conj( *valptr );
+                }
             }
         }
     }
-- 
GitLab