diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc index a3efc2a6470990fe4a6ccbfbded23f84e65c1fbf..4bb697c4c4a5cf4dcab3256a3f7fca892a9cf895 100644 --- a/preprocessor/DynamicModel.cc +++ b/preprocessor/DynamicModel.cc @@ -3603,8 +3603,14 @@ DynamicModel::substituteLeadLagInternal(aux_var_t type, bool deterministic_model for (int i = 0; i < (int) neweqs.size(); i++) addEquation(neweqs[i]); - // Add the new set of equations at the *beginning* of aux_equations - copy(neweqs.rbegin(), neweqs.rend(), front_inserter(aux_equations)); + // Order of auxiliary variable definition equations: + // - expectation (entered before this function is called) + // - lead variables from lower lead to higher lead (need to be listed in reverse order) + // - lag variables from lower lag to higher lag + if ((type == avEndoLead) || (type == avExoLead)) + copy(neweqs.rbegin(), neweqs.rend(), back_inserter(aux_equations)); + else + copy(neweqs.begin(), neweqs.end(), back_inserter(aux_equations)); if (neweqs.size() > 0) { diff --git a/preprocessor/SteadyStateModel.cc b/preprocessor/SteadyStateModel.cc index a222aa32764717ddb4ba47f0f9e0d6c2c42ee8b0..d665428bb99830ae195258c0022ed4590762e595 100644 --- a/preprocessor/SteadyStateModel.cc +++ b/preprocessor/SteadyStateModel.cc @@ -121,7 +121,7 @@ SteadyStateModel::writeSteadyStateFile(const string &basename, bool ramsey_polic output << ", exo_)" << endl << "% Steady state generated by Dynare preprocessor" << endl; if (!ramsey_policy) - output << " ys_=zeros(" << symbol_table.orig_endo_nbr() << ",1);" << endl; + output << " ys_=zeros(" << symbol_table.endo_nbr() << ",1);" << endl; output << " global M_" << endl; for (size_t i = 0; i < recursive_order.size(); i++)