|
|
QCPE
THIS INFORMATION IS OBSOLETE AND IS PROVIDED ONLY FOR ITS HISTORICAL VALUE
Main / Catalog / Section11
|
QCMP042. GIVENS: Vectorized Version of QCPE 62
by F. Prosser, Department of Computer
Science, Indiana University, Bloomington,
Indiana 47405
Converted and modified by I. Shavitt,
Department of Chemistry, The Ohio State
University, Columbus, Ohio 43210
This routine forms a specified number of
eigenvalues (and eigenvectors) of a real
symmetric matrix. The lowest eigenvalues are
found first.The routine is divided
logically into four sections. Section one
(TRIDIAG) converts the symmetric matrix to
Jacobi (tridiagonal) form by means of an
orthogonal transformation, the vectors of
which are recorded in the off-diagonal upper
triangle of ARRAY. Section two (STURM)
calculates the roots of the tridiagonal form
(which are the same as the roots of the
original array). The roots are determined in
order, lowest first. The method uses the
fact that, roughly speaking, the leading
principal minors of the tridiagonal
eigenvalue problem form a Sturm sequence
which has special properties to allow one to
locate quickly any given root. Section three
(TRIVEC) calculates the eigenvectors for the
tridiagonal form for each root found by
STURM.A modified form of Gaussian
elimination is employed. Each vector is
refined by repeating the elimination using
the calculated vector as input. Vectors for
degenerate or near-degenerate roots are made
orthogonal to all previous vectors for this
root by the Gram-Schmidt process. Section
four (SIM VEC) converts the tridiagonal
vectors to eigenvectors of the original array
using the transformation generated in
TRIDIAG.
In addition to being conveniently available
for use on IBM-PCs, this version of GIVENS
has had its 'DO LOOP' structure rearranged
for optimal use on vector processing
computers.
FORTRAN 77
Lines of Code: 506
|
Computational Chemistry List --- QCPE Main --- About This Site
|