BQR(3F)
BQR, SBQR - EISPACK routine. This subroutine finds the eigenvalue of smallest (usually) magnitude of a REAL SYMMETRIC BAND matrix using the QR algorithm with shifts of origin. Consecutive calls can be made to find further eigenvalues.
As shipped in IRIX 6.5.5. Unchanged since IRIX 6.5.
NAME BQR, SBQR - EISPACK routine. This subroutine finds the eigenvalue of smallest (usually) magnitude of a REAL SYMMETRIC BAND matrix using the QR algorithm with shifts of origin. Consecutive calls can be made to find further eigenvalues. SYNOPSYS subroutine bqr(nm, n, mb, a, t, r, ierr, nv, rv) integer nm, n, mb, ierr, nv double precision t, r double precision a(nm,mb), rv(nv) subroutine sbqr(nm, n, mb, a, t, r, ierr, nv, rv) integer nm, n, mb, ierr, nv real t, r real a(nm,mb), rv(nv) DESCRIPTION On INPUT NM must be set to the row dimension of two-dimensional array parameters as declared in the calling program dimension statement. N is the order of the matrix. MB is the (half) band width of the matrix, defined as the number of adjacent diagonals, including the principal diagonal, required to specify the non-zero portion of the lower triangle of the matrix. A contains the lower triangle of the symmetric band input matrix stored as an N by MB array. Its lowest subdiagonal is stored in the last N+1-MB positions of the first column, its next subdiagonal in the last N+2-MB positions of the second column, further subdiagonals similarly, and finally its principal diagonal in the N positions of the last column. Contents of storages not part of the matrix are arbitrary. On a subsequent call, its output contents from the previous call should be passed. T specifies the shift (of eigenvalues) applied to the diagonal of A in forming the input matrix. What is actually determined is the eigenvalue of A+TI (I is the identity matrix) nearest to T. On a subsequent call, the output value of T from the previous call should be passed if the next nearest eigenvalue is sought. R should be specified as zero on the first call, and as its output value from the previous call on a subsequent call. It is used to determine when the last row and column of the transformed band matrix can be regarded as negligible. NV must be set to the dimension of the array parameter RV as declared in the calling program dimension statement. On OUTPUT A contains the transformed band matrix. The matrix A+TI derived from the output parameters is similar to the input A+TI to within rounding errors. Its last row and column are null (if IERR is zero). T contains the computed eigenvalue of A+TI (if IERR is zero). R contains the maximum of its input value and the norm of the last column of the input matrix A. IERR is set to Zero for normal return, N if the eigenvalue has not been determined after 30 iterations. RV is a temporary storage array of dimension at least (2*MB**2+4*MB-3). The first (3*MB-2) locations correspond to the ALGOL array B, the next (2*MB-1) locations correspond to the ALGOL array H, and the final (2*MB**2-MB) locations correspond to the MB by (2*MB-1) ALGOL array U. NOTE. For a subsequent call, N should be replaced by N-1, but MB should not be altered even when it exceeds the current N. Calls PYTHAG(A,B) for SQRT(A**2 + B**2). Questions and comments should be directed to B. S. Garbow, Applied Mathematics Division, ARGONNE NATIONAL LABORATORY