Actual source code: submatfree.h


  2: typedef struct {
  3:   Mat A;
  4:   Vec VC; /* Work vector in the column space */
  5:   Vec VR; /* Work vector in the row space */
  6:   IS  Rows, Cols;

  8: } _p_MatSubMatFreeCtx;

 10: typedef _p_MatSubMatFreeCtx *MatSubMatFreeCtx;

 12: PetscErrorCode MatCreateSubMatrixFree(Mat, IS, IS, Mat *);
 13: PetscErrorCode MatSMFResetRowColumn(Mat, IS, IS);
 14: PetscErrorCode MatMult_SMF(Mat, Vec, Vec);
 15: PetscErrorCode MatMultTranspose_SMF(Mat, Vec, Vec);
 16: PetscErrorCode MatDiagonalSet_SMF(Mat, Vec, InsertMode);
 17: PetscErrorCode MatDestroy_SMF(Mat);
 18: PetscErrorCode MatView_SMF(Mat, PetscViewer);
 19: PetscErrorCode MatShift_SMF(Mat, PetscReal);
 20: PetscErrorCode MatDuplicate_SMF(Mat, MatDuplicateOption, Mat *);
 21: PetscErrorCode MatEqual_SMF(Mat, Mat, PetscBool *);
 22: PetscErrorCode MatScale_SMF(Mat, PetscReal);
 23: PetscErrorCode MatCreateSubMatrix_SMF(Mat, IS, IS, MatReuse, Mat *);
 24: PetscErrorCode MatCreateSubMatrices_SMF(Mat, PetscInt, IS *, IS *, MatReuse, Mat **);
 25: PetscErrorCode MatTranspose_SMF(Mat, Mat *);
 26: PetscErrorCode MatGetDiagonal_SMF(Mat, Vec);
 27: PetscErrorCode MatGetColumnVector_SMF(Mat, Vec, PetscInt);
 28: PetscErrorCode MatNorm_SMF(Mat, NormType, PetscReal *);
 29: PetscErrorCode MatGetRowMax_SMF(Mat, Vec);
 30: PetscErrorCode MatGetRow_SMF(Mat, PetscInt, PetscInt *, const PetscInt **, const PetscScalar **);
 31: PetscErrorCode MatRestoreRow_SMF(Mat, PetscInt, PetscInt *, const PetscInt **, const PetscScalar **);