15 double a2 = 1./5.,
a3 = 3./10.,
a4 = 3./5.,
a5 = 1.,
a6 = 7./8.;
17 static double b21 = 1./5.;
18 static double b31 = 3./40.,
b32 = 9./40.;
19 static double b41 = 3./10.,
b42 = -9./10.,
b43 = 6./5.;
20 static double b51 = -11./54.,
b52 = 5./2.,
b53 = -70./27.,
b54 = 35./27.;
22 static double b61 = 1631./55296.,
b62 = 175./512.,
b63 = 575./13824.;
23 static double b64 = 44275./110592.,
b65 = 253./4096.;
25 static double c1 = 37./378.,
c2 = 0.,
c3 = 250./621.;
26 static double c4 = 125./594.,
c5 = 0.,
c6 = 512./1771.;
28 static double s1 = 2825./27648.,
s2 = 0.,
s3 = 18575./48384.;
29 static double s4 = 13525./55296.,
s5 = 277./14336.,
s6 = 1./4.;
40 TVector3 xx(x[0], x[1], z), BB;
41 double tx = x[2], ty = x[3], slope = sqrt(1.+
SQR(tx)+
SQR(ty));
71 k[2] =
h*qv*slope*( ty*(tx*BB[
_X_]+BB[
_Z_]) - (1.+
SQR(tx))*BB[
_Y_]);
72 k[3] =
h*qv*slope*(-tx*(ty*BB[
_Y_]+BB[
_Z_]) + (1.+
SQR(ty))*BB[
_X_]);
84 double k1[4],
k2[4], k3[4], k4[4], k5[4], k6[4], yy[4], bff[4];
90 if (
kk(
rk->
m1,
z0, in, k1)) ret = -1;
102 for(
int iq=0; iq<4; iq++)
103 yy[iq] = in[iq] + k1[iq]/2.;
104 if (
kk(
rk->
m2,
z0 +
h/2., yy, k2)) ret = -1;
107 for(
int iq=0; iq<4; iq++)
108 out[iq] = in[iq] + k2[iq];
113 for(
int iq=0; iq<4; iq++)
114 yy[iq] = in[iq] + k1[iq]/2.;
115 if (
kk(
rk->
m2,
z0 +
h/2., yy, k2)) ret = -1;
118 for(
int iq=0; iq<4; iq++)
119 yy[iq] = in[iq] + k2[iq]/2.;
120 if (
kk(
rk->
m3,
z0 +
h/2., yy, k3)) ret = -1;
123 for(
int iq=0; iq<4; iq++)
124 yy[iq] = in[iq] + k3[iq];
125 if (
kk(
rk->
m4,
z0 +
h, yy, k4)) ret = -1;
128 for(
int iq=0; iq<4; iq++)
129 out[iq] = in[iq] + k1[iq]/6. + k2[iq]/3. + k3[iq]/3. + k4[iq]/6.;
134 for(
int iq=0; iq<4; iq++)
135 yy[iq] = in[iq] +
b21*k1[iq];
139 for(
int iq=0; iq<4; iq++)
140 yy[iq] = in[iq] +
b31*k1[iq] +
b32*k2[iq];
144 for(
int iq=0; iq<4; iq++)
145 yy[iq] = in[iq] +
b41*k1[iq] +
b42*k2[iq] +
b43*k3[iq];
149 for(
int iq=0; iq<4; iq++)
150 yy[iq] = in[iq] +
b51*k1[iq] +
b52*k2[iq] +
b53*k3[iq] +
b54*k4[iq];
154 for(
int iq=0; iq<4; iq++)
155 yy[iq] = in[iq] +
b61*k1[iq] +
b62*k2[iq] +
b63*k3[iq] +
b64*k4[iq]
160 for(
int iq=0; iq<4; iq++)
161 out[iq] = in[iq] +
c1*k1[iq] +
c2*k2[iq] +
c3*k3[iq] +
c4*k4[iq] +
162 c5*k5[iq] +
c6*k6[iq];
166 for(
int iq=0; iq<4; iq++)
167 bff[iq] = in[iq] +
s1*k1[iq] +
s2*k2[iq] +
s3*k3[iq] +
s4*k4[iq] +
168 s5*k5[iq] +
s6*k6[iq];
169 for(
int iq=0; iq<4; iq++)
170 rq->dlt[iq] = out[iq] - bff[iq];