223 $ HOUS2, LHOUS2, WORK, LWORK, INFO )
233 INTEGER N, LDA, LWORK, LHOUS2,
236 DOUBLE PRECISION D( * ), E( * )
237 DOUBLE PRECISION A( LDA, * ), TAU( * ),
238 $ hous2( * ), work( * )
244 LOGICAL LQUERY, UPPER, WANTQ
245 INTEGER KD, IB, LWMIN, LHMIN, LWRK, LDAB, WPOS, ABPOS
253 EXTERNAL lsame, ilaenv2stage
260 wantq = lsame( vect,
'V' )
261 upper = lsame( uplo,
'U' )
262 lquery = ( lwork.EQ.-1 ) .OR. ( lhous2.EQ.-1 )
266 kd = ilaenv2stage( 1,
'DSYTRD_2STAGE', vect, n, -1, -1, -1 )
267 ib = ilaenv2stage( 2,
'DSYTRD_2STAGE', vect, n, kd, -1, -1 )
268 lhmin = ilaenv2stage( 3, '
dsytrd_2stage', VECT, N, KD, IB, -1 )
269 LWMIN = ILAENV2STAGE( 4, 'dsytrd_2stage', VECT, N, KD, IB, -1 )
273.NOT.
IF( LSAME( VECT, 'n
' ) ) THEN
275.NOT..AND..NOT.
ELSE IF( UPPER LSAME( UPLO, 'l
' ) ) THEN
277.LT.
ELSE IF( N0 ) THEN
279.LT.
ELSE IF( LDAMAX( 1, N ) ) THEN
281.LT..AND..NOT.
ELSE IF( LHOUS2LHMIN LQUERY ) THEN
283.LT..AND..NOT.
ELSE IF( LWORKLWMIN LQUERY ) THEN
295 ELSE IF( LQUERY ) THEN
311 WPOS = ABPOS + LDAB*N
312 CALL DSYTRD_SY2SB( UPLO, N, KD, A, LDA, WORK( ABPOS ), LDAB,
313 $ TAU, WORK( WPOS ), LWRK, INFO )
318 CALL DSYTRD_SB2ST( 'y
', VECT, UPLO, N, KD,
319 $ WORK( ABPOS ), LDAB, D, E,
320 $ HOUS2, LHOUS2, WORK( WPOS ), LWRK, INFO )
subroutine dsytrd_sb2st(stage1, vect, uplo, n, kd, ab, ldab, d, e, hous, lhous, work, lwork, info)
DSYTRD_SB2ST reduces a real symmetric band matrix A to real symmetric tridiagonal form T
subroutine xerbla(srname, info)
XERBLA
subroutine dsytrd_sy2sb(uplo, n, kd, a, lda, ab, ldab, tau, work, lwork, info)
DSYTRD_SY2SB
subroutine dsytrd_2stage(vect, uplo, n, a, lda, d, e, tau, hous2, lhous2, work, lwork, info)
DSYTRD_2STAGE