From 70c5cd98a6b383481affa3caa9f71ae373610442 Mon Sep 17 00:00:00 2001 From: Alban Bellot <alban.bellot@inria.fr> Date: Wed, 20 Jul 2016 14:44:54 +0200 Subject: [PATCH] bug without dofs corrected --- z_spm_matrixvector.c | 16 ++++++++-------- z_spm_norm.c | 9 ++++----- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/z_spm_matrixvector.c b/z_spm_matrixvector.c index 4b0cf889..14238ff1 100644 --- a/z_spm_matrixvector.c +++ b/z_spm_matrixvector.c @@ -109,12 +109,12 @@ z_spmGeCSCv( int trans, for( i=0; i < csc->gN; i++ ) { dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i]; - col=dofs[i]; + col = ( csc->dof > 0 ) ? i : dofs[i]; for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ ) { j = csc->rowptr[k-baseval]-baseval; dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j]; - row=dofs[j]; + row = ( csc->dof > 0 ) ? j : dofs[j]; for(ii=0; ii<dofi; ii++) { for(jj=0; jj<dofj; jj++, valptr++) @@ -133,12 +133,12 @@ z_spmGeCSCv( int trans, for( i=0; i < csc->gN; i++ ) { dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i]; - col=dofs[i]; + col = ( csc->dof > 0 ) ? i : dofs[i]; for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ ) { j = csc->rowptr[k-baseval]-baseval; dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j]; - row=dofs[j]; + row = ( csc->dof > 0 ) ? j : dofs[j]; for(ii=0; ii<dofi; ii++) { for(jj=0; jj<dofj; jj++, valptr++) @@ -250,12 +250,12 @@ z_spmSyCSCv( pastix_complex64_t alpha, for( i=0; i < csc->gN; i++ ) { dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i]; - col = dofs[i]; + col = ( csc->dof > 0 ) ? i : dofs[i]; for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ ) { j = csc->rowptr[k-baseval]-baseval; dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j]; - row = dofs[j]; + row = ( csc->dof > 0 ) ? j : dofs[j]; for(ii=0; ii<dofi; ii++) { for(jj=0; jj<dofj; jj++, valptr++) @@ -351,12 +351,12 @@ z_spmHeCSCv( pastix_complex64_t alpha, for( i=0; i < csc->gN; i++ ) { dofi = ( csc->dof > 0 ) ? csc->dof : dofs[i+1] - dofs[i]; - col = dofs[i]; + col = ( csc->dof > 0 ) ? i : dofs[i]; for( k=csc->colptr[i]; k<csc->colptr[i+1]; k++ ) { j = csc->rowptr[k-baseval]-baseval; dofj = ( csc->dof > 0 ) ? csc->dof : dofs[j+1] - dofs[j]; - row = dofs[j]; + row = ( csc->dof > 0 ) ? j : dofs[j]; for(ii=0; ii<dofi; ii++) { for(jj=0; jj<dofj; jj++, valptr++) diff --git a/z_spm_norm.c b/z_spm_norm.c index 9d45ade4..549a1415 100644 --- a/z_spm_norm.c +++ b/z_spm_norm.c @@ -229,7 +229,7 @@ z_spmInfNorm( const pastix_spm_t *spm ) { j = spm->rowptr[k - baseval] - baseval; dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; - row = dofs[j]; + row = ( spm->dof > 0 ) ? j : dofs[j]; for(ii=0; ii < dofi; ii++) { for(jj=0; jj < dofj; jj++, valptr++) @@ -248,7 +248,7 @@ z_spmInfNorm( const pastix_spm_t *spm ) valptr = (pastix_complex64_t*)spm->values; for(i=0; i < spm->n; i++) { - col = dofs[i]; + col = ( spm->dof > 0 ) ? i : dofs[i]; dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; for(k=spm->colptr[i]; k < spm->colptr[i+1]; k++) { @@ -381,7 +381,7 @@ z_spmOneNorm( const pastix_spm_t *spm ) for(i=0; i < spm->n; i++) { - col = dofs[i]; + col = ( spm->dof > 0 ) ? i : dofs[i]; dofi = ( spm->dof > 0 ) ? spm->dof : dofs[i+1] - dofs[i]; for(k=spm->colptr[i]; k < spm->colptr[i+1]; k++) { @@ -409,7 +409,7 @@ z_spmOneNorm( const pastix_spm_t *spm ) for(k=spm->colptr[i]; k < spm->colptr[i+1]; k++) { j = spm->rowptr[k - baseval] - baseval; - row = dofs[j]; + row = ( spm->dof > 0 ) ? j : dofs[j]; dofj = ( spm->dof > 0 ) ? spm->dof : dofs[j+1] - dofs[j]; if(i != j) { @@ -417,7 +417,6 @@ z_spmOneNorm( const pastix_spm_t *spm ) { for(jj=0; jj < dofj; jj++, valptr++) { - sumrow[row + jj] += cabs( *valptr ); } } -- GitLab