lasq1(3)

NAME
lasq1 - lasq1: dqds step

SYNOPSIS

  Functions

subroutine dlasq1 (n, d, e, work, info)
DLASQ1 computes the singular values of a real square bidiagonal matrix. Used by sbdsqr.
subroutine slasq1 (n, d, e, work, info)
SLASQ1 computes the singular values of a real square bidiagonal matrix. Used by sbdsqr.

Detailed Description

Function Documentation

  subroutine dlasq1 (integer n, double precision, dimension( * ) d, double precision, dimension( * ) e, double precision, dimension( * ) work, integer info)

DLASQ1 computes the singular values of a real square bidiagonal matrix. Used by sbdsqr.

Purpose:

    !>
    !> DLASQ1 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
    !>
    !>  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 , LAPACK Working Note.
    !>

Parameters
    N

    !>          N is INTEGER
    !>        The number of rows and columns in the matrix. N >= 0.
    !>

    D

    !>          D is DOUBLE PRECISION 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

    !>          E is DOUBLE PRECISION 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

    !>          WORK is DOUBLE PRECISION array, dimension (4*N)
    !>

    INFO

    !>          INFO is 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 100*N
    !>                  iterations (in inner while loop)  On exit D and E
    !>                  represent a matrix with the same singular values
    !>                  which the calling subroutine could use to finish the
    !>                  computation, or even feed back into DLASQ1
    !>             = 3, termination criterion of outer while loop not met
    !>                  (program created more than N unreduced blocks)
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

  subroutine slasq1 (integer n, real, dimension( * ) d, real, dimension( * ) e, real, dimension( * ) work, integer info)

SLASQ1 computes the singular values of a real square bidiagonal matrix. Used by sbdsqr.

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
    !>
    !>  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 , LAPACK Working Note.
    !>

Parameters
    N

    !>          N is INTEGER
    !>        The number of rows and columns in the matrix. N >= 0.
    !>

    D

    !>          D is 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

    !>          E is 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

    !>          WORK is REAL array, dimension (4*N)
    !>

    INFO

    !>          INFO is 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 100*N
    !>                  iterations (in inner while loop)  On exit D and E
    !>                  represent a matrix with the same singular values
    !>                  which the calling subroutine could use to finish the
    !>                  computation, or even feed back into SLASQ1
    !>             = 3, termination criterion of outer while loop not met
    !>                  (program created more than N unreduced blocks)
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

Author

Generated automatically by Doxygen for LAPACK from the source code.