*DECK BANDR SUBROUTINE BANDR (NM, N, MB, A, D, E, E2, MATZ, Z) C***BEGIN PROLOGUE BANDR C***PURPOSE Reduce a real symmetric band matrix to symmetric C tridiagonal matrix and, optionally, accumulate C orthogonal similarity transformations. C***LIBRARY SLATEC (EISPACK) C***CATEGORY D4C1B1 C***TYPE SINGLE PRECISION (BANDR-S) C***KEYWORDS EIGENVALUES, EIGENVECTORS, EISPACK C***AUTHOR Smith, B. T., et al. C***DESCRIPTION C C This subroutine is a translation of the ALGOL procedure BANDRD, C NUM. MATH. 12, 231-241(1968) by Schwarz. C HANDBOOK FOR AUTO. COMP., VOL.II-LINEAR ALGEBRA, 273-283(1971). C C This subroutine reduces a REAL SYMMETRIC BAND matrix C to a symmetric tridiagonal matrix using and optionally C accumulating orthogonal similarity transformations. C C On INPUT C C NM must be set to the row dimension of the two-dimensional C array parameters, A and Z, as declared in the calling C program dimension statement. NM is an INTEGER variable. C C N is the order of the matrix A. N is an INTEGER variable. C N must be less than or equal to NM. C C MB is the (half) band width of the matrix, defined as the C number of adjacent diagonals, including the principal C diagonal, required to specify the non-zero portion of the C lower triangle of the matrix. MB is less than or equal C to N. MB is an INTEGER variable. C C A contains the lower triangle of the real symmetric band C matrix. Its lowest subdiagonal is stored in the last C N+1-MB positions of the first column, its next subdiagonal C in the last N+2-MB positions of the second column, further C subdiagonals similarly, and finally its principal diagonal C in the N positions of the last column. Contents of storage C locations not part of the matrix are arbitrary. A is a C two-dimensional REAL array, dimensioned A(NM,MB). C C MATZ should be set to .TRUE. if the transformation matrix is C to be accumulated, and to .FALSE. otherwise. MATZ is a C LOGICAL variable. C C On OUTPUT C C A has been destroyed, except for its last two columns which C contain a copy of the tridiagonal matrix. C C D contains the diagonal elements of the tridiagonal matrix. C D is a one-dimensional REAL array, dimensioned D(N). C C E contains the subdiagonal elements of the tridiagonal C matrix in its last N-1 positions. E(1) is set to zero. C E is a one-dimensional REAL array, dimensioned E(N). C C E2 contains the squares of the corresponding elements of E. C E2 may coincide with E if the squares are not needed. C E2 is a one-dimensional REAL array, dimensioned E2(N). C C Z contains the orthogonal transformation matrix produced in C the reduction if MATZ has been set to .TRUE. Otherwise, Z C is not referenced. Z is a two-dimensional REAL array, C dimensioned Z(NM,N). C C Questions and comments should be directed to B. S. Garbow, C Applied Mathematics Division, ARGONNE NATIONAL LABORATORY C ------------------------------------------------------------------ C C***REFERENCES B. T. Smith, J. M. Boyle, J. J. Dongarra, B. S. Garbow, C Y. Ikebe, V. C. Klema and C. B. Moler, Matrix Eigen- C system Routines - EISPACK Guide, Springer-Verlag, C 1976. C***ROUTINES CALLED (NONE) C***REVISION HISTORY (YYMMDD) C 760101 DATE WRITTEN C 890531 Changed all specific intrinsics to generic. (WRB) C 890831 Modified array declarations. (WRB) C 890831 REVISION DATE from Version 3.2 C 891214 Prologue converted to Version 4.0 format. (BAB) C 920501 Reformatted the REFERENCES section. (WRB) C***END PROLOGUE BANDR