Skip to main content
`Ctrl`+`K`

# BVNormalize

Normalize all columns (starting from the leading ones).

## Synopsis

    #include "slepcbv.h"
    PetscErrorCode BVNormalize(BV bv,PetscScalar eigi[])

Collective

## Input Parameters

- bv - basis vectors

- eigi - (optional) imaginary parts of eigenvalues

## Notes

On output, all columns will have unit norm. The normalization is done with respect to the 2-norm, or to the \(B\)-norm if a non-standard inner product has been specified with `BVSetMatrix()`, see `BVNormColumn()`.

If the optional argument `eigi` is passed (taken into account only in real scalars) it is interpreted as the imaginary parts of the eigenvalues and the `BV` is supposed to contain the corresponding eigenvectors. Suppose the first three values are `eigi` = \(\{ 0, \alpha, -\alpha \}\), then the first column is normalized as usual, but the second and third ones are normalized assuming that they contain the real and imaginary parts of a complex conjugate pair of eigenvectors.

If `eigi` is passed, the inner-product matrix is ignored.

If there are leading columns, they are not modified (are assumed to be already normalized).

## See Also

BV: Basis Vectors, `BVNormColumn()`, `BVSetMatrix()`

## Level

intermediate

## Location

src/sys/classes/bv/interface/bvglobal.c

## Implementations

BVNormalize_Contiguous() in src/sys/classes/bv/impls/contiguous/contig.c
BVNormalize_Mat() in src/sys/classes/bv/impls/mat/bvmat.c
BVNormalize_Svec() in src/sys/classes/bv/impls/svec/svec.c
BVNormalize_Vecs() in src/sys/classes/bv/impls/vecs/vecs.c

Index of all BV routines Table of Contents for all manual pages Index of all manual pages