dlarre(3S)

DLARRE - the tridiagonal matrix T, DLARRE sets "small" off-diagonal elements to zero, and for each unreduced block T_i, it finds (i) the numbers sigma_i (ii) the base T_i - sigma_i I = L_i D_i L_i^T representations and (iii) eigenvalues of each L_i D_i L_i^T

As shipped in IRIX 6.5.22. Added in IRIX 6.5.15.

NAME
     DLARRE - the tridiagonal matrix T, DLARRE sets "small" off-diagonal
     elements to zero, and for each unreduced block T_i, it finds (i) the
     numbers sigma_i (ii) the base T_i - sigma_i I = L_i D_i L_i^T
     representations and (iii) eigenvalues of each L_i D_i L_i^T

SYNOPSIS
     SUBROUTINE DLARRE( N, D, E, TOL, NSPLIT, ISPLIT, M, W, WOFF, GERSCH,
                        WORK, INFO )

         INTEGER        INFO, M, N, NSPLIT

         DOUBLE         PRECISION TOL

         INTEGER        ISPLIT( * )

         DOUBLE         PRECISION D( * ), E( * ), GERSCH( * ), W( * ), WOFF( *
                        ), WORK( * )

IMPLEMENTATION
     These routines are part of the SCSL Scientific Library and can be loaded
     using either the -lscs or the -lscs_mp option.  The -lscs_mp option
     directs the linker to use the multi-processor version of the library.

     When linking to SCSL with -lscs or -lscs_mp, the default integer size is
     4 bytes (32 bits). Another version of SCSL is available in which integers
     are 8 bytes (64 bits).  This version allows the user access to larger
     memory sizes and helps when porting legacy Cray codes.  It can be loaded
     by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
     only one of the two versions; 4-byte integer and 8-byte integer library
     calls cannot be mixed.

PURPOSE
     Given the tridiagonal matrix T, DLARRE sets "small" off-diagonal elements
     to zero, and for each unreduced block T_i, it finds (i) the numbers
     sigma_i (ii) the base T_i - sigma_i I = L_i D_i L_i^T representations and
     (iii) eigenvalues of each L_i D_i L_i^T. The representations and
     eigenvalues found are then used by DSTEGR to compute the eigenvectors of
     a symmetric tridiagonal matrix. Currently, the base representations are
     limited to being positive or negative definite, and the eigenvalues of
     the definite matrices are found by the dqds algorithm (subroutine
     DLASQ2). As an added benefit, DLARRE also outputs the n Gerschgorin
     intervals for each L_i D_i L_i^T.


ARGUMENTS
     N       (input) INTEGER
             The order of the matrix.

     D       (input/output) DOUBLE PRECISION array, dimension (N)
             On entry, the n diagonal elements of the tridiagonal matrix T.
             On exit, the n diagonal elements of the diagonal matrices D_i.
     E       (input/output) DOUBLE PRECISION array, dimension (N)
             On entry, the (n-1) subdiagonal elements of the tridiagonal
             matrix T; E(N) need not be set.  On exit, the subdiagonal
             elements of the unit bidiagonal matrices L_i.

     TOL     (input) DOUBLE PRECISION
             The threshold for splitting. If on input |E(i)| < TOL, then the
             matrix T is split into smaller blocks.

     NSPLIT  (input) INTEGER
             The number of blocks T splits into. 1 <= NSPLIT <= N.

     ISPLIT  (output) INTEGER array, dimension (2*N)
             The splitting points, at which T breaks up into submatrices.  The
             first submatrix consists of rows/columns 1 to ISPLIT(1), the
             second of rows/columns ISPLIT(1)+1 through ISPLIT(2), etc., and
             the NSPLIT-th consists of rows/columns ISPLIT(NSPLIT-1)+1 through
             ISPLIT(NSPLIT)=N.

     M       (output) INTEGER
             The total number of eigenvalues (of all the L_i D_i L_i^T) found.

     W       (output) DOUBLE PRECISION array, dimension (N)
             The first M elements contain the eigenvalues. The eigenvalues of
             each of the blocks, L_i D_i L_i^T, are sorted in ascending order.

     WOFF    (output) DOUBLE PRECISION array, dimension (N)
             The NSPLIT base points sigma_i.

     GERSCH  (output) DOUBLE PRECISION array, dimension (2*N)
             The n Gerschgorin intervals.

     WORK    (input) DOUBLE PRECISION array, dimension (4*N???)
             Workspace.

     INFO    (output) INTEGER
             Output error code from DLASQ2

FURTHER DETAILS
     Based on contributions by
        Inderjit Dhillon, IBM Almaden, USA
        Osni Marques, LBNL/NERSC, USA


SEE ALSO
     INTRO_LAPACK(3S), INTRO_SCSL(3S)

     This man page is available only online.