Skip to main content
`Ctrl`+`K`

# 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

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

Index of all Mat routines
Table of Contents for all manual pages
Index of all manual pages