Next: Algorithmic Differences between LAPACK Up: Contents of ScaLAPACK Previous: Generalized Symmetric Definite Eigenproblems

# Orthogonal or Unitary Matrices

A real orthogonal or complex unitary matrix (usually denoted Q) is often represented in ScaLAPACK as a product of elementary reflectors -- also referred to as elementary Householder matrices (usually denoted ). For example,
Most users need not be aware of the details, because ScaLAPACK routines are provided to work with this representation:

- routines whose names begin PSORG- (real) or PCUNG- (complex) can generate all or part of Q explicitly;
- routines whose name begin PSORM- (real) or PCUNM- (complex) can multiply a given matrix by Q or without forming Q explicitly.

The following details may occasionally be useful.

An elementary reflector (or elementary Householder matrix) H of order n is a unitary matrix of the form
where is a scalar and v is an n-vector, with ); v is often referred to as the Householder vector. Often v has several leading or trailing zero elements, but for the purpose of this discussion assume that H has no such special structure.

Some redundancy in the representation (3.4) exists, which can be removed in various ways. Like LAPACK, the representation used in ScaLAPACK (which differs from that used in LINPACK or EISPACK) sets ; hence need not be stored. In real arithmetic, , except that implies H = I.

In complex arithmetic , may be complex and satisfies and . Thus a complex H is not Hermitian (as it is in other representations), but it is unitary, which is the important property. The advantage of allowing to be complex is that, given an arbitrary complex vector x, H can be computed so that
with real . This is useful, for example, when reducing a complex Hermitian matrix to real symmetric tridiagonal form or a complex rectangular matrix to real bidiagonal form .

For further details, see Lehoucq [94].

Next: Algorithmic Differences between LAPACK Up: Contents of ScaLAPACK Previous: Generalized Symmetric Definite Eigenproblems