#include "petscmat.h" PetscErrorCode MatCreateLRC(Mat A,Mat U,Vec c,Mat V,Mat *N)Collective on Mat
A | - the (sparse) matrix (can be NULL) | |
U, V | - two dense rectangular (tall and skinny) matrices | |
c | - a sequential vector containing the diagonal of C (can be NULL) |
N | - the matrix that represents A + U*C*V' |
C is a diagonal matrix (represented as a vector) of order k, where k is the number of columns of both U and V.
If A is NULL then the new object behaves like a low-rank matrix U*C*V'.
Use V=U (or V=NULL) for a symmetric low-rank correction, A + U*C*U'.
If c is NULL then the low-rank correction is just U*V'.