SlepcUpdateStrideVectors

Update a set of vectors V as V(:,s:d:e-1) = V*Q(:,s:e-1).

Synopsis

#include "slepcsys.h" 
PetscErrorCode SlepcUpdateStrideVectors(PetscInt n_,Vec *V,PetscInt s,PetscInt d,PetscInt e,const PetscScalar *Q,PetscInt ldq_,PetscTruth qtrans)
Collective on Vec

Input parameters

n - number of vectors in V
s - first column of V to be overwritten
d - stride
e - first column of V not to be overwritten
Q - matrix containing the coefficients of the update
ldq - leading dimension of Q
qtrans - flag indicating if Q is to be transposed

Input/Output parameter

V - set of vectors

Notes

This function computes V(:,s:d:e-1) = V*Q(:,s:e-1), that is, given a set of vectors V, columns from s to e-1 are overwritten with columns from s to e-1 of the matrix-matrix product V*Q.

Matrix V is represented as an array of Vec, whereas Q is represented as a column-major dense array of leading dimension ldq. Only columns s to e-1 of Q are referenced.

If qtrans=PETSC_TRUE, the operation is V*Q'.

This routine is implemented with a call to BLAS, therefore V is an array of Vec which have the data stored contiguously in memory as a Fortran matrix. PETSc does not create such arrays by default.

Location: src/sys/slepcutil.c
Index of all sys routines
Table of Contents for all manual pages
Index of all manual pages