From 0993c07f110a86babee57d6cb38a406fe2a683df Mon Sep 17 00:00:00 2001 From: Maciej Srokowski Date: Fri, 11 Dec 2020 18:09:42 +0100 Subject: [PATCH] Fix endless loop issue in nonlinear_toi algo. It was caused by floating point rounding error that caused given time difference to never reach arbitrarily set tolerance --- .../nonlinear_time_of_impact_support_map_support_map.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/query/nonlinear_time_of_impact/nonlinear_time_of_impact_support_map_support_map.rs b/src/query/nonlinear_time_of_impact/nonlinear_time_of_impact_support_map_support_map.rs index 2d49197b..a7c6316e 100644 --- a/src/query/nonlinear_time_of_impact/nonlinear_time_of_impact_support_map_support_map.rs +++ b/src/query/nonlinear_time_of_impact/nonlinear_time_of_impact_support_map_support_map.rs @@ -113,7 +113,7 @@ where break; } - if max_t - min_t < abs_tol { + if max_t - min_t < max_t.max(na::convert(1.)) * abs_tol { result.toi = min_t; break; }