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 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 xerbla(SRNAME, INFO)
XERBLA
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real b(3) integer i
subroutine zunmqr(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, LWORK, INFO)
ZUNMQR