@@ -130,12 +130,10 @@ end
130130 integrator. EEst = max (EEst, integrator. EEst)
131131 end
132132 else
133- # No H matrix: compute Hermite interpolation coefficients
134- # k[1] = dt*f₀ - (u - uprev), k[2] = 2*(u - uprev) - dt*(f₀ + f₁)
135- f1 = f (u, p, t + dt)
133+ # No H matrix: set k[1]=f(uprev), k[2]=f(u_new) for Hermite interpolation
134+ integrator . k[1 ] = fsalfirst_cache
135+ integrator . k[ 2 ] = f (u, p, t + dt)
136136 OrdinaryDiffEqCore. increment_nf! (integrator. stats, 1 )
137- integrator. k[1 ] = @. . dt * fsalfirst_cache - (u - uprev)
138- integrator. k[2 ] = @. . 2 * (u - uprev) - dt * (fsalfirst_cache + f1)
139137 end
140138 end
141139
@@ -294,12 +292,11 @@ end
294292 integrator. EEst = max (EEst, integrator. EEst)
295293 end
296294 else
297- # No H matrix: compute Hermite interpolation coefficients
298- # k[1] = dt*f₀ - (u - uprev), k[2] = 2*(u - uprev) - dt*(f₀ + f₁)
295+ # No H matrix: set k[1]=fsalfirst, k[2]=f(u_new) for interpolation
296+ integrator . k[1 ] . = cache . fsalfirst
299297 f (du, u, p, t + dt)
300298 OrdinaryDiffEqCore. increment_nf! (integrator. stats, 1 )
301- @. . integrator. k[1 ] = dt * cache. fsalfirst - (u - uprev)
302- @. . integrator. k[2 ] = 2 * (u - uprev) - dt * (cache. fsalfirst + du)
299+ integrator. k[2 ] .= du
303300 end
304301 end
305302 cache. linsolve = linres. cache
0 commit comments