nag_zupgtr (f08gtc) generates the complex unitary matrix
, which was determined by
nag_zhptrd (f08gsc) when reducing a Hermitian matrix to tridiagonal form.
nag_zupgtr (f08gtc) is intended to be used after a call to
nag_zhptrd (f08gsc), which reduces a complex Hermitian matrix
to real symmetric tridiagonal form
by a unitary similarity transformation:
.
nag_zhptrd (f08gsc) represents the unitary matrix
as a product of
elementary reflectors.
The computed matrix
differs from an exactly unitary matrix by a matrix
such that
where
is the
machine precision.
The real analogue of this function is
nag_dopgtr (f08gfc).
This example computes all the eigenvalues and eigenvectors of the matrix
, where
using packed storage. Here
is Hermitian and must first be reduced to tridiagonal form by
nag_zhptrd (f08gsc). The program then calls nag_zupgtr (f08gtc) to form
, and passes this matrix to
nag_zsteqr (f08jsc) which computes the eigenvalues and eigenvectors of
.