From a4eb11ba60eda6f7555db3d762c70af6e55f519b Mon Sep 17 00:00:00 2001 From: Daniel Weindl Date: Tue, 11 Nov 2025 20:36:38 +0100 Subject: [PATCH] Faster `DEModel._get_unique_root` More efficient equality check: * Check equality before simplification * Respect DEModel._simplify for simplification This makes a very noticable difference for some models. --- python/sdist/amici/de_model.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/python/sdist/amici/de_model.py b/python/sdist/amici/de_model.py index 2832814b48..34194a97c7 100644 --- a/python/sdist/amici/de_model.py +++ b/python/sdist/amici/de_model.py @@ -2445,7 +2445,9 @@ def _get_unique_root( return None for root in roots: - if sp.simplify(root_found - root.get_val()).is_zero: + if (difference := (root_found - root.get_val())).is_zero or ( + self._simplify and self._simplify(difference).is_zero + ): return root.get_sym() # create an event for a new root function