177 SUBROUTINE cunmhr( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C,
178 $ LDC, WORK, LWORK, INFO )
185 CHARACTER SIDE, TRANS
186 INTEGER IHI, ILO, INFO, LDA, LDC, LWORK, M, N
189 COMPLEX A( LDA, * ), C( LDC, * ), TAU( * ),
197 INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NH, NI, NQ, NW
202 EXTERNAL ilaenv, lsame
216 left = lsame( side,
'L' )
217 lquery = ( lwork.EQ.-1 )
228 IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN
230 ELSE IF( .NOT.lsame( trans,
'N' ) .AND. .NOT.lsame( trans,
'C' ) )
233 ELSE IF( m.LT.0 )
THEN
235 ELSE IF( n.LT.0 )
THEN
237 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, nq ) )
THEN
239 ELSE IF( ihi.LT.min( ilo, nq ) .OR. ihi.GT.nq )
THEN
241 ELSE IF( lda.LT.max( 1, nq ) )
THEN
243 ELSE IF( ldc.LT.max( 1, m ) )
THEN
245 ELSE IF( lwork.LT.nw .AND. .NOT.lquery )
THEN
251 nb = ilaenv( 1,
'CUNMQR', side // trans, nh, n, nh, -1 )
253 nb = ilaenv( 1,
'CUNMQR', side // trans, m, nh, nh, -1 )
260 CALL xerbla(
'CUNMHR', -info )
262 ELSE IF( lquery )
THEN
268 IF( m.EQ.0 .OR. n.EQ.0 .OR. nh.EQ.0 )
THEN
285 CALL cunmqr( side, trans, mi, ni, nh, a( ilo+1, ilo ), lda,
286 $ tau( ilo ), c( i1, i2 ), ldc, work, lwork, iinfo )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cunmhr(SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMHR
subroutine cunmqr(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMQR