From b6b233bff0594c8226c39fb8e12f09b7b3f1f5f4 Mon Sep 17 00:00:00 2001 From: Aayush Sabharwal Date: Mon, 29 Jun 2026 14:03:38 +0530 Subject: [PATCH] fix: `mm.nzrows` is not sorted --- lib/ModelingToolkitTearing/src/stateselection_interface.jl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/ModelingToolkitTearing/src/stateselection_interface.jl b/lib/ModelingToolkitTearing/src/stateselection_interface.jl index 2bb47b8..4bce2c1 100644 --- a/lib/ModelingToolkitTearing/src/stateselection_interface.jl +++ b/lib/ModelingToolkitTearing/src/stateselection_interface.jl @@ -72,8 +72,8 @@ function StateSelection.eq_derivative!(ts::TearingState, ieq::Int; kwargs...) # Fast path. If we have `mm`, and the equation we're differentiating is present # in `mm`, differentation is trivial. - idxs = searchsorted(mm.nzrows, ieq) - isempty(idxs) || return eq_derivative_mm!(ts, ieq, eq_diff, first(idxs)) + idx = findfirst(isequal(ieq), mm.nzrows) + idx isa Int && return eq_derivative_mm!(ts, ieq, eq_diff, idx) end sys = ts.sys