1: #define PETSCMAT_DLL 3: #include include/private/matimpl.h 4: 7: /*@ 8: MatHasOperation - Determines whether the given matrix supports the particular 9: operation. 11: Collective on Mat 13: Input Parameters: 14: + mat - the matrix 15: - op - the operation, for example, MATOP_GET_DIAGONAL 17: Output Parameter: 18: . has - either PETSC_TRUE or PETSC_FALSE 20: Level: advanced 22: Notes: 23: See the file include/petscmat.h for a complete list of matrix 24: operations, which all have the form MATOP_<OPERATION>, where 25: <OPERATION> is the name (in all capital letters) of the 26: user-level routine. E.g., MatNorm() -> MATOP_NORM. 28: .keywords: matrix, has, operation 30: .seealso: MatCreateShell() 31: @*/ 32: PetscErrorCode MatHasOperation(Mat mat,MatOperation op,PetscTruth *has) 33: { 38: if (((void **)mat->ops)[op]) {*has = PETSC_TRUE;} 39: else {*has = PETSC_FALSE;} 40: return(0); 41: }