xref: /petsc/src/mat/impls/aij/seq/matmatmatmult.c (revision 1086fb861de8e1d1df73e6d89a2d99b932efb7e6)
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