/*$Id: aijbaij.c,v 1.1 2000/06/06 19:00:44 bsmith Exp bsmith $*/
#include "src/mat/impls/baij/seq/baij.h"
#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;
rowlengths = (int*)PetscMalloc(n*bs*sizeof(int));CHKPTRQ(rowlengths);
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);
rows = (int*)PetscMalloc(bs*sizeof(int));CHKPTRQ(rows);
cols = (int*)PetscMalloc(bs*maxlen*sizeof(int));CHKPTRQ(cols);
for (i=0; i