186 float dt2 = dt / 2.0f;
187 float dt6 = dt / 6.0f;
194 Y1.Resize(Y0.Count());
212 for (i=0; i<Y0.Count(); i++) {
213 yt[i] = Y0[i] + dt2 * dydt[i];
220 for (i=0; i<Y0.Count(); i++) {
221 yt[i] = Y0[i] + dt2 * dyt[i];
228 for (i=0; i<Y0.Count(); i++) {
229 yt[i] = Y0[i] + dt*dym[i];
237 for (i=0; i<Y0.Count(); i++) {
238 Y1[i] = Y0[i] + dt6 * (dydt[i] + dyt[i] + 2.0f*dym[i]);
264 static const float a2 = 0.2f;
265 static const float a3 = 0.3f;
266 static const float a4 = 0.6f;
267 static const float a5 = 1.0f;
268 static const float a6 = 0.875f;
269 static const float b21 = 0.2f;
270 static const float b31 = 3.0f/40.0f;
271 static const float b32 = 9.0f/40.0f;
272 static const float b41 = 0.3f;
273 static const float b42 = -0.9f;
274 static const float b43 = 1.2f;
275 static const float b51 = -11.0f /54.0f;
276 static const float b52 = 2.5f;
277 static const float b53 = -70.0f/27.0f;
278 static const float b54 = 35.0f/27.0f;
279 static const float b61 = 1631.0f/55296.0f;
280 static const float b62 = 175.0f/512.0f;
281 static const float b63 = 575.0f/13824.0f;
282 static const float b64 = 44275.0f/110592.0f;
283 static const float b65 = 253.0f/4096.0f;
284 static const float c1 = 37.0f/378.0f;
285 static const float c3 = 250.0f/621.0f;
286 static const float c4 = 125.0f/594.0f;
287 static const float c6 = 512.0f/1771.0f;
288 static const float dc5 = -277.0f/14336.0f;
289 static const float dc1 = c1 - 2825.0f/27648.0f;
290 static const float dc3 = c3 - 18575.0f/48384.0f;
291 static const float dc4 = c4 - 13525.0f/55296.0f;
292 static const float dc6 = c6 - 0.25f;
325 for (i=0;i<veclen;i++) {
326 ytmp[i] = Y0[i] + b21*dt*dydt[i];
331 for (i=0; i<veclen; i++) {
332 ytmp[i] = Y0[i] + dt*(b31*dydt[i] + b32*ak2[i]);
337 for (i=0; i<veclen; i++) {
338 ytmp[i] = Y0[i] + dt*(b41*dydt[i] + b42*ak2[i] + b43*ak3[i]);
343 for (i=0; i<veclen; i++) {
344 ytmp[i] = Y0[i] + dt*(b51*dydt[i] + b52*ak2[i] + b53*ak3[i] + b54*ak4[i]);
349 for (i=0; i<veclen; i++) {
350 ytmp[i] = Y0[i] + dt*(b61*dydt[i] + b62*ak2[i] + b63*ak3[i] + b64*ak4[i] + b65*ak5[i]);
355 for (i=0; i<veclen; i++) {
356 Y1[i] = Y0[i] + dt*(c1*dydt[i] + c3*ak3[i] + c4*ak4[i] + c6*ak6[i]);
361 for (i=0; i<veclen; i++) {
362 yerr[i] = dt*(dc1*dydt[i] + dc3*ak3[i] + dc4*ak4[i] + dc5*ak5[i] + dc6*ak6[i]);