104 DOUBLE PRECISION d( * )
111 DOUBLE PRECISION zero
112 parameter( zero = 0.0d+0 )
116 DOUBLE PRECISION eii, eir, f, g
122 INTRINSIC dble, dcmplx, dimag, mod
131 CALL
xerbla(
'ZPTTRF', -info )
144 IF( d( i ).LE.zero )
THEN
149 eii = dimag( e( i ) )
152 e( i ) = dcmplx( f, g )
153 d( i+1 ) = d( i+1 ) - f*eir - g*eii
156 DO 20 i = i4 + 1, n - 4, 4
161 IF( d( i ).LE.zero )
THEN
169 eii = dimag( e( i ) )
172 e( i ) = dcmplx( f, g )
173 d( i+1 ) = d( i+1 ) - f*eir - g*eii
175 IF( d( i+1 ).LE.zero )
THEN
182 eir = dble( e( i+1 ) )
183 eii = dimag( e( i+1 ) )
186 e( i+1 ) = dcmplx( f, g )
187 d( i+2 ) = d( i+2 ) - f*eir - g*eii
189 IF( d( i+2 ).LE.zero )
THEN
196 eir = dble( e( i+2 ) )
197 eii = dimag( e( i+2 ) )
200 e( i+2 ) = dcmplx( f, g )
201 d( i+3 ) = d( i+3 ) - f*eir - g*eii
203 IF( d( i+3 ).LE.zero )
THEN
210 eir = dble( e( i+3 ) )
211 eii = dimag( e( i+3 ) )
214 e( i+3 ) = dcmplx( f, g )
215 d( i+4 ) = d( i+4 ) - f*eir - g*eii