99 DOUBLE PRECISION D( * )
106 DOUBLE PRECISION ZERO
107 parameter( zero = 0.0d+0 )
111 DOUBLE PRECISION EII, EIR, F, G
117 INTRINSIC dble, dcmplx, dimag, mod
126 CALL xerbla(
'ZPTTRF', -info )
139 IF( d( i ).LE.zero )
THEN
144 eii = dimag( e( i ) )
147 e( i ) = dcmplx( f, g )
148 d( i+1 ) = d( i+1 ) - f*eir - g*eii
151 DO 20 i = i4 + 1, n - 4, 4
156 IF( d( i ).LE.zero )
THEN
164 eii = dimag( e( i ) )
167 e( i ) = dcmplx( f, g )
168 d( i+1 ) = d( i+1 ) - f*eir - g*eii
170 IF( d( i+1 ).LE.zero )
THEN
177 eir = dble( e( i+1 ) )
178 eii = dimag( e( i+1 ) )
181 e( i+1 ) = dcmplx( f, g )
182 d( i+2 ) = d( i+2 ) - f*eir - g*eii
184 IF( d( i+2 ).LE.zero )
THEN
191 eir = dble( e( i+2 ) )
192 eii = dimag( e( i+2 ) )
195 e( i+2 ) = dcmplx( f, g )
196 d( i+3 ) = d( i+3 ) - f*eir - g*eii
198 IF( d( i+3 ).LE.zero )
THEN
205 eir = dble( e( i+3 ) )
206 eii = dimag( e( i+3 ) )
209 e( i+3 ) = dcmplx( f, g )
210 d( i+4 ) = d( i+4 ) - f*eir - g*eii