:orphan: # MatMultDiagonalBlock Computes the matrix-vector product, y = Dx. Where D is defined by the inode or block structure of the diagonal ## Synopsis ``` #include "petscmat.h" PetscErrorCode MatMultDiagonalBlock(Mat mat, Vec x, Vec y) ``` Collective ## Input Parameters - ***mat -*** the matrix - ***x -*** the vector to be multiplied ## Output Parameter - ***y -*** the result ## Note The vectors `x` and `y` cannot be the same. I.e., one cannot call `MatMultDiagonalBlock`(A,y,y). ## See Also [](ch_matrices), `Mat`, `MatMult()`, `MatMultTranspose()`, `MatMultAdd()`, `MatMultTransposeAdd()` ## Level developer ## Location src/mat/interface/matrix.c ## Implementations MatMultDiagonalBlock_MPIAIJ in src/mat/impls/aij/mpi/mpiaij.c
MatMultDiagonalBlock_MPISELL in src/mat/impls/sell/mpi/mpisell.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/mat/interface/matrix.c) [Index of all Mat routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)