89 DOUBLE PRECISION FUNCTION drzt02( M, N, AF, LDA, TAU, WORK,
97 INTEGER lda, lwork, m, n
100 DOUBLE PRECISION af( lda, * ), tau( * ), work( lwork )
106 DOUBLE PRECISION , one
107 parameter( zero = 0.0d+0, one = 1.0d+0 )
113 DOUBLE PRECISION rwork( 1 )
129 IF( lwork.LT.n*n+n )
THEN
130 CALL xerbla(
'DRZT02', 7 )
136 IF( m.LE.0 .OR. n.LE.0 )
141 CALL dlaset(
'Full', n, n, zero, one, work, n )
145 CALL dormrz(
'Left''No transpose', n, n, m, n-m, af, lda, tau,
146 $ work, n, work( n*n+1 ), lwork
150 CALL dormrz(
'Left',
'Transpose', n, n, m, n-m, af, lda, tau,
151 $ work, n, work( n*n+1 ), lwork-n*n, info )
156 work( ( i-1 )*n+i ) = work( ( i-1 )*n+i ) - one
subroutine dlaset(uplo, m, n, alpha, beta, a, lda)
DLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values.
double precision function dlange(norm, m, n, a, lda, work)
DLANGE returns the value of the 1-norm, Frobenius norm, infinity-norm, or the largest absolute value ...
subroutine dormrz(side, trans, m, n, k, l, a, lda, tau, c, ldc, work, lwork, info)
DORMRZ
double precision function drzt02(m, n, af, lda, tau, work, lwork)
DRZT02