slarre(3S)

SLARRE - the tridiagonal matrix T, SLARRE 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
     SLARRE - the tridiagonal matrix T, SLARRE 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 SLARRE( N, D, E, TOL, NSPLIT, ISPLIT, M, W, WOFF, GERSCH,
                        WORK, INFO )

         INTEGER        INFO, M, N, NSPLIT

         REAL           TOL

         INTEGER        ISPLIT( * )

         REAL           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, SLARRE 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 SSTEGR 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
     SLASQ2). As an added benefit, SLARRE 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) REAL 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) REAL 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) REAL
             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) REAL 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) REAL array, dimension (N)
             The NSPLIT base points sigma_i.

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

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

     INFO    (output) INTEGER
             Output error code from SLASQ2

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.