99 DOUBLE PRECISION FUNCTION zqrt11( M, K, A, LDA, TAU, WORK, LWORK )
107 INTEGER K, LDA, LWORK, M
110 COMPLEX*16 A( lda, * ), TAU( * ), WORK( lwork )
116 DOUBLE PRECISION ZERO, ONE
117 parameter ( zero = 0.0d0, one = 1.0d0 )
123 DOUBLE PRECISION DLAMCH, ZLANGE
124 EXTERNAL dlamch, zlange
130 INTRINSIC dble, dcmplx
133 DOUBLE PRECISION RDUMMY( 1 )
141 IF( lwork.LT.m*m+m )
THEN
142 CALL xerbla(
'ZQRT11', 7 )
151 CALL zlaset(
'Full', m, m, dcmplx( zero ), dcmplx( one ), work,
156 CALL zunm2r(
'Left',
'No transpose', m, m, k, a, lda, tau, work,
157 $ m, work( m*m+1 ), info )
161 CALL zunm2r(
'Left',
'Conjugate transpose', m, m, k, a, lda, tau,
162 $ work, m, work( m*m+1 ), info )
165 work( ( j-1 )*m+j ) = work( ( j-1 )*m+j ) - one
168 zqrt11 = zlange(
'One-norm', m, m, work, m, rdummy ) /
169 $ ( dble( m )*dlamch(
'Epsilon' ) )
subroutine zunm2r(SIDE, TRANS, M, N, K, A, LDA, TAU, C, LDC, WORK, INFO)
ZUNM2R multiplies a general matrix by the unitary matrix from a QR factorization determined by cgeqrf...
double precision function zqrt11(M, K, A, LDA, TAU, WORK, LWORK)
ZQRT11
subroutine xerbla(SRNAME, INFO)
XERBLA
subroutine zlaset(UPLO, M, N, ALPHA, BETA, A, LDA)
ZLASET initializes the off-diagonal elements and the diagonal elements of a matrix to given values...