133 RECURSIVE SUBROUTINE cgeqrt3( M, N, A, LDA, T, LDT, INFO )
141 INTEGER info, lda, m, n, ldt
144 COMPLEX a( lda, * ), t( ldt, * )
151 parameter( one = (1.0,0.0) )
154 INTEGER i, i1,
j, j1, n1, n2, iinfo
164 ELSE IF( m .LT. n )
THEN
166 ELSE IF( lda .LT. max( 1, m ) )
THEN
168 ELSE IF( ldt .LT. max( 1, n ) )
THEN
172 CALL
xerbla(
'CGEQRT3', -info )
180 CALL
clarfg( m, a, a( min( 2, m ), 1 ), 1, t )
193 CALL
cgeqrt3( m, n1, a, lda, t, ldt, iinfo )
199 t( i,
j+n1 ) = a( i,
j+n1 )
202 CALL
ctrmm(
'L',
'L',
'C',
'U', n1, n2, one,
203 & a, lda, t( 1, j1 ), ldt )
205 CALL
cgemm(
'C',
'N', n1, n2, m-n1, one, a( j1, 1 ), lda,
206 & a( j1, j1 ), lda, one, t( 1, j1 ), ldt)
208 CALL
ctrmm(
'L',
'U',
'C',
'N', n1, n2, one,
209 & t, ldt, t( 1, j1 ), ldt )
211 CALL
cgemm(
'N',
'N', m-n1, n2, n1, -one, a( j1, 1 ), lda,
212 & t( 1, j1 ), ldt, one, a( j1, j1 ), lda )
214 CALL
ctrmm(
'L',
'L',
'N',
'U', n1, n2, one,
215 & a, lda, t( 1, j1 ), ldt )
219 a( i,
j+n1 ) = a( i,
j+n1 ) - t( i,
j+n1 )
225 CALL
cgeqrt3( m-n1, n2, a( j1, j1 ), lda,
226 & t( j1, j1 ), ldt, iinfo )
232 t( i,
j+n1 ) = conjg(a(
j+n1, i ))
236 CALL
ctrmm(
'R',
'L',
'N',
'U', n1, n2, one,
237 & a( j1, j1 ), lda, t( 1, j1 ), ldt )
239 CALL
cgemm(
'C',
'N', n1, n2, m-n, one, a( i1, 1 ), lda,
240 & a( i1, j1 ), lda, one, t( 1, j1 ), ldt )
242 CALL
ctrmm(
'L',
'U',
'N',
'N', n1, n2, -one, t, ldt,
245 CALL
ctrmm(
'R',
'U',
'N',
'N', n1, n2, one,
246 & t( j1, j1 ), ldt, t( 1, j1 ), ldt )
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine ctrmm(SIDE, UPLO, TRANSA, DIAG, M, N, ALPHA, A, LDA, B, LDB)
CTRMM
recursive subroutine cgeqrt3(M, N, A, LDA, T, LDT, INFO)
CGEQRT3 recursively computes a QR factorization of a general real or complex matrix using the compact...
subroutine clarfg(N, ALPHA, X, INCX, TAU)
CLARFG generates an elementary reflector (Householder matrix).
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine cgemm(TRANSA, TRANSB, M, N, K, ALPHA, A, LDA, B, LDB, BETA, C, LDC)
CGEMM