THIS INFORMATION IS OBSOLETE AND IS PROVIDED ONLY FOR ITS HISTORICAL VALUE

QCPE
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