BVDot#

Computes the ‘block-dot’ product of two basis vectors objects.

Synopsis#

#include "slepcbv.h" 
PetscErrorCode BVDot(BV X,BV Y,Mat M)

Collective

Input Parameters#

  • X - first basis vectors

  • Y - second basis vectors

Output Parameter#

  • M - the resulting matrix

Notes#

This is the generalization of VecDot() for a collection of vectors, M = Y^H*X. The result is a matrix M whose entry m_ij is equal to y_i^H x_j (where y_i^H denotes the conjugate transpose of y_i).

If a non-standard inner product has been specified with BVSetMatrix(), then the result is M = Y^HBX. In this case, both X and Y must have the same associated matrix.

On entry, M must be a sequential dense Mat with dimensions m,n at least, where m is the number of active columns of Y and n is the number of active columns of X. Only rows (resp. columns) of M starting from ly (resp. lx) are computed, where ly (resp. lx) is the number of leading columns of Y (resp. X).

X and Y need not be different objects.

See Also#

BVDotVec(), BVDotColumn(), BVSetActiveColumns(), BVSetMatrix()

Level#

intermediate

Location#

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

Implementations#

BVDot_Contiguous() in src/sys/classes/bv/impls/contiguous/contig.c
BVDot_Mat() in src/sys/classes/bv/impls/mat/bvmat.c
BVDot_Svec() in src/sys/classes/bv/impls/svec/svec.c
BVDot_Tensor() in src/sys/classes/bv/impls/tensor/bvtensor.c
BVDot_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