Purpose
=======
LA_SPEV and LA_SPEVD compute all eigenvalues and, optionally, all
eigenvectors of a real symmetric matrix A in packed storage.
LA_HPEV and LA_HPEVD compute all eigenvalues and, optionally, all
eigenvectors of a complex Hermitian matrix A in packed storage.
LA_SPEVD and LA_HPEVD use a divide and conquer algorithm. If
eigenvectors are desired, they can be much faster than LA_SPEV and
LA_HPEV for large matrices but use more workspace.
=========
SUBROUTINE LA_SPEV / LA_HPEV / LA_SPEVD / LA_HPEVD( AP, W, &
UPLO=uplo, Z=z, INFO=info )
(), INTENT(INOUT) :: AP(:)
REAL(), INTENT(OUT) :: W(:)
CHARACTER(LEN=1), INTENT(IN), OPTIONAL :: UPLO
(), INTENT(OUT), OPTIONAL :: Z(:,:)
INTEGER, INTENT(OUT), OPTIONAL :: INFO
where
::= REAL | COMPLEX
::= KIND(1.0) | KIND(1.0D0)
Arguments
=========
AP (input/output) REAL or COMPLEX array, shape (:) with size(AP)=
n*(n+1)/2, where n is the order of A.
On entry, the upper or lower triangle of matrix A in packed
storage. The elements are stored columnwise as follows:
if UPLO = 'U', AP(i+(j-1)*j/2)=A(i,j) for 1<=i<=j<=n;
if UPLO = 'L', AP(i+(j-1)*(2*n-j)/2)=A(i,j) for 1<=j<=i<=n.
On exit, AP is overwritten by values generated during the
reduction of A to a tridiagonal matrix T . If UPLO = 'U', the
diagonal and first superdiagonal of T overwrite the correspond-
ing diagonals of A. If UPLO = 'L', the diagonal and first
subdiagonal of T overwrite the corresponding diagonals of A.
W (output) REAL array, shape (:) with size(W) = n.
The eigenvalues in ascending order.
UPLO Optional (input) CHARACTER(LEN=1).
= 'U': Upper triangle of A is stored;
= 'L': Lower triangle of A is stored.
Default value: 'U'.
Z Optional (output) REAL or COMPLEX square array, shape (:,:)
with size(Z,1) = n.
The columns of Z contain the orthonormal eigenvectors of A in
the order of the eigenvalues.
INFO Optional (output) INTEGER.
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal value
> 0: if INFO = i, then i off-diagonal elements of an
intermediate tridiagonal form did not converge to zero.
If INFO is not present and an error occurs, then the program is
terminated with an error message.