120 SUBROUTINE cungtr( UPLO, N, A, LDA, TAU, WORK, LWORK, INFO )
128 INTEGER INFO, LDA, LWORK, N
131 COMPLEX A( LDA, * ), TAU( * ), WORK( * )
138 parameter( zero = ( 0.0e+0, 0.0e+0 ),
139 $ one = ( 1.0e+0, 0.0e+0 ) )
142 LOGICAL LQUERY, UPPER
143 INTEGER I, IINFO, J, LWKOPT, NB
149 EXTERNAL ilaenv, lsame, sroundup_lwork
162 lquery = ( lwork.EQ.-1 )
163 upper = lsame( uplo,
'U' )
164 IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN
166 ELSE IF( n.LT.0 )
THEN
168 ELSE IF( lda.LT.max( 1, n ) )
THEN
170 ELSE IF( lwork.LT.max( 1, n-1 ) .AND. .NOT.lquery )
THEN
176 nb = ilaenv( 1,
'CUNGQL',
' ', n-1, n-1, n-1, -1 )
178 nb = ilaenv( 1,
'CUNGQR',
' ', n-1, n-1, n-1, -1 )
180 lwkopt = max( 1, n-1 )*nb
181 work( 1 ) = sroundup_lwork(lwkopt)
185 CALL xerbla(
'CUNGTR', -info )
187 ELSE IF( lquery )
THEN
208 a( i, j ) = a( i, j+1 )
219 CALL cungql( n-1, n-1, n-1, a, lda, tau, work, lwork,
233 a( i, j ) = a( i, j-1 )
244 CALL cungqr( n-1, n-1, n-1, a( 2, 2 ), lda, tau, work,
248 work( 1 ) = sroundup_lwork(lwkopt)
subroutine cungql(m, n, k, a, lda, tau, work, lwork, info)
CUNGQL
subroutine cungqr(m, n, k, a, lda, tau, work, lwork, info)
CUNGQR
subroutine cungtr(uplo, n, a, lda, tau, work, lwork, info)
CUNGTR