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
164 DQRT11 = DLANGE( 'one-
norm', M, M, WORK, M, RDUMMY ) /
165 $ ( DBLE( M )*DLAMCH( 'epsilon
' ) )
norm(diag(diag(diag(inv(mat))) -id.SOL), 2) % destroy mumps instance id.JOB
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 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...
double precision function dqrt11(m, k, a, lda, tau, work, lwork)
DQRT11
double precision function dlamch(cmach)
DLAMCH