108 SUBROUTINE cppt03( UPLO, N, A, AINV, WORK, LDWORK, RWORK, RCOND,
122 COMPLEX A( * ), AINV( * ), WORK( LDWORK, * )
129 parameter( zero = 0.0e+0, one = 1.0e+0 )
131 parameter( czero = ( 0.0e+0, 0.0e+0 ),
132 $ cone = ( 1.0e+0, 0.0e+0 ) )
136 REAL AINVNM, ANORM, EPS
140 REAL CLANGE, CLANHP, SLAMCH
141 EXTERNAL lsame, clange, clanhp, slamch
144 INTRINSIC conjg, real
161 eps = slamch( 'epsilon
' )
162 ANORM = CLANHP( '1
', UPLO, N, A, RWORK )
163 AINVNM = CLANHP( '1
', UPLO, N, AINV, RWORK )
164.LE..OR..LE.
IF( ANORMZERO AINVNMZERO ) THEN
169 RCOND = ( ONE/ANORM ) / AINVNM
176 IF( LSAME( UPLO, 'u
' ) ) THEN
182 CALL CCOPY( J, AINV( JJ ), 1, WORK( 1, J+1 ), 1 )
184 WORK( J, I+1 ) = CONJG( AINV( JJ+I-1 ) )
188 JJ = ( ( N-1 )*N ) / 2 + 1
190 WORK( N, I+1 ) = CONJG( AINV( JJ+I-1 ) )
196 CALL CHPMV( 'upper
', N, -CONE, A, WORK( 1, J+1 ), 1, CZERO,
199 CALL CHPMV( 'upper
', N, -CONE, A, AINV( JJ ), 1, CZERO,
211 WORK( 1, I ) = CONJG( AINV( I+1 ) )
215 CALL CCOPY( N-J+1, AINV( JJ ), 1, WORK( J, J-1 ), 1 )
217 WORK( J, J+I-1 ) = CONJG( AINV( JJ+I ) )
225 CALL CHPMV( 'lower
', N, -CONE, A, WORK( 1, J-1 ), 1, CZERO,
228 CALL CHPMV( 'lower
', N, -CONE, A, AINV( 1 ), 1, CZERO,
236 WORK( I, I ) = WORK( I, I ) + CONE
241 RESID = CLANGE( '1
', N, N, WORK, LDWORK, RWORK )
243 RESID = ( ( RESID*RCOND )/EPS ) / REAL( N )
subroutine chpmv(uplo, n, alpha, ap, x, incx, beta, y, incy)
CHPMV
subroutine cppt03(uplo, n, a, ainv, work, ldwork, rwork, rcond, resid)
CPPT03