98 DOUBLE PRECISION FUNCTION drzt01( M, N, A, AF, LDA, TAU, WORK,
107 INTEGER lda, lwork, m, n
110 DOUBLE PRECISION a( lda, * ), af( lda, * ), tau( * ),
117 DOUBLE PRECISION zero, one
118 parameter( zero = 0.0d+0, one = 1.0d+0 )
122 DOUBLE PRECISION norma
125 DOUBLE PRECISION rwork( 1 )
141 IF( lwork.LT.m*n+m )
THEN
142 CALL
xerbla(
'DRZT01', 8 )
148 IF( m.LE.0 .OR. n.LE.0 )
151 norma =
dlange(
'One-norm', m, n, a, lda, rwork )
155 CALL
dlaset(
'Full', m, n, zero, zero, work, m )
158 work( (
j-1 )*m+i ) = af( i,
j )
164 CALL
dormrz(
'Right',
'No tranpose', m, n, m, n-m, af, lda, tau,
165 $ work, m, work( m*n+1 ), lwork-m*n, info )
170 CALL
daxpy( m, -one, a( 1, i ), 1, work( ( i-1 )*m+1 ), 1 )
subroutine xerbla(SRNAME, INFO)
XERBLA
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
set ue cd $ADTTMP cat<< EOF > tmp f Program LinearEquations Implicit none Real j
subroutine daxpy(N, DA, DX, INCX, DY, INCY)
DAXPY
DOUBLE PRECISION function dlamch(CMACH)
DLAMCH
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 drzt01(M, N, A, AF, LDA, TAU, WORK, LWORK)
DRZT01