# IPBOrthogonalize

B-Orthogonalize a vector with respect to two set of vectors.

### Synopsis

    #include "slepcip.h"
    PetscErrorCode IPBOrthogonalize(IP ip,PetscInt nds,Vec *defl,Vec *BDS,PetscReal *BDSnorms,PetscInt n,PetscBool *which,Vec *V,Vec *BV,PetscReal *BVnorms,Vec v,Vec Bv,PetscScalar *H,PetscReal *norm,PetscBool *lindep)

Collective on IP

### Input Parameters

| ip | - the inner product (IP) context
| nds | - number of columns of defl
| defl | - first set of vectors
| BDS | - B * defl
| BDSnorms | - DS_i' * B * DS_i
| n | - number of columns of V
| which | - logical array indicating columns of V to be used
| V | - second set of vectors
| BV | - B * V
| BVnorms | - V_i' * B * V_i

### Input/Output Parameter

| v | - (input) vector to be orthogonalized and (output) result of orthogonalization
| Bv | - (input/output) B * v

### Output Parameter

| H | - coefficients computed during orthogonalization with V, of size nds+n if norm == NULL, and nds+n+1 otherwise.
| norm | - norm of the vector after being orthogonalized
| lindep | - flag indicating that refinement did not improve the quality of orthogonalization

### Notes

This function applies an orthogonal projector to project vector v onto the orthogonal complement of the span of the columns of defl and V.

On exit, v0 = [V v]*H, where v0 is the original vector v.

This routine does not normalize the resulting vector.

### See Also

IPSetOrthogonalization(), IPBiOrthogonalize()

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