claqr3 (l) - Linux Manuals
Command to display claqr3
manual in Linux: $ man l claqr3
NAME
SYNOPSIS
- SUBROUTINE CLAQR3(
-
WANTT, WANTZ, N, KTOP, KBOT, NW, H, LDH, ILOZ,
IHIZ, Z, LDZ, NS, ND, SH, 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
-
COMPLEX
H( LDH, * ), SH( * ), T( LDT, * ), V( LDV, * ),
WORK( * ), WV( LDWV, * ), Z( LDZ, * )
-
COMPLEX
ZERO, ONE
-
PARAMETER
( ZERO = ( 0.0e0, 0.0e0 ),
ONE = ( 1.0e0, 0.0e0 ) )
-
REAL
RZERO, RONE
-
PARAMETER
( RZERO = 0.0e0, RONE = 1.0e0 )
-
COMPLEX
BETA, CDUM, S, TAU
-
REAL
FOO, SAFMAX, SAFMIN, SMLNUM, ULP
-
INTEGER
I, IFST, ILST, INFO, INFQR, J, JW, KCOL, KLN,
KNT, KROW, KWTOP, LTOP, LWK1, LWK2, LWK3,
LWKOPT, NMIN
-
REAL
SLAMCH
-
INTEGER
ILAENV
-
EXTERNAL
SLAMCH, ILAENV
-
EXTERNAL
CCOPY, CGEHRD, CGEMM, CLACPY, CLAHQR, CLAQR4,
CLARF, CLARFG, CLASET, CTREXC, CUNMHR, SLABAD
-
INTRINSIC
ABS, AIMAG, CMPLX, CONJG, INT, MAX, MIN, REAL
-
REAL
CABS1
-
CABS1(
CDUM ) = ABS( REAL( CDUM ) ) + ABS( AIMAG( CDUM ) )
-
JW
= MIN( NW, KBOT-KTOP+1 )
-
IF(
JW.LE.2 ) THEN
-
LWKOPT
= 1
-
ELSE
-
CALL
CGEHRD( JW, 1, JW-1, T, LDT, WORK, WORK, -1, INFO )
-
LWK1
= INT( WORK( 1 ) )
-
CALL
CUNMHR( aqRaq, aqNaq, JW, JW, 1, JW-1, T, LDT, WORK, V, LDV,
WORK, -1, INFO )
-
LWK2
= INT( WORK( 1 ) )
-
CALL
CLAQR4( .true., .true., JW, 1, JW, T, LDT, SH, 1, JW, V,
LDV, WORK, -1, INFQR )
-
LWK3
= INT( WORK( 1 ) )
-
LWKOPT
= MAX( JW+MAX( LWK1, LWK2 ), LWK3 )
-
END
IF
-
IF(
LWORK.EQ.-1 ) THEN
-
WORK(
1 ) = CMPLX( LWKOPT, 0 )
-
RETURN
-
END
IF
-
NS
= 0
-
ND
= 0
-
WORK(
1 ) = ONE
-
IF(
KTOP.GT.KBOT )
RETURN
-
IF(
NW.LT.1 )
RETURN
-
SAFMIN
= SLAMCH( aqSAFE MINIMUMaq )
-
SAFMAX
= RONE / SAFMIN
-
CALL
SLABAD( SAFMIN, SAFMAX )
-
ULP
= SLAMCH( aqPRECISIONaq )
-
SMLNUM
= SAFMIN*( REAL( 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