119 SUBROUTINE dptcon( N, D, E, ANORM, RCOND, WORK, INFO )
128 DOUBLE PRECISION anorm, rcond
131 DOUBLE PRECISION d( * ), e( * ), work( * )
137 DOUBLE PRECISION one, zero
138 parameter( one = 1.0d+0, zero = 0.0d+0 )
142 DOUBLE PRECISION ainvnm
161 ELSE IF( anorm.LT.zero )
THEN
165 CALL
xerbla(
'DPTCON', -info )
175 ELSE IF( anorm.EQ.zero )
THEN
197 work( i ) = one + work( i-1 )*abs( e( i-1 ) )
202 work( n ) = work( n ) / d( n )
203 DO 30 i = n - 1, 1, -1
204 work( i ) = work( i ) / d( i ) + work( i+1 )*abs( e( i ) )
210 ainvnm = abs( work( ix ) )
215 $ rcond = ( one / ainvnm ) / anorm