194 SUBROUTINE zunmbr( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C,
195 $ LDC, WORK, LWORK, INFO )
202 CHARACTER SIDE, TRANS, VECT
203 INTEGER INFO, K, LDA, LDC, LWORK, M, N
206 COMPLEX*16 A( LDA, * ), C( LDC, * ), TAU( * ), WORK( * )
212 LOGICAL APPLYQ, LEFT, LQUERY, NOTRAN
214 INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW
219 EXTERNAL lsame, ilaenv
232 applyq = lsame( vect,
'Q' )
233 left = lsame( side,
'L' )
234 notran = lsame( trans,
'N' )
235 lquery = ( lwork.EQ.-1 )
246 IF( .NOT.applyq .AND. .NOT.lsame( vect,
'P' ) )
THEN
248 ELSE IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
250 ELSE IF( .NOT.notran .AND. .NOT.lsame( trans,
'C' ) )
THEN
252 ELSE IF( m.LT.0 )
THEN
254 ELSE IF( n.LT.0 )
THEN
256 ELSE IF( k.LT.0 )
THEN
258 ELSE IF( ( applyq .AND. lda.LT.max( 1, nq ) ) .OR.
259 $ ( .NOT.applyq .AND. lda.LT.max( 1, min( nq, k ) ) ) )
262 ELSE IF( ldc.LT.max( 1, m ) )
THEN
264 ELSE IF( lwork.LT.nw .AND. .NOT.lquery )
THEN
269 IF( m.GT.0 .AND. n.GT.0 )
THEN
272 nb = ilaenv( 1,
'ZUNMQR', side // trans, m-1, n, m-1,
275 nb = ilaenv( 1,
'ZUNMQR', side // trans, m, n-1, n-1,
280 nb = ilaenv( 1,
'ZUNMLQ', side // trans, m-1, n, m-1,
283 nb = ilaenv( 1,
'ZUNMLQ', side // trans, m, n-1, n-1,
295 CALL xerbla(
'ZUNMBR', -info )
297 ELSE IF( lquery )
THEN
303 IF( m.EQ.0 .OR. n.EQ.0 )
314 CALL zunmqr( side, trans, m, n, k, a, lda, tau, c, ldc,
315 $ work, lwork, iinfo )
316 ELSE IF( nq.GT.1 )
THEN
331 CALL zunmqr( side, trans, mi, ni, nq-1, a( 2, 1 ), lda, tau,
332 $ c( i1, i2 ), ldc, work, lwork, iinfo )
347 CALL zunmlq( side, transt, m, n, k, a, lda, tau, c, ldc,
348 $ work, lwork, iinfo )
349 ELSE IF( nq.GT.1 )
THEN
364 CALL zunmlq( side, transt, mi, ni, nq-1, a( 1, 2 ), lda,
365 $ tau, c( i1, i2 ), ldc, work, lwork, iinfo )
subroutine xerbla(srname, info)
subroutine zunmbr(vect, side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
ZUNMBR
subroutine zunmlq(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
ZUNMLQ
subroutine zunmqr(side, trans, m, n, k, a, lda, tau, c, ldc, work, lwork, info)
ZUNMQR