119 SUBROUTINE zgeqrs( M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK,
127 INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS
130 COMPLEX*16 A( LDA, * ), B( LDB, * ), TAU( * ),
138 parameter( one = ( 1.0d+0, 0.0d+0 ) )
153 ELSE IF( n.LT.0 .OR. n.GT.m )
THEN
155 ELSE IF( nrhs.LT.0 )
THEN
157 ELSE IF( lda.LT.max( 1, m ) )
THEN
159 ELSE IF( ldb.LT.max( 1, m ) )
THEN
161 ELSE IF( lwork.LT.1 .OR. lwork.LT.nrhs .AND. m.GT.0 .AND. n.GT.0 )
166 CALL xerbla(
'ZGEQRS', -info )
172 IF( n.EQ.0 .OR. nrhs.EQ.0 .OR. m.EQ.0 )
177 CALL zunmqr(
'Left',
'Conjugate transpose', m, nrhs, n, a, lda,
178 $ tau, b, ldb, work, lwork, info )
182 CALL ztrsm(
'Left',
'Upper',
'No transpose',
'Non-unit', n, nrhs,
183 $ one, a, lda, b, ldb )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM
subroutine zgeqrs(M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK, INFO)
ZGEQRS
subroutine zunmqr(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMQR