1 2 /* 3 Defines matrix-matrix product routines for pairs of SeqAIJ matrices 4 D = A * B * C 5 */ 6 7 #include <../src/mat/impls/aij/seq/aij.h> /*I "petscmat.h" I*/ 8 #include <../src/mat/utils/freespace.h> 9 #include <../src/mat/utils/petscheap.h> 10 #include <petscbt.h> 11 #include <../src/mat/impls/dense/seq/dense.h> /*I "petscmat.h" I*/ 12 13 #undef __FUNCT__ 14 #define __FUNCT__ "MatMatMatMult_SeqAIJ_SeqAIJ_SeqAIJ" 15 PetscErrorCode MatMatMatMult_SeqAIJ_SeqAIJ_SeqAIJ(Mat A,Mat B,Mat C,MatReuse scall,PetscReal fill,Mat *D) 16 { 17 PetscErrorCode ierr; 18 19 PetscFunctionBegin; 20 printf("MatMatMatMult_SeqAIJ_SeqAIJ_SeqAIJ...\n"); 21 /* 22 if (scall == MAT_INITIAL_MATRIX){ 23 ierr = PetscLogEventBegin(MAT_MatMultSymbolic,A,B,0,0);CHKERRQ(ierr); 24 ierr = MatMatMultSymbolic_SeqAIJ_SeqAIJ(A,B,fill,C);CHKERRQ(ierr); 25 ierr = PetscLogEventEnd(MAT_MatMultSymbolic,A,B,0,0);CHKERRQ(ierr); 26 } 27 ierr = PetscLogEventBegin(MAT_MatMultNumeric,A,B,0,0);CHKERRQ(ierr); 28 ierr = (*(*C)->ops->matmultnumeric)(A,B,*C);CHKERRQ(ierr); 29 ierr = PetscLogEventEnd(MAT_MatMultNumeric,A,B,0,0);CHKERRQ(ierr); 30 */ 31 PetscFunctionReturn(0); 32 } 33 34 #undef __FUNCT__ 35 #define __FUNCT__ "MatMatMatMultSymbolic_SeqAIJ_SeqAIJ_SeqAIJ" 36 PetscErrorCode MatMatMatMultSymbolic_SeqAIJ_SeqAIJ_SeqAIJ(Mat A,Mat B,Mat C,PetscReal fill,Mat *D) 37 { 38 PetscErrorCode ierr; 39 Mat_SeqAIJ *a=(Mat_SeqAIJ*)A->data,*b=(Mat_SeqAIJ*)B->data,*c; 40 PetscInt *ai=a->i,*bi=b->i,*ci,*cj; 41 PetscInt am=A->rmap->N,bn=B->cmap->N,bm=B->rmap->N; 42 PetscReal afill; 43 PetscInt i,j,anzi,brow,bnzj,cnzi,*bj,*aj,nlnk_max,*lnk,ndouble=0; 44 PetscBT lnkbt; 45 PetscFreeSpaceList free_space=PETSC_NULL,current_space=PETSC_NULL; 46 47 PetscFunctionBegin; 48 printf("MatMatMatMultSymbolic_SeqAIJ_SeqAIJ_SeqAIJ...\n"); 49 PetscFunctionReturn(0); 50 } 51 52 #undef __FUNCT__ 53 #define __FUNCT__ "MatMatMatMultNumeric_SeqAIJ_SeqAIJ_SeqAIJ" 54 PetscErrorCode MatMatMatMultNumeric_SeqAIJ_SeqAIJ_SeqAIJ(Mat A,Mat B,Mat C,Mat D) 55 { 56 PetscErrorCode ierr; 57 58 PetscFunctionBegin; 59 printf("MatMatMatMultNumeric_SeqAIJ_SeqAIJ_SeqAIJ...\n"); 60 PetscFunctionReturn(0); 61 } 62