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^*X\).
The result is a matrix \(M\) whose entry \(m_{ij}\) is equal to \(y_i^* x_j\) (where \(y_i^*\)
denotes the conjugate transpose of \(y_i\)).
If a non-standard inner product has been specified with BVSetMatrix(),
then the result is \(M = Y^*BX\). 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#
BV: Basis Vectors, BVDotVec(), BVDotColumn(), BVSetActiveColumns(), BVSetMatrix()
Level#
intermediate
Location#
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