97 DOUBLE PRECISION FUNCTION dqrt11( M, K, A, LDA, TAU, WORK, LWORK )
104 INTEGER k, lda, lwork, m
107 DOUBLE PRECISION a( lda, * ), tau( * ), work( lwork )
113 DOUBLE PRECISION zero, one
114 parameter( zero = 0.0d0, one = 1.0d0 )
130 DOUBLE PRECISION rdummy( 1 )
138 IF( lwork.LT.m*m+m )
THEN
139 CALL xerbla(
'DQRT11', 7 )
148 CALL dlaset(
'Full', m, m, zero, one, work, m )
152 CALL dorm2r(
'Left',
'No transpose', m, m, k, a, lda, tau, work,
153 $ m, work( m*m+1 ), info )
157 CALL dorm2r(
'Left',
'Transpose', m, m, k, a, lda, tau, work, m,
158 $ work( m*m+1 ), info )
161 work( ( j-1 )*m+j ) = work( ( j-1 )*m+j ) - one
165 $ ( dble( m )*
dlamch(
'Epsilon' ) )
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.
subroutine xerbla(SRNAME, INFO)
XERBLA
double precision function dqrt11(M, K, A, LDA, TAU, WORK, LWORK)
DQRT11
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 dorm2r(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO)
DORM2R multiplies a general matrix by the orthogonal matrix from a QR factorization determined by sge...