From b1a9effc804d6c0197007322ea2b81d9f7591b0b Mon Sep 17 00:00:00 2001 From: tdurieux Date: Tue, 7 Mar 2017 13:14:36 +0100 Subject: [PATCH] fixed files form Math #7 --- .../commons/math3/ode/AbstractIntegrator.java | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/projects/Math/7/org/apache/commons/math3/ode/AbstractIntegrator.java b/projects/Math/7/org/apache/commons/math3/ode/AbstractIntegrator.java index f24f87c..6e0237f 100644 --- a/projects/Math/7/org/apache/commons/math3/ode/AbstractIntegrator.java +++ b/projects/Math/7/org/apache/commons/math3/ode/AbstractIntegrator.java @@ -343,8 +343,10 @@ public int compare(EventState es0, EventState es1) { final double[] eventY = interpolator.getInterpolatedState().clone(); // advance all event states to current time - currentEvent.stepAccepted(eventT, eventY); - isLastStep = currentEvent.stop(); + for (final EventState state : eventsStates) { + state.stepAccepted(eventT, eventY); + isLastStep = isLastStep || state.stop(); + } // handle the first part of the step, up to the event for (final StepHandler handler : stepHandlers) { @@ -354,22 +356,19 @@ public int compare(EventState es0, EventState es1) { if (isLastStep) { // the event asked to stop integration System.arraycopy(eventY, 0, y, 0, y.length); - for (final EventState remaining : occuringEvents) { - remaining.stepAccepted(eventT, eventY); - } return eventT; } - boolean needReset = currentEvent.reset(eventT, eventY); + boolean needReset = false; + for (final EventState state : eventsStates) { + needReset = needReset || state.reset(eventT, eventY); + } if (needReset) { // some event handler has triggered changes that // invalidate the derivatives, we need to recompute them System.arraycopy(eventY, 0, y, 0, y.length); computeDerivatives(eventT, y, yDot); resetOccurred = true; - for (final EventState remaining : occuringEvents) { - remaining.stepAccepted(eventT, eventY); - } return eventT; }