195 SUBROUTINE cunmbr( VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C,
196 $ LDC, WORK, LWORK, INFO )
203 CHARACTER SIDE, TRANS, VECT
204 INTEGER INFO, K, LDA, LDC, LWORK, M, N
207 COMPLEX A( LDA, * ), C( LDC, * ), TAU( * ),
214 LOGICAL APPLYQ, LEFT, LQUERY, NOTRAN
216 INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW
221 EXTERNAL ilaenv, lsame
234 applyq = lsame( vect,
'Q' )
235 left = lsame( side,
'L' )
236 notran = lsame( trans,
'N' )
237 lquery = ( lwork.EQ.-1 )
248 IF( m.EQ.0 .OR. n.EQ.0 )
THEN
251 IF( .NOT.applyq .AND. .NOT.lsame( vect,
'P' ) )
THEN
253 ELSE IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
255 ELSE IF( .NOT.notran .AND. .NOT.lsame( trans,
'C' ) )
THEN
257 ELSE IF( m.LT.0 )
THEN
259 ELSE IF( n.LT.0 )
THEN
261 ELSE IF( k.LT.0 )
THEN
263 ELSE IF( ( applyq .AND. lda.LT.max( 1, nq ) ) .OR.
264 $ ( .NOT.applyq .AND. lda.LT.max( 1, min( nq, k ) ) ) )
267 ELSE IF( ldc.LT.max( 1, m ) )
THEN
269 ELSE IF( lwork.LT.max( 1, nw ) .AND. .NOT.lquery )
THEN
277 nb = ilaenv( 1,
'CUNMQR', side // trans, m-1, n, m-1,
280 nb = ilaenv( 1,
'CUNMQR', side // trans, m, n-1, n-1,
285 nb = ilaenv( 1,
'CUNMLQ', side // trans, m-1, n, m-1,
288 nb = ilaenv( 1,
'CUNMLQ', side // trans, m, n-1, n-1,
292 lwkopt = max( 1, nw*nb )
300 CALL xerbla(
'CUNMBR', -info )
302 ELSE IF( lquery )
THEN
308 IF( m.EQ.0 .OR. n.EQ.0 )
319 CALL cunmqr( side, trans, m, n, k, a, lda, tau, c, ldc,
320 $ work, lwork, iinfo )
321 ELSE IF( nq.GT.1 )
THEN
336 CALL cunmqr( side, trans, mi, ni, nq-1, a( 2, 1 ), lda, tau,
337 $ c( i1, i2 ), ldc, work, lwork, iinfo )
352 CALL cunmlq( side, transt, m, n, k, a, lda, tau, c, ldc,
353 $ work, lwork, iinfo )
354 ELSE IF( nq.GT.1 )
THEN
369 CALL cunmlq( side, transt, mi, ni, nq-1, a( 1, 2 ), lda,
370 $ tau, c( i1, i2 ), ldc, work, lwork, iinfo )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cunmbr(VECT, SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMBR
subroutine cunmlq(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMLQ
subroutine cunmqr(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMQR