From aa12dc6d5baf5c32427cd6b1c99dc3a49896cdb6 Mon Sep 17 00:00:00 2001
From: Michel Juillard <michel.juillard@mjui.fr>
Date: Fri, 8 Apr 2016 21:45:44 +0200
Subject: [PATCH] fixed issue with auxiliary variables and external function

---
 StaticModel.cc | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/StaticModel.cc b/StaticModel.cc
index f3a5d866..898b48e3 100644
--- a/StaticModel.cc
+++ b/StaticModel.cc
@@ -2122,12 +2122,6 @@ void StaticModel::writeSetAuxiliaryVariables(const string &basename, const bool
          << comment << "           from model file (.mod)" << endl
          << endl;
 
-  deriv_node_temp_terms_t tef_terms;
-  temporary_terms_t temporary_terms;
-  for (int i = 0; i < (int) aux_equations.size(); i++)
-    if (dynamic_cast<ExprNode *>(aux_equations[i])->containsExternalFunction())
-      dynamic_cast<ExprNode *>(aux_equations[i])->writeExternalFunctionOutput(output, oMatlabStaticModel,
-                                                                              temporary_terms, tef_terms);
   writeAuxVarRecursiveDefinitions(output, oMatlabStaticModel);
 }
 
@@ -2135,9 +2129,14 @@ void
 StaticModel::writeAuxVarRecursiveDefinitions(ostream &output, ExprNodeOutputType output_type) const
 {
   deriv_node_temp_terms_t tef_terms;
+  temporary_terms_t temporary_terms;
+  for (int i = 0; i < (int) aux_equations.size(); i++)
+    if (dynamic_cast<ExprNode *>(aux_equations[i])->containsExternalFunction())
+      dynamic_cast<ExprNode *>(aux_equations[i])->writeExternalFunctionOutput(output, oMatlabStaticModel,
+                                                                              temporary_terms, tef_terms);
   for (int i = 0; i < (int) aux_equations.size(); i++)
     {
-      dynamic_cast<ExprNode *>(aux_equations[i]->substituteStaticAuxiliaryDefinition())->writeOutput(output, output_type);
+      dynamic_cast<ExprNode *>(aux_equations[i]->substituteStaticAuxiliaryDefinition())->writeOutput(output, output_type, temporary_terms, tef_terms);
       output << ";" << endl;
     }
 }
-- 
GitLab