From 54d7e6ce5db74f5ab157f81f3284761e4e903ba5 Mon Sep 17 00:00:00 2001
From: Normann Rion <normann@dynare.org>
Date: Wed, 7 May 2025 00:29:20 +0200
Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fix=20the=20derivative=20computa?=
 =?UTF-8?q?tions=20w.r.t=20heterogeneous=20exogenous=20variables?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/ExprNode.cc | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/ExprNode.cc b/src/ExprNode.cc
index 7c0e6928..6dc9587b 100644
--- a/src/ExprNode.cc
+++ b/src/ExprNode.cc
@@ -908,6 +908,7 @@ VariableNode::prepareForDerivation()
     case SymbolType::endogenous:
     case SymbolType::parameter:
     case SymbolType::heterogeneousEndogenous:
+    case SymbolType::heterogeneousExogenous:
       non_null_derivatives.insert(getDerivID());
       break;
     case SymbolType::modelLocalVariable:
@@ -915,7 +916,6 @@ VariableNode::prepareForDerivation()
       // Non null derivatives are those of the value of the local parameter
       non_null_derivatives = datatree.getLocalVariable(symb_id, lag)->non_null_derivatives;
       break;
-    case SymbolType::heterogeneousExogenous:
     case SymbolType::heterogeneousParameter:
     case SymbolType::modFileLocalVariable:
     case SymbolType::statementDeclaredVariable:
@@ -1004,11 +1004,11 @@ VariableNode::computeDerivative(int deriv_id)
     case SymbolType::endogenous:
     case SymbolType::parameter:
     case SymbolType::heterogeneousEndogenous:
+    case SymbolType::heterogeneousExogenous:
       if (deriv_id == getDerivID())
         return datatree.One;
       else
         return datatree.Zero;
-    case SymbolType::heterogeneousExogenous:
     case SymbolType::heterogeneousParameter:
       return datatree.Zero;
     case SymbolType::modelLocalVariable:
-- 
GitLab