# 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