/*$Id: aijbaij.c,v 1.5 2001/01/16 18:17:47 balay Exp balay $*/ #include "src/mat/impls/baij/seq/baij.h" EXTERN_C_BEGIN #undef __FUNC__ #define __FUNC__ "MatConvert_SeqBAI_SeqAIJ" int MatConvert_SeqBAIJ_SeqAIJ(Mat A,MatType newtype,Mat *B) { Mat_SeqBAIJ *a = (Mat_SeqBAIJ*)A->data; int ierr,bs = a->bs,*ai = a->i,*aj = a->j,n = A->M/bs,i,j,k; int *rowlengths,*rows,*cols,maxlen = 0,ncols; Scalar *aa = a->a; PetscFunctionBegin; ierr = PetscMalloc(n*bs*sizeof(int),&rowlengths);CHKERRQ(ierr); for (i=0; im,A->n,0,rowlengths,B);CHKERRQ(ierr); ierr = MatSetOption(*B,MAT_COLUMN_ORIENTED);CHKERRQ(ierr); ierr = MatSetOption(*B,MAT_ROWS_SORTED);CHKERRQ(ierr); ierr = MatSetOption(*B,MAT_COLUMNS_SORTED);CHKERRQ(ierr); ierr = PetscFree(rowlengths);CHKERRQ(ierr); ierr = PetscMalloc(bs*sizeof(int),&rows);CHKERRQ(ierr); ierr = PetscMalloc(bs*maxlen*sizeof(int),&cols);CHKERRQ(ierr); for (i=0; i