From 17ba27330a844dcc195d86867584944b89b5d6e5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Wed, 25 Oct 2023 14:38:43 +0200
Subject: [PATCH] Minor simplification

---
 src/DynamicModel.cc | 25 +++++--------------------
 1 file changed, 5 insertions(+), 20 deletions(-)

diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc
index 5274ae0f..3752d019 100644
--- a/src/DynamicModel.cc
+++ b/src/DynamicModel.cc
@@ -2383,9 +2383,8 @@ void
 DynamicModel::computeBlockDynJacobianCols()
 {
   size_t nb_blocks { blocks.size() };
-  // Structures used for lexicographic ordering over (lag, var ID)
-  vector<set<pair<int, int>>> dynamic_endo(nb_blocks), dynamic_other_endo(nb_blocks),
-    dynamic_exo(nb_blocks), dynamic_exo_det(nb_blocks);
+  // Structure used for lexicographic ordering over (lag, var ID)
+  vector<set<pair<int, int>>> dynamic_endo(nb_blocks);
 
   for (auto & [indices, d1] : derivatives[1])
     {
@@ -2393,23 +2392,9 @@ DynamicModel::computeBlockDynJacobianCols()
       int block_eq { eq2block[eq_orig] };
       int var { getTypeSpecificIDByDerivID(deriv_id) };
       int lag { getLagByDerivID(deriv_id) };
-      switch (getTypeByDerivID(deriv_id))
-        {
-        case SymbolType::endogenous:
-          if (block_eq == endo2block[var])
-            dynamic_endo[block_eq].emplace(lag, getBlockInitialVariableID(block_eq, var));
-          else
-            dynamic_other_endo[block_eq].emplace(lag, var);
-          break;
-        case SymbolType::exogenous:
-          dynamic_exo[block_eq].emplace(lag, var);
-          break;
-        case SymbolType::exogenousDet:
-          dynamic_exo_det[block_eq].emplace(lag, var);
-          break;
-        default:
-          break;
-        }
+      if (getTypeByDerivID(deriv_id) == SymbolType::endogenous
+          && block_eq == endo2block[var])
+        dynamic_endo[block_eq].emplace(lag, getBlockInitialVariableID(block_eq, var));
     }
 
   // Compute Jacobian column indices
-- 
GitLab