diff --git a/hipparchus-ode/src/changes/changes.xml b/hipparchus-ode/src/changes/changes.xml
index 494b17815..71cb42c24 100644
--- a/hipparchus-ode/src/changes/changes.xml
+++ b/hipparchus-ode/src/changes/changes.xml
@@ -49,6 +49,11 @@ If the output is not quite correct, check for invisible trailing spaces!
Hipparchus ODE Release Notes
+
+
+ Fixes regressions with Field in event detection.
+
+
Removed unused mapper in initializeStep.
diff --git a/hipparchus-ode/src/main/java/org/hipparchus/ode/events/FieldDetectorBasedEventState.java b/hipparchus-ode/src/main/java/org/hipparchus/ode/events/FieldDetectorBasedEventState.java
index 7d5dad15f..3a2163753 100644
--- a/hipparchus-ode/src/main/java/org/hipparchus/ode/events/FieldDetectorBasedEventState.java
+++ b/hipparchus-ode/src/main/java/org/hipparchus/ode/events/FieldDetectorBasedEventState.java
@@ -366,7 +366,7 @@ private boolean findRoot(final FieldODEStateInterpolator interpolator,
// executed once if we didn't hit a special case above
while ((afterRootG.isZero() || afterRootG.getReal() > 0.0 == g0Positive) &&
strictlyAfter(afterRootT, tb)) {
- if (loopG.isZero()) {
+ if (loopG.getReal() == 0.0) {
// ga == 0.0 and gb may or may not be 0.0
// handle the root at ta first
beforeRootT = loopT;
@@ -424,7 +424,7 @@ private boolean findRoot(final FieldODEStateInterpolator interpolator,
}
// figure out the result of root finding, and return accordingly
- if (afterRootG.isZero() || afterRootG.getReal() > 0.0 == g0Positive) {
+ if (afterRootG.getReal() == 0.0 || afterRootG.getReal() > 0.0 == g0Positive) {
// loop gave up and didn't find any crossing within this step
return false;
} else {
diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index 818e421d9..79075320f 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -50,6 +50,9 @@ If the output is not quite correct, check for invisible trailing spaces!
+
+ Fixes regressions with Field in event detection.
+
Added constrained optimization.