From 7db02b23e9408983758bb38ba844b4959670b8b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Tue, 17 Jan 2023 19:04:07 +0100
Subject: [PATCH] Block decomposition: fix sparse indices of static Jacobian
 when mfs > 0

---
 src/StaticModel.cc | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/StaticModel.cc b/src/StaticModel.cc
index 0ac6aaf1..5c30f2ad 100644
--- a/src/StaticModel.cc
+++ b/src/StaticModel.cc
@@ -687,7 +687,8 @@ StaticModel::computeChainRuleJacobian()
             {
               auto &[eq, var, lag] { indices };
               assert(lag == 0);
-              blocks_jacobian_sparse_column_major_order[blk].emplace(pair{eq, var}, d1);
+              if (eq >= nb_recursives && var >= nb_recursives)
+                blocks_jacobian_sparse_column_major_order[blk].emplace(pair{eq-nb_recursives, var-nb_recursives}, d1);
             }
           blocks_jacobian_sparse_colptr[blk] = computeCSCColPtr(blocks_jacobian_sparse_column_major_order[blk], size);
         }
-- 
GitLab