137 SUBROUTINE dtzrqf( M, N, A, LDA, TAU, INFO )
144 INTEGER info, lda, m, n
147 DOUBLE PRECISION a( lda, * ), tau( * )
153 DOUBLE PRECISION one, zero
154 parameter( one = 1.0d+0, zero = 0.0d+0 )
172 ELSE IF( n.LT.m )
THEN 174 ELSE IF( lda.LT.max( 1, m ) )
THEN 178 CALL xerbla(
'DTZRQF', -info )
197 CALL dlarfg( n-m+1, a( k, k ), a( k, m1 ), lda, tau( k ) )
199 IF( ( tau( k ).NE.zero ) .AND. ( k.GT.1 ) )
THEN 208 CALL dcopy( k-1, a( 1, k ), 1, tau, 1 )
212 CALL dgemv(
'No transpose', k-1, n-m, one, a( 1, m1 ),
213 $ lda, a( k, m1 ), lda, one, tau, 1 )
218 CALL daxpy( k-1, -tau( k ), tau, 1, a( 1, k ), 1 )
219 CALL dger( k-1, n-m, -tau( k ), tau, 1, a( k, m1 ), lda,
subroutine dlarfg(N, ALPHA, X, INCX, TAU)
DLARFG generates an elementary reflector (Householder matrix).
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine dgemv(TRANS, M, N, ALPHA, A, LDA, X, INCX, BETA, Y, INCY)
DGEMV
subroutine dger(M, N, ALPHA, X, INCX, Y, INCY, A, LDA)
DGER
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
subroutine dcopy(N, DX, INCX, DY, INCY)
DCOPY