Skip to main content
`Ctrl`+`K`

# BVMatMult

Computes the matrix-vector product for each column, \(Y=AV\).

## Synopsis

    #include "slepcbv.h"
    PetscErrorCode BVMatMult(BV V,Mat A,BV Y)

Neighbor-wise Collective

## Input Parameters

- V - basis vectors context

- A - the matrix

## Output Parameter

- Y - the result

## Notes

Both `V` and `Y` must be distributed in the same manner. Only active columns (excluding the leading ones) are processed. In the result `Y`, columns are overwritten starting from the leading ones. The number of active columns in `V` and `Y` should match, although they need not be the same columns.

It is possible to choose whether the computation is done column by column or as a `Mat`-`Mat` product, see `BVSetMatMultMethod()`.

## See Also

BV: Basis Vectors, `BVCopy()`, `BVSetActiveColumns()`, `BVMatMultColumn()`, `BVMatMultTranspose()`, `BVMatMultHermitianTranspose()`, `BVSetMatMultMethod()`

## Level

intermediate

## Location

src/sys/classes/bv/interface/bvops.c

## Implementations

BVMatMult_Contiguous() in src/sys/classes/bv/impls/contiguous/contig.c
BVMatMult_Mat() in src/sys/classes/bv/impls/mat/bvmat.c
BVMatMult_Svec() in src/sys/classes/bv/impls/svec/svec.c
BVMatMult_Vecs() in src/sys/classes/bv/impls/vecs/vecs.c

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