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.19. 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