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