DLAIC1(3f)

NAME
DLAIC1 - one step of incremental condition estimation in its simplest version

SYNOPSIS

SUBROUTINE DLAIC1(
    JOB, J, X, SEST, W, GAMMA, SESTPR, S, C )

INTEGER
    J, JOB

DOUBLE
    PRECISION C, GAMMA, S, SEST, SESTPR

DOUBLE
    PRECISION W( J ), X( J )

PURPOSE
DLAIC1 applies one step of incremental condition estimation in its simplest version: Let x, twonorm(x) = 1, be an approximate singular vector of an j-by-j lower triangular matrix L, such that
         twonorm(L*x) = sest
Then DLAIC1 computes sestpr, s, c such that
the vector
                [ s*x ]
         xhat = [ c ]
is an approximate singular vector of
                [ L 0 ]
         Lhat = [ w' gamma ]
in the sense that
         twonorm(Lhat*xhat) = sestpr.
Depending on JOB, an estimate for the largest or smallest singular value is computed.
Note that [s c]' and sestpr**2 is an eigenpair of the system
    diag(sest*sest, 0) + [alpha gamma] * [ alpha ]
                        [ gamma ]
where alpha = x'*w.

ARGUMENTS

JOB     (input) INTEGER
    = 1: an estimate for the largest singular value is computed.
    = 2: an estimate for the smallest singular value is computed.

J       (input) INTEGER
    Length of X and W

X       (input) DOUBLE PRECISION array, dimension (J)
    The j-vector x.

SEST    (input) DOUBLE PRECISION
    Estimated singular value of j by j matrix L

W       (input) DOUBLE PRECISION array, dimension (J)
    The j-vector w.

GAMMA   (input) DOUBLE PRECISION
    The diagonal element gamma.

SESTPR  (output) DOUBLE PRECISION
    Estimated singular value of (j+1) by (j+1) matrix Lhat.

S       (output) DOUBLE PRECISION
    Sine needed in forming xhat.

C       (output) DOUBLE PRECISION
    Cosine needed in forming xhat.