From 3a9b0fc9ce96693cee12131c476a5290fdd52de9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Wed, 8 Jul 2020 18:46:34 +0200 Subject: [PATCH] PAC MCE expectations: add corresponding auxiliary variables in dynamic_set_auxiliary_series.m and set_auxiliary_variables.m --- src/DynamicModel.cc | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index 1d805998..4164c20e 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -4095,9 +4095,11 @@ DynamicModel::addPacModelConsistentExpectationEquation(const string &name, int d { int symb_id = symbol_table.addDiffAuxiliaryVar(diff_node_to_search->idx, diff_node_to_search); target_base_diff_node = AddVariable(symb_id); - addEquation(AddEqual(const_cast(target_base_diff_node), - AddMinus(AddVariable(pac_target_symb_id), - AddVariable(pac_target_symb_id, -1))), -1); + auto neweq = AddEqual(const_cast(target_base_diff_node), + AddMinus(AddVariable(pac_target_symb_id), + AddVariable(pac_target_symb_id, -1))); + addEquation(neweq, -1); + addAuxEquation(neweq); neqs++; } @@ -4109,8 +4111,9 @@ DynamicModel::addPacModelConsistentExpectationEquation(const string &name, int d int symb_id = symbol_table.addDiffLeadAuxiliaryVar(this_diff_node->idx, this_diff_node, last_aux_var->symb_id, last_aux_var->lag); VariableNode *current_aux_var = AddVariable(symb_id); - addEquation(AddEqual(current_aux_var, - AddVariable(last_aux_var->symb_id, 1)), -1); + auto neweq = AddEqual(current_aux_var, AddVariable(last_aux_var->symb_id, 1)); + addEquation(neweq, -1); + addAuxEquation(neweq); last_aux_var = current_aux_var; target_aux_var_to_add[i] = current_aux_var; } @@ -4136,8 +4139,10 @@ DynamicModel::addPacModelConsistentExpectationEquation(const string &name, int d } fs = AddPlus(fs, AddTimes(ssum, target_aux_var_to_add[k])); } - addEquation(AddEqual(AddVariable(mce_z1_symb_id), - AddMinus(AddTimes(A, AddMinus(const_cast(target_base_diff_node), fs)), fp)), -1); + auto neweq = AddEqual(AddVariable(mce_z1_symb_id), + AddMinus(AddTimes(A, AddMinus(const_cast(target_base_diff_node), fs)), fp)); + addEquation(neweq, -1); + addAuxEquation(neweq); neqs++; pac_expectation_substitution[{name, eqtag}] = AddVariable(mce_z1_symb_id); }