170 SUBROUTINE cunmtr( SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC,
171 $ WORK, LWORK, INFO )
178 CHARACTER SIDE, TRANS, UPLO
179 INTEGER INFO, LDA, LDC, LWORK, M, N
182 COMPLEX A( lda, * ), C( ldc, * ), TAU( * ),
189 LOGICAL LEFT, LQUERY, UPPER
190 INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NI, NQ, NW
195 EXTERNAL ilaenv, lsame
208 left = lsame( side,
'L' )
209 upper = lsame( uplo,
'U' )
210 lquery = ( lwork.EQ.-1 )
221 IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN 223 ELSE IF( .NOT.upper .AND. .NOT.lsame( uplo,
'L' ) )
THEN 225 ELSE IF( .NOT.lsame( trans,
'N' ) .AND. .NOT.lsame( trans,
'C' ) )
228 ELSE IF( m.LT.0 )
THEN 230 ELSE IF( n.LT.0 )
THEN 232 ELSE IF( lda.LT.max( 1, nq ) )
THEN 234 ELSE IF( ldc.LT.max( 1, m ) )
THEN 236 ELSE IF( lwork.LT.nw .AND. .NOT.lquery )
THEN 243 nb = ilaenv( 1,
'CUNMQL', side // trans, m-1, n, m-1,
246 nb = ilaenv( 1,
'CUNMQL', side // trans, m, n-1, n-1,
251 nb = ilaenv( 1,
'CUNMQR', side // trans, m-1, n, m-1,
254 nb = ilaenv( 1,
'CUNMQR', side // trans, m, n-1, n-1,
263 CALL xerbla(
'CUNMTR', -info )
265 ELSE IF( lquery )
THEN 271 IF( m.EQ.0 .OR. n.EQ.0 .OR. nq.EQ.1 )
THEN 288 CALL cunmql( side, trans, mi, ni, nq-1, a( 1, 2 ), lda, tau, c,
289 $ ldc, work, lwork, iinfo )
301 CALL cunmqr( side, trans, mi, ni, nq-1, a( 2, 1 ), lda, tau,
302 $ c( i1, i2 ), ldc, work, lwork, iinfo )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cunmql(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMQL
subroutine cunmqr(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMQR
subroutine cunmtr(SIDE, UPLO, TRANS, M, N, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMTR