dlaqr2 (l) - Linux Manuals
Command to display dlaqr2
manual in Linux: $ man l dlaqr2
NAME
SYNOPSIS
- SUBROUTINE DLAQR2(
-
WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ,
IHIZ, Z, LDZ, NS, ND, SR, SI, V, LDV, NH, T,
LDT, NV, WV, LDWV, WORK, LWORK )
-
INTEGER
IHIZ, ILOZ, KBOT, KTOP, LDH, LDT, LDV, LDWV,
LDZ, LWORK, N, ND, NH, NS, NV, NW
-
LOGICAL
WANTT, WANTZ
-
DOUBLE
PRECISION H( LDH, * ), SI( * ), SR( * ), T( LDT, * ),
V( LDV, * ), WORK( * ), WV( LDWV, * ),
Z( LDZ, * )
-
DOUBLE
PRECISION ZERO, ONE
-
PARAMETER
( ZERO = 0.0d0, ONE = 1.0d0 )
-
DOUBLE
PRECISION AA, BB, BETA, CC, CS, DD, EVI, EVK, FOO, S,
SAFMAX, SAFMIN, SMLNUM, SN, TAU, ULP
-
INTEGER
I, IFST, ILST, INFO, INFQR, J, JW, K, KCOL,
KEND, KLN, KROW, KWTOP, LTOP, LWK1, LWK2,
LWKOPT
-
LOGICAL
BULGE, SORTED
-
DOUBLE
PRECISION DLAMCH
-
EXTERNAL
DLAMCH
-
EXTERNAL
DCOPY, DGEHRD, DGEMM, DLABAD, DLACPY, DLAHQR,
DLANV2, DLARF, DLARFG, DLASET, DORMHR, DTREXC
-
INTRINSIC
ABS, DBLE, INT, MAX, MIN, SQRT
-
JW
= MIN( NW, KBOT-KTOP+1 )
-
IF(
JW.LE.2 ) THEN
-
LWKOPT
= 1
-
ELSE
-
CALL
DGEHRD( JW, 1, JW-1, T, LDT, WORK, WORK, -1, INFO )
-
LWK1
= INT( WORK( 1 ) )
-
CALL
DORMHR( aqRaq, aqNaq, JW, JW, 1, JW-1, T, LDT, WORK, V, LDV,
WORK, -1, INFO )
-
LWK2
= INT( WORK( 1 ) )
-
LWKOPT
= JW + MAX( LWK1, LWK2 )
-
END
IF
-
IF(
LWORK.EQ.-1 ) THEN
-
WORK(
1 ) = DBLE( LWKOPT )
-
RETURN
-
END
IF
-
NS
= 0
-
ND
= 0
-
WORK(
1 ) = ONE
-
IF(
KTOP.GT.KBOT )
RETURN
-
IF(
NW.LT.1 )
RETURN
-
SAFMIN
= DLAMCH( aqSAFE MINIMUMaq )
-
SAFMAX
= ONE / SAFMIN
-
CALL
DLABAD( SAFMIN, SAFMAX )
-
ULP
= DLAMCH( aqPRECISIONaq )
-
SMLNUM
= SAFMIN*( DBLE( N ) / ULP )
-
JW
= MIN( NW, KBOT-KTOP+1 )
-
KWTOP
= KBOT - JW + 1
-
IF(
KWTOP.EQ.KTOP ) THEN
-
S
= ZERO
-
ELSE
-
S
= H( KWTOP, KWTOP-1 )
-
END
IF
-
IF(
KBOT.EQ.KWTOP ) THEN
-
SR(
KWTOP ) = H( KWTOP, KWTOP )
-
SI(
KWTOP ) = ZERO
-
NS
= 1
-
ND
= 0
-
IF(
ABS( S ).LE.MAX( SMLNUM, ULP*ABS( H( KWTOP, KWTOP ) ) ) )
THEN
-
NS
= 0