lasq3(3)

NAME
lasq3 - lasq3: dqds step

SYNOPSIS

  Functions

subroutine dlasq3 (i0, n0, z, pp, dmin, sigma, desig, qmax, nfail, iter, ndiv, ieee, ttype, dmin1, dmin2, dn, dn1, dn2, g, tau)
DLASQ3 checks for deflation, computes a shift and calls dqds. Used by sbdsqr.
subroutine slasq3 (i0, n0, z, pp, dmin, sigma, desig, qmax, nfail, iter, ndiv, ieee, ttype, dmin1, dmin2, dn, dn1, dn2, g, tau)
SLASQ3 checks for deflation, computes a shift and calls dqds. Used by sbdsqr.

Detailed Description

Function Documentation

  subroutine dlasq3 (integer i0, integer n0, double precision, dimension( * ) z, integer pp, double precision dmin, double precision sigma, double precision desig, double precision qmax, integer nfail, integer iter, integer ndiv, logical ieee, integer ttype, double precision dmin1, double precision dmin2, double precision dn, double precision dn1, double precision dn2, double precision g, double precision tau)

DLASQ3 checks for deflation, computes a shift and calls dqds. Used by sbdsqr.

Purpose:

    !>
    !> DLASQ3 checks for deflation, computes a shift (TAU) and calls dqds.
    !> In case of failure it changes shifts, and tries again until output
    !> is positive.
    !>

Parameters
    I0

    !>          I0 is INTEGER
    !>         First index.
    !>

    N0

    !>          N0 is INTEGER
    !>         Last index.
    !>

    Z

    !>          Z is DOUBLE PRECISION array, dimension ( 4*N0 )
    !>         Z holds the qd array.
    !>

    PP

    !>          PP is INTEGER
    !>         PP=0 for ping, PP=1 for pong.
    !>         PP=2 indicates that flipping was applied to the Z array
    !>         and that the initial tests for deflation should not be
    !>         performed.
    !>

    DMIN

    !>          DMIN is DOUBLE PRECISION
    !>         Minimum value of d.
    !>

    SIGMA

    !>          SIGMA is DOUBLE PRECISION
    !>         Sum of shifts used in current segment.
    !>

    DESIG

    !>          DESIG is DOUBLE PRECISION
    !>         Lower order part of SIGMA
    !>

    QMAX

    !>          QMAX is DOUBLE PRECISION
    !>         Maximum value of q.
    !>

    NFAIL

    !>          NFAIL is INTEGER
    !>         Increment NFAIL by 1 each time the shift was too big.
    !>

    ITER

    !>          ITER is INTEGER
    !>         Increment ITER by 1 for each iteration.
    !>

    NDIV

    !>          NDIV is INTEGER
    !>         Increment NDIV by 1 for each division.
    !>

    IEEE

    !>          IEEE is LOGICAL
    !>         Flag for IEEE or non IEEE arithmetic (passed to DLASQ5).
    !>

    TTYPE

    !>          TTYPE is INTEGER
    !>         Shift type.
    !>

    DMIN1

    !>          DMIN1 is DOUBLE PRECISION
    !>

    DMIN2

    !>          DMIN2 is DOUBLE PRECISION
    !>

    DN

    !>          DN is DOUBLE PRECISION
    !>

    DN1

    !>          DN1 is DOUBLE PRECISION
    !>

    DN2

    !>          DN2 is DOUBLE PRECISION
    !>

    G

    !>          G is DOUBLE PRECISION
    !>

    TAU

    !>          TAU is DOUBLE PRECISION
    !>
    !>         These are passed as arguments in order to save their values
    !>         between calls to DLASQ3.
    !>

Author
    Univ. of Tennessee

    Univ. of California Berkeley

    Univ. of Colorado Denver

    NAG Ltd.

  subroutine slasq3 (integer i0, integer n0, real, dimension( * ) z, integer pp, real dmin, real sigma, real desig, real qmax, integer nfail, integer iter, integer ndiv, logical ieee, integer ttype, real dmin1, real dmin2, real dn, real dn1, real dn2, real g, real tau)

SLASQ3 checks for deflation, computes a shift and calls dqds. Used by sbdsqr.

Purpose:

    !>
    !> SLASQ3 checks for deflation, computes a shift (TAU) and calls dqds.
    !> In case of failure it changes shifts, and tries again until output
    !> is positive.
    !>

Parameters
    I0

    !>          I0 is INTEGER
    !>         First index.
    !>

    N0

    !>          N0 is INTEGER
    !>         Last index.
    !>

    Z

    !>          Z is REAL array, dimension ( 4*N0 )
    !>         Z holds the qd array.
    !>

    PP

    !>          PP is INTEGER
    !>         PP=0 for ping, PP=1 for pong.
    !>         PP=2 indicates that flipping was applied to the Z array
    !>         and that the initial tests for deflation should not be
    !>         performed.
    !>

    DMIN

    !>          DMIN is REAL
    !>         Minimum value of d.
    !>

    SIGMA

    !>          SIGMA is REAL
    !>         Sum of shifts used in current segment.
    !>

    DESIG

    !>          DESIG is REAL
    !>         Lower order part of SIGMA
    !>

    QMAX

    !>          QMAX is REAL
    !>         Maximum value of q.
    !>

    NFAIL

    !>          NFAIL is INTEGER
    !>         Increment NFAIL by 1 each time the shift was too big.
    !>

    ITER

    !>          ITER is INTEGER
    !>         Increment ITER by 1 for each iteration.
    !>

    NDIV

    !>          NDIV is INTEGER
    !>         Increment NDIV by 1 for each division.
    !>

    IEEE

    !>          IEEE is LOGICAL
    !>         Flag for IEEE or non IEEE arithmetic (passed to SLASQ5).
    !>

    TTYPE

    !>          TTYPE is INTEGER
    !>         Shift type.
    !>

    DMIN1

    !>          DMIN1 is REAL
    !>

    DMIN2

    !>          DMIN2 is REAL
    !>

    DN

    !>          DN is REAL
    !>

    DN1

    !>          DN1 is REAL
    !>

    DN2

    !>          DN2 is REAL
    !>

    G

    !>          G is REAL
    !>

    TAU

    !>          TAU is REAL
    !>
    !>         These are passed as arguments in order to save their values
    !>         between calls to SLASQ3.
    !>

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.