dlaqr5 (l) - Linux Manuals
Command to display dlaqr5
manual in Linux: $ man l dlaqr5
NAME
SYNOPSIS
- SUBROUTINE DLAQR5(
-
WANTT, WANTZ, KACC22, N, KTOP, KBOT, NSHFTS,
SR, SI, H, LDH, ILOZ, IHIZ, Z, LDZ, V, LDV, U,
LDU, NV, WV, LDWV, NH, WH, LDWH )
-
INTEGER
IHIZ, ILOZ, KACC22, KBOT, KTOP, LDH, LDU, LDV,
LDWH, LDWV, LDZ, N, NH, NSHFTS, NV
-
LOGICAL
WANTT, WANTZ
-
DOUBLE
PRECISION H( LDH, * ), SI( * ), SR( * ), U( LDU, * ),
V( LDV, * ), WH( LDWH, * ), WV( LDWV, * ),
Z( LDZ, * )
-
DOUBLE
PRECISION ZERO, ONE
-
PARAMETER
( ZERO = 0.0d0, ONE = 1.0d0 )
-
DOUBLE
PRECISION ALPHA, BETA, H11, H12, H21, H22, REFSUM,
SAFMAX, SAFMIN, SCL, SMLNUM, SWAP, TST1, TST2,
ULP
-
INTEGER
I, I2, I4, INCOL, J, J2, J4, JBOT, JCOL, JLEN,
JROW, JTOP, K, K1, KDU, KMS, KNZ, KRCOL, KZS,
M, M22, MBOT, MEND, MSTART, MTOP, NBMPS, NDCOL,
NS, NU
-
LOGICAL
ACCUM, BLK22, BMP22
-
DOUBLE
PRECISION DLAMCH
-
EXTERNAL
DLAMCH
-
INTRINSIC
ABS, DBLE, MAX, MIN, MOD
-
DOUBLE
PRECISION VT( 3 )
-
EXTERNAL
DGEMM, DLABAD, DLACPY, DLAQR1, DLARFG, DLASET,
DTRMM
-
IF(
NSHFTS.LT.2 )
RETURN
-
IF(
KTOP.GE.KBOT )
RETURN
-
DO
10 I = 1, NSHFTS - 2, 2
-
IF(
SI( I ).NE.-SI( I+1 ) ) THEN
-
SWAP
= SR( I )
-
SR(
I ) = SR( I+1 )
-
SR(
I+1 ) = SR( I+2 )
-
SR(
I+2 ) = SWAP
-
SWAP
= SI( I )
-
SI(
I ) = SI( I+1 )
-
SI(
I+1 ) = SI( I+2 )
-
SI(
I+2 ) = SWAP
-
END
IF
-
10
CONTINUE
-
NS
= NSHFTS - MOD( NSHFTS, 2 )
-
SAFMIN
= DLAMCH( aqSAFE MINIMUMaq )
-
SAFMAX
= ONE / SAFMIN
-
CALL
DLABAD( SAFMIN, SAFMAX )
-
ULP
= DLAMCH( aqPRECISIONaq )
-
SMLNUM
= SAFMIN*( DBLE( N ) / ULP )
-
ACCUM
= ( KACC22.EQ.1 ) .OR. ( KACC22.EQ.2 )
-
BLK22
= ( NS.GT.2 ) .AND. ( KACC22.EQ.2 )
-
IF(
KTOP+2.LE.KBOT )
H( KTOP+2, KTOP ) = ZERO
-
NBMPS
= NS / 2
-
KDU
= 6*NBMPS - 3
-
DO
220 INCOL = 3*( 1-NBMPS ) + KTOP - 1, KBOT - 2, 3*NBMPS - 2
-
NDCOL
= INCOL + KDU
-
IF(
ACCUM )
CALL DLASET( aqALLaq, KDU, KDU, ZERO, ONE, U, LDU )
-
DO
150 KRCOL = INCOL, MIN( INCOL+3*NBMPS-3, KBOT-2 )
-
MTOP
= MAX( 1, ( ( KTOP-1 )-KRCOL+2 ) / 3+1 )
-
MBOT
= MIN( NBMPS, ( KBOT-KRCOL ) / 3 )
-
M22
= MBOT + 1
-
BMP22
= ( MBOT.LT.NBMPS ) .AND. ( KRCOL+3*( M22-1 ) ).EQ.
( KBOT-2 )
-
DO
20 M = MTOP, MBOT
-
K
= KRCOL + 3*( M-1 )
-
IF(
K.EQ.KTOP-1 ) THEN
-
CALL
DLAQR1( 3, H( KTOP, KTOP ), LDH, SR( 2*M-1 ),
SI( 2*M-1 ), SR( 2*M ), SI( 2*M ),
V( 1, M ) )