@@ -132,12 +132,10 @@ end
132132 integrator. EEst = max (EEst, integrator. EEst)
133133 end
134134 else
135- # No H matrix: compute Hermite interpolation coefficients
136- # k[1] = dt*f₀ - (u - uprev), k[2] = 2*(u - uprev) - dt*(f₀ + f₁)
137- f1 = f (u, p, t + dt)
135+ # No H matrix: set k[1]=f(uprev), k[2]=f(u_new) for Hermite interpolation
136+ integrator . k[1 ] = fsalfirst_cache
137+ integrator . k[ 2 ] = f (u, p, t + dt)
138138 OrdinaryDiffEqCore. increment_nf! (integrator. stats, 1 )
139- integrator. k[1 ] = @. . dt * fsalfirst_cache - (u - uprev)
140- integrator. k[2 ] = @. . 2 * (u - uprev) - dt * (fsalfirst_cache + f1)
141139 end
142140 end
143141
@@ -296,12 +294,11 @@ end
296294 integrator. EEst = max (EEst, integrator. EEst)
297295 end
298296 else
299- # No H matrix: compute Hermite interpolation coefficients
300- # k[1] = dt*f₀ - (u - uprev), k[2] = 2*(u - uprev) - dt*(f₀ + f₁)
297+ # No H matrix: set k[1]=fsalfirst, k[2]=f(u_new) for interpolation
298+ integrator . k[1 ] . = cache . fsalfirst
301299 f (du, u, p, t + dt)
302300 OrdinaryDiffEqCore. increment_nf! (integrator. stats, 1 )
303- @. . integrator. k[1 ] = dt * cache. fsalfirst - (u - uprev)
304- @. . integrator. k[2 ] = 2 * (u - uprev) - dt * (cache. fsalfirst + du)
301+ integrator. k[2 ] .= du
305302 end
306303 end
307304 cache. linsolve = linres. cache
0 commit comments