/*$Id: aijbaij.c,v 1.9 2001/08/07 03:02:55 balay Exp $*/ #include "src/mat/impls/baij/seq/baij.h" EXTERN_C_BEGIN #undef __FUNCT__ #define __FUNCT__ "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; PetscScalar *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