1*a7e14dcfSSatish Balay #include "petsc-private/matimpl.h" 2*a7e14dcfSSatish Balay #include "petsc-private/vecimpl.h" 3*a7e14dcfSSatish Balay 4*a7e14dcfSSatish Balay typedef struct{ 5*a7e14dcfSSatish Balay 6*a7e14dcfSSatish Balay Mat A; 7*a7e14dcfSSatish Balay Vec VC; /* Work vector in the column space */ 8*a7e14dcfSSatish Balay Vec VR; /* Work vector in the row space */ 9*a7e14dcfSSatish Balay IS Rows, Cols; 10*a7e14dcfSSatish Balay 11*a7e14dcfSSatish Balay } _p_MatSubMatFreeCtx; 12*a7e14dcfSSatish Balay 13*a7e14dcfSSatish Balay typedef _p_MatSubMatFreeCtx* MatSubMatFreeCtx; 14*a7e14dcfSSatish Balay 15*a7e14dcfSSatish Balay PetscErrorCode MatCreateSubMatrixFree(Mat,IS,IS,Mat*); 16*a7e14dcfSSatish Balay PetscErrorCode MatSMFResetRowColumn(Mat,IS,IS); 17*a7e14dcfSSatish Balay PetscErrorCode MatMult_SMF(Mat,Vec,Vec); 18*a7e14dcfSSatish Balay PetscErrorCode MatMultTranspose_SMF(Mat,Vec,Vec); 19*a7e14dcfSSatish Balay PetscErrorCode MatDiagonalSet_SMF(Mat,Vec,InsertMode); 20*a7e14dcfSSatish Balay PetscErrorCode MatDestroy_SMF(Mat); 21*a7e14dcfSSatish Balay PetscErrorCode MatView_SMF(Mat,PetscViewer); 22*a7e14dcfSSatish Balay PetscErrorCode MatShift_SMF(Mat,PetscReal); 23*a7e14dcfSSatish Balay PetscErrorCode MatDuplicate_SMF(Mat,MatDuplicateOption,Mat*); 24*a7e14dcfSSatish Balay PetscErrorCode MatEqual_SMF(Mat,Mat,PetscBool*); 25*a7e14dcfSSatish Balay PetscErrorCode MatScale_SMF(Mat,PetscReal); 26*a7e14dcfSSatish Balay PetscErrorCode MatGetSubMatrix_SMF(Mat,IS,IS,MatReuse,Mat *); 27*a7e14dcfSSatish Balay PetscErrorCode MatGetSubMatrices_SMF(Mat,PetscInt,IS*,IS*,MatReuse,Mat**); 28*a7e14dcfSSatish Balay PetscErrorCode MatTranspose_SMF(Mat,Mat*); 29*a7e14dcfSSatish Balay PetscErrorCode MatGetDiagonal_SMF(Mat,Vec); 30*a7e14dcfSSatish Balay PetscErrorCode MatGetColumnVector_SMF(Mat,Vec, PetscInt); 31*a7e14dcfSSatish Balay PetscErrorCode MatNorm_SMF(Mat,NormType,PetscReal *); 32*a7e14dcfSSatish Balay PetscErrorCode MatGetRowMax_SMF(Mat, Vec); 33*a7e14dcfSSatish Balay PetscErrorCode MatGetRow_SMF(Mat,PetscInt,PetscInt *,const PetscInt **,const PetscReal **); 34*a7e14dcfSSatish Balay PetscErrorCode MatRestoreRow_SMF(Mat,PetscInt,PetscInt *,const PetscInt **,const PetscReal **); 35