f08tsf reduces a complex Hermitian-definite generalized eigenproblem
,
or
to the standard form
, where
is a complex Hermitian matrix and
has been factorized by
f07grf, using packed storage.
To reduce the complex Hermitian-definite generalized eigenproblem
,
or
to the standard form
using packed storage,
f08tsf must be preceded by a call to
f07grf which computes the Cholesky factorization of
;
must be positive definite.
The different problem types are specified by the argument
itype, as indicated in the table below. The table shows how
is computed by the routine, and also how the eigenvectors
of the original problem can be recovered from the eigenvectors of the standard form.
itype |
Problem |
uplo |
|
|
|
|
|
'U'
'L' |
|
|
|
|
|
'U'
'L' |
|
|
|
|
|
'U'
'L' |
|
|
|
Forming the reduced matrix
is a stable procedure. However it involves implicit multiplication by
if (
) or
(if
or
). When
f08tsf is used as a step in the computation of eigenvalues and eigenvectors of the original problem, there may be a significant loss of accuracy if
is ill-conditioned with respect to inversion.
See the document for
f08snf for further details.
Background information to multithreading can be found in the
Multithreading documentation.
Please consult the
X06 Chapter Introduction for information on how to control and interrogate the OpenMP environment used within this routine. Please also consult the
Users' Note for your implementation for any additional implementation-specific information.
The real analogue of this routine is
f08tef.
This example computes all the eigenvalues of
, where
and
using packed storage. Here
is Hermitian positive definite and must first be factorized by
f07grf. The program calls
f08tsf to reduce the problem to the standard form
; then
f08gsf to reduce
to tridiagonal form, and
f08jff to compute the eigenvalues.