101 DOUBLE PRECISION D( * )
108 DOUBLE PRECISION ZERO
109 parameter( zero = 0.0d+0 )
113 DOUBLE PRECISION EII, EIR, F, G
119 INTRINSIC dble, dcmplx, dimag, mod
128 CALL xerbla(
'ZPTTRF', -info )
141 IF( d( i ).LE.zero )
THEN
146 eii = dimag( e( i ) )
149 e( i ) = dcmplx( f, g )
150 d( i+1 ) = d( i+1 ) - f*eir - g*eii
153 DO 20 i = i4 + 1, n - 4, 4
158 IF( d( i ).LE.zero )
THEN
166 eii = dimag( e( i ) )
169 e( i ) = dcmplx( f, g )
170 d( i+1 ) = d( i+1 ) - f*eir - g*eii
172 IF( d( i+1 ).LE.zero )
THEN
179 eir = dble( e( i+1 ) )
180 eii = dimag( e( i+1 ) )
183 e( i+1 ) = dcmplx( f, g )
184 d( i+2 ) = d( i+2 ) - f*eir - g*eii
186 IF( d( i+2 ).LE.zero )
THEN
193 eir = dble( e( i+2 ) )
194 eii = dimag( e( i+2 ) )
197 e( i+2 ) = dcmplx( f, g )
198 d( i+3 ) = d( i+3 ) - f*eir - g*eii
200 IF( d( i+3 ).LE.zero )
THEN
207 eir = dble( e( i+3 ) )
208 eii = dimag( e( i+3 ) )
211 e( i+3 ) = dcmplx( f, g )
212 d( i+4 ) = d( i+4 ) - f*eir - g*eii
subroutine xerbla(srname, info)
subroutine zpttrf(n, d, e, info)
ZPTTRF