diff --git a/spm_dofs.c b/spm_dofs.c index 8d9fa3cdc9b752e4d9a0e97b6044757c3a330e2a..d75f839c5ec3e74d454b83aa555bb47f23c962ba 100644 --- a/spm_dofs.c +++ b/spm_dofs.c @@ -83,6 +83,11 @@ spmDofExtend( const int type, switch(spm->fmttype) { + case PastixCSR: + /* Swap pointers to call CSC */ + colptr = newspm->rowptr; + rowptr = newspm->colptr; + case PastixCSC: for(j=0; j<newspm->n; j++, colptr++) { dofj = dofptr[j+1] - dofptr[j]; @@ -95,18 +100,6 @@ spmDofExtend( const int type, } } break; - case PastixCSR: - for(i=0; i<newspm->n; i++, rowptr++) { - dofi = dofptr[i+1] - dofptr[i]; - - for(k=rowptr[0]; k<rowptr[1]; k++, rowptr++) { - j = *colptr - baseval; - dofj = dofptr[j+1] - dofptr[j]; - - newspm->nnzexp += dofi * dofj; - } - } - break; case PastixIJV: for(k=0; k<newspm->nnz; k++, rowptr++, colptr++) {