5 * Revision 1.1.1.1 1996/04/01 15:01:52 mclareni
10 #if !defined(CERNLIB_DOUBLE)
11 SUBROUTINE RRTEQ3(R,S,T,X,D)
13 #if defined(CERNLIB_DOUBLE)
14 SUBROUTINE DRTEQ3(R,S,T,X,D)
16 #include "gen/imp64.inc"
17 #include "gen/defc64.inc"
19 #include "gen/def128.inc"
23 PARAMETER(EPS = 1D-6, DELTA = 1D-15)
24 PARAMETER(I = (0,1), ZD1 = 1, ZQ1 = 1)
25 PARAMETER(R1 = 2*ZD1/27, R2 = ZD1/2, R3 = ZD1/3)
26 PARAMETER(W3 = 1.73205 08075 68877 294D0, R4 = W3/2)
27 PARAMETER(Q1 = 2*ZQ1/27, Q2 = ZQ1/2, Q3 = ZQ1/3)
29 IF(S .EQ. 0 .AND. T .EQ. 0) THEN
39 IF(ABS(D) .LE. EPS) THEN
42 D=(Q2*QQ)**2+(Q3*PP)**3
52 U=SIGN(ABS(U0)**R3,U0)
53 V=SIGN(ABS(V0)**R3,V0)
57 IF(ABS(U0) .LE. EPS .OR. ABS(V0) .LE. EPS) THEN
60 1 Y(K+1)=Y(K)-(((Y(K)+R)*Y(K)+S)*Y(K)+T)/((3*Y(K)+2*R)*Y(K)+S)
64 2 Z(K+1)=Z(K)-(((Z(K)+R)*Z(K)+S)*Z(K)+T)/((3*Z(K)+2*R)*Z(K)+S)
68 ELSEIF(ABS(D) .LE. DELTA) THEN
70 U=SIGN(ABS(H1)**R3,-H1)
74 IF(ABS(H1) .LE. EPS) THEN
77 H1=(3*Y(K)+2*R)*Y(K)+S
78 IF(ABS(H1) .GT. DELTA) THEN
79 Y(K+1)=Y(K)-(((Y(K)+R)*Y(K)+S)*Y(K)+T)/H1
100 IF(H3 .LE. EPS .OR. X(1) .LE. EPS .OR. X(2) .LE .EPS .OR.
101 1 X(3) .LE. EPS) THEN
105 4 Y(K+1)=Y(K)-(((Y(K)+R)*Y(K)+S)*Y(K)+T)/((3*Y(K)+2*R)*Y(K)+S)