121 SUBROUTINE zgeqrs( M, N, NRHS, A, LDA, TAU, B, LDB, WORK, LWORK,
130 INTEGER INFO, LDA, LDB, LWORK, M, N, NRHS
133 COMPLEX*16 A( lda, * ), B( ldb, * ), TAU( * ),
141 parameter( one = ( 1.0d+0, 0.0d+0 ) )
156 ELSE IF( n.LT.0 .OR. n.GT.m )
THEN 158 ELSE IF( nrhs.LT.0 )
THEN 160 ELSE IF( lda.LT.max( 1, m ) )
THEN 162 ELSE IF( ldb.LT.max( 1, m ) )
THEN 164 ELSE IF( lwork.LT.1 .OR. lwork.LT.nrhs .AND. m.GT.0 .AND. n.GT.0 )
169 CALL xerbla(
'ZGEQRS', -info )
175 IF( n.EQ.0 .OR. nrhs.EQ.0 .OR. m.EQ.0 )
180 CALL zunmqr(
'Left',
'Conjugate transpose', m, nrhs, n, a, lda,
181 $ tau, b, ldb, work, lwork, info )
185 CALL ztrsm(
'Left',
'Upper',
'No transpose',
'Non-unit', n, nrhs,
186 $ one, a, lda, b, ldb )
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
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ztrsm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
ZTRSM