IPPseudoOrthogonalize

Orthogonalize a vector with respect to two set of vectors in the sense of a pseudo-inner product.

Synopsis

#include "slepcip.h" 
PetscErrorCode IPPseudoOrthogonalize(IP ip,PetscInt n,Vec *V,PetscReal *omega,Vec v,PetscScalar *H,PetscReal *norm,PetscBool *lindep)
Collective on IP and Vec

Input Parameters

ip - the inner product (IP) context
n - number of columns of V
V - set of vectors
omega - set of signs that define a signature matrix

Input/Output Parameter

v - (input) vector to be orthogonalized and (output) result of orthogonalization

Output Parameter

H - coefficients computed during orthogonalization
norm - norm of the vector after being orthogonalized
lindep - flag indicating that refinement did not improve the quality of orthogonalization

Notes

This function is the analogue of IPOrthogonalize, but for the indefinite case. When using an indefinite IP the norm is not well defined, so we take the convention of having negative norms in such cases. The orthogonalization is then defined by a set of vectors V satisfying V'*B*V=Omega, where Omega is a signature matrix diag([+/-1,...,+/-1]).

On exit, v = v0 - V*Omega*H, where v0 is the original vector v.

This routine does not normalize the resulting vector. The output argument 'norm' may be negative.

See Also

IPSetOrthogonalization(), IPOrthogonalize()

Location: src/ip/ipbiorthog.c
Index of all IP routines
Table of Contents for all manual pages
Index of all manual pages