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( m.EQ.0 .OR. n.EQ.0 )
THEN
249 IF( .NOT.applyq .AND. .NOT.lsame( vect,
'P' ) )
THEN
251 ELSE IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
253 ELSE IF( .NOT.notran .AND. .NOT.lsame( trans,
'C' ) )
THEN
255 ELSE IF( m.LT.0 )
THEN
257 ELSE IF( n.LT.0 )
THEN
259 ELSE IF( k.LT.0 )
THEN
261 ELSE IF( ( applyq .AND. lda.LT.max( 1, nq ) ) .OR.
262 $ ( .NOT.applyq .AND. lda.LT.max( 1, min( nq, k ) ) ) )
265 ELSE IF( ldc.LT.max( 1, m ) )
THEN
267 ELSE IF( lwork.LT.max( 1, nw ) .AND. .NOT.lquery )
THEN
275 nb = ilaenv( 1,
'ZUNMQR', side // trans, m-1, n, m-1,
278 nb = ilaenv( 1,
'ZUNMQR', side // trans, m, n-1, n-1,
283 nb = ilaenv( 1,
'ZUNMLQ', side // trans, m-1, n, m-1,
286 nb = ilaenv( 1,
'ZUNMLQ', side // trans, m, n-1, n-1,
290 lwkopt = max( 1, nw*nb )
298 CALL xerbla(
'ZUNMBR', -info )
300 ELSE IF( lquery )
THEN
306 IF( m.EQ.0 .OR. n.EQ.0 )
317 CALL zunmqr( side, trans, m, n, k, a, lda, tau, c, ldc,
318 $ work, lwork, iinfo )
319 ELSE IF( nq.GT.1 )
THEN
334 CALL zunmqr( side, trans, mi, ni, nq-1, a( 2, 1 ), lda, tau,
335 $ c( i1, i2 ), ldc, work, lwork, iinfo )
350 CALL zunmlq( side, transt, m, n, k, a, lda, tau, c, ldc,
351 $ work, lwork, iinfo )
352 ELSE IF( nq.GT.1 )
THEN
367 CALL zunmlq( side, transt, mi, ni, nq-1, a( 1, 2 ), lda,
368 $ tau, c( i1, i2 ), ldc, work, lwork, iinfo )
subroutine xerbla(SRNAME, INFO)
XERBLA
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
subroutine zunmbr(VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMBR