DLAQR1(3)

NAME

SYNOPSIS

SUBROUTINE DLAQR1(
    N, H, LDH, SR1, SI1, SR2, SI2, V )

DOUBLE
    PRECISION SI1, SI2, SR1, SR2

INTEGER
    LDH, N

DOUBLE
    PRECISION H( LDH, * ), V( * )

DOUBLE
    PRECISION ZERO

PARAMETER
    ( ZERO = 0.0d0 )

DOUBLE
    PRECISION H21S, H31S, S

INTRINSIC
    ABS

IF( N.EQ.2 ) THEN

S   = ABS( H( 1, 1 )-SR2 ) + ABS( SI2 ) + ABS( H( 2, 1 ) )

IF( S.EQ.ZERO ) THEN

V(  1 ) = ZERO

V(  2 ) = ZERO

ELSE

H21S
    = H( 2, 1 ) / S

V(  1 ) = H21S*H( 1, 2 ) + ( H( 1, 1 )-SR1 )* ( ( H( 1, 1 )-SR2 ) / S ) - SI1*( SI2 / S )

V(  2 ) = H21S*( H( 1, 1 )+H( 2, 2 )-SR1-SR2 )

END IF

ELSE

S   = ABS( H( 1, 1 )-SR2 ) + ABS( SI2 ) + ABS( H( 2, 1 ) ) + ABS( H( 3, 1 ) )

IF( S.EQ.ZERO ) THEN

V(  1 ) = ZERO

V(  2 ) = ZERO

V(  3 ) = ZERO

ELSE

H21S
    = H( 2, 1 ) / S

H31S
    = H( 3, 1 ) / S

V(  1 ) = ( H( 1, 1 )-SR1 )*( ( H( 1, 1 )-SR2 ) / S ) - SI1*( SI2 / S ) + H( 1, 2 )*H21S + H( 1, 3 )*H31S

V(  2 ) = H21S*( H( 1, 1 )+H( 2, 2 )-SR1-SR2 ) + H( 2, 3 )*H31S

V(  3 ) = H31S*( H( 1, 1 )+H( 3, 3 )-SR1-SR2 ) + H21S*H( 3, 2 )

END IF

END IF

END

PURPOSE