179 SUBROUTINE cunmhr( SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C,
180 $ LDC, WORK, LWORK, INFO )
188 CHARACTER SIDE, TRANS
189 INTEGER IHI, ILO, INFO, LDA, LDC, LWORK, M, N
192 COMPLEX A( lda, * ), C( ldc, * ), TAU( * ),
200 INTEGER I1, I2, IINFO, LWKOPT, MI, NB, NH, NI, NQ, NW
205 EXTERNAL ilaenv, lsame
219 left = lsame( side,
'L' )
220 lquery = ( lwork.EQ.-1 )
231 IF( .NOT.left .AND. .NOT.lsame( side,
'R' ) )
THEN 233 ELSE IF( .NOT.lsame( trans,
'N' ) .AND. .NOT.lsame( trans,
'C' ) )
236 ELSE IF( m.LT.0 )
THEN 238 ELSE IF( n.LT.0 )
THEN 240 ELSE IF( ilo.LT.1 .OR. ilo.GT.max( 1, nq ) )
THEN 242 ELSE IF( ihi.LT.min( ilo, nq ) .OR. ihi.GT.nq )
THEN 244 ELSE IF( lda.LT.max( 1, nq ) )
THEN 246 ELSE IF( ldc.LT.max( 1, m ) )
THEN 248 ELSE IF( lwork.LT.max( 1, nw ) .AND. .NOT.lquery )
THEN 254 nb = ilaenv( 1,
'CUNMQR', side // trans, nh, n, nh, -1 )
256 nb = ilaenv( 1,
'CUNMQR', side // trans, m, nh, nh, -1 )
258 lwkopt = max( 1, nw )*nb
263 CALL xerbla(
'CUNMHR', -info )
265 ELSE IF( lquery )
THEN 271 IF( m.EQ.0 .OR. n.EQ.0 .OR. nh.EQ.0 )
THEN 288 CALL cunmqr( side, trans, mi, ni, nh, a( ilo+1, ilo ), lda,
289 $ tau( ilo ), c( i1, i2 ), ldc, work, lwork, iinfo )
subroutine cunmhr(SIDE, TRANS, M, N, ILO, IHI, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMHR
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine cunmqr(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
CUNMQR