slasq1(3S)

SLASQ1 - compute the singular values of a real N-by-N bidiagonal matrix with diagonal D and off-diagonal E

As shipped in IRIX 6.5.19. Added in IRIX 6.5.15.

NAME
     SLASQ1 - compute the singular values of a real N-by-N bidiagonal matrix
     with diagonal D and off-diagonal E

SYNOPSIS
     SUBROUTINE SLASQ1( N, D, E, WORK, INFO )

         INTEGER        INFO, N

         REAL           D( * ), E( * ), 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
     SLASQ1 computes the singular values of a real N-by-N bidiagonal matrix
     with diagonal D and off-diagonal E. The singular values are computed to
     high relative accuracy, in the absence of denormalization, underflow and
     overflow. The algorithm was first presented in

     "Accurate singular values and differential qd algorithms" by K. V.
     Fernando and B. N. Parlett, Numer. Math., Vol-67, No. 2, pp. 191-230,
     1994,

     and the present implementation is described in "An implementation of the
     dqds Algorithm (Positive Case)", LAPACK Working Note.


ARGUMENTS
     N     (input) INTEGER
           The number of rows and columns in the matrix. N >= 0.

     D     (input/output) REAL array, dimension (N)
           On entry, D contains the diagonal elements of the bidiagonal matrix
           whose SVD is desired. On normal exit, D contains the singular
           values in decreasing order.

     E     (input/output) REAL array, dimension (N)
           On entry, elements E(1:N-1) contain the off-diagonal elements of
           the bidiagonal matrix whose SVD is desired.  On exit, E is
           overwritten.
     WORK  (workspace) REAL array, dimension (4*N)

     INFO  (output) INTEGER
           = 0: successful exit
           < 0: if INFO = -i, the i-th argument had an illegal value
           > 0: the algorithm failed = 1, a split was marked by a positive
           value in E = 2, current block of Z not diagonalized after 30*N
           iterations (in inner while loop) = 3, termination criterion of
           outer while loop not met (program created more than N unreduced
           blocks)

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

     This man page is available only online.