Actual source code: submatfree.h

  1: #include "src/mat/matimpl.h"
  2: #include "vecimpl.h"

  4: typedef struct{

  6:   Mat A;
  7:   Vec VC; /* Work vector in the column space */
  8:   Vec VR; /* Work vector in the row space */
  9:   //  IS Row, Col;
 10:   IS RowComplement, ColComplement;

 12: } _p_MatSubMatFreeCtx;

 14: typedef  _p_MatSubMatFreeCtx* MatSubMatFreeCtx;

 16: int MatCreateSubMatrixFree(Mat,IS,IS,Mat*);
 17: int MatSMFResetRowColumn(Mat,IS,IS);
 18: int MatMult_SMF(Mat,Vec,Vec);
 19: int MatMultTranspose_SMF(Mat,Vec,Vec);
 20: int MatDiagonalSet_SMF(Mat,Vec,InsertMode);
 21: int MatDestroy_SMF(Mat);
 22: int MatView_SMF(Mat,PetscViewer);
 23: int MatShift_SMF(Mat,PetscScalar);
 24: int MatDuplicate_SMF(Mat,MatDuplicateOption,Mat*);
 25: int MatEqual_SMF(Mat,Mat,PetscTruth*);
 26: int MatScale_SMF(Mat,PetscScalar);
 27: int MatGetSubMatrix_SMF(Mat,IS,IS,int,MatReuse,Mat *);
 28: int MatGetSubMatrices_SMF(Mat,int,IS*,IS*,MatReuse,Mat**);
 29: int MatTranspose_SMF(Mat,Mat*);
 30: int MatGetDiagonal_SMF(Mat,Vec);
 31: int MatGetColumnVector_SMF(Mat,Vec, int);
 32: int MatNorm_SMF(Mat,NormType,PetscReal *);
 33: int MatGetRowMax_SMF(Mat, Vec);
 34: int MatGetRow_SMF(Mat,int,int *,const int **,const PetscScalar **);
 35: int MatRestoreRow_SMF(Mat,int,int *,const int **,const PetscScalar **);