From ae3e741cb8abeb924d913d9dd7c2c018c849b689 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Thu, 16 Sep 2010 16:57:35 +0200 Subject: [PATCH] Preprocessor: - remove useless output type oMatlabDynamicModelSparseLocalTemporaryTerms (indistinguishable from oMatlabDynamicModelSparseLocal) - fix bug in output type of sparse static model --- DynamicModel.cc | 16 ++++------------ ExprNode.cc | 6 +----- ExprNode.hh | 2 -- StaticModel.cc | 8 ++------ 4 files changed, 7 insertions(+), 25 deletions(-) diff --git a/DynamicModel.cc b/DynamicModel.cc index a0674926..a2325314 100644 --- a/DynamicModel.cc +++ b/DynamicModel.cc @@ -233,13 +233,9 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const vector feedback_variables; ExprNodeOutputType local_output_type; + local_output_type = oMatlabDynamicModelSparse; if (global_temporary_terms) - { - local_output_type = oMatlabDynamicModelSparse; - local_temporary_terms = temporary_terms; - } - else - local_output_type = oMatlabDynamicModelSparseLocalTemporaryTerms; + local_temporary_terms = temporary_terms; //---------------------------------------------------------------------- //For each block @@ -260,13 +256,9 @@ DynamicModel::writeModelEquationsOrdered_M(const string &dynamic_basename) const unsigned int block_exo_det_size = exo_det_block[block].size(); unsigned int block_other_endo_size = other_endo_block[block].size(); int block_max_lag = max_leadlag_block[block].first; + local_output_type = oMatlabDynamicModelSparse; if (global_temporary_terms) - { - local_output_type = oMatlabDynamicModelSparse; - local_temporary_terms = temporary_terms; - } - else - local_output_type = oMatlabDynamicModelSparseLocalTemporaryTerms; + local_temporary_terms = temporary_terms; tmp1_output.str(""); tmp1_output << dynamic_basename << "_" << block+1 << ".m"; diff --git a/ExprNode.cc b/ExprNode.cc index e038809a..5b275163 100644 --- a/ExprNode.cc +++ b/ExprNode.cc @@ -542,7 +542,7 @@ VariableNode::writeOutput(ostream &output, ExprNodeOutputType output_type, break; case eModelLocalVariable: - if (output_type == oMatlabDynamicModelSparse || output_type == oMatlabStaticModelSparse || output_type == oMatlabDynamicModelSparseLocalTemporaryTerms) + if (output_type == oMatlabDynamicModelSparse || output_type == oMatlabStaticModelSparse) { output << "("; datatree.local_variables_table[symb_id]->writeOutput(output, output_type, temporary_terms); @@ -570,7 +570,6 @@ VariableNode::writeOutput(ostream &output, ExprNodeOutputType output_type, output << "y" << LEFT_ARRAY_SUBSCRIPT(output_type) << i << RIGHT_ARRAY_SUBSCRIPT(output_type); break; case oMatlabDynamicModelSparse: - case oMatlabDynamicModelSparseLocalTemporaryTerms: i = tsid + ARRAY_SUBSCRIPT_OFFSET(output_type); if (lag > 0) output << "y" << LEFT_ARRAY_SUBSCRIPT(output_type) << "it_+" << lag << ", " << i << RIGHT_ARRAY_SUBSCRIPT(output_type); @@ -599,7 +598,6 @@ VariableNode::writeOutput(ostream &output, ExprNodeOutputType output_type, { case oMatlabDynamicModel: case oMatlabDynamicModelSparse: - case oMatlabDynamicModelSparseLocalTemporaryTerms: if (lag > 0) output << "x(it_+" << lag << ", " << i << ")"; else if (lag < 0) @@ -640,7 +638,6 @@ VariableNode::writeOutput(ostream &output, ExprNodeOutputType output_type, { case oMatlabDynamicModel: case oMatlabDynamicModelSparse: - case oMatlabDynamicModelSparseLocalTemporaryTerms: if (lag > 0) output << "x(it_+" << lag << ", " << i << ")"; else if (lag < 0) @@ -1463,7 +1460,6 @@ UnaryOpNode::writeOutput(ostream &output, ExprNodeOutputType output_type, cerr << "Steady State Operator not implemented for oCDynamicModel." << endl; exit(EXIT_FAILURE); case oMatlabDynamicModelSparse: - case oMatlabDynamicModelSparseLocalTemporaryTerms: cerr << "Steady State Operator not implemented for oMatlabDynamicModelSparse." << endl; exit(EXIT_FAILURE); default: diff --git a/ExprNode.hh b/ExprNode.hh index 179dd12b..fa311d8c 100644 --- a/ExprNode.hh +++ b/ExprNode.hh @@ -71,7 +71,6 @@ enum ExprNodeOutputType oLatexDynamicSteadyStateOperator, //!< LaTeX code, dynamic model steady state declarations oMatlabDynamicSteadyStateOperator, //!< Matlab code, dynamic model steady state declarations oMatlabDynamicModelSparseSteadyStateOperator, //!< Matlab code, dynamic block decomposed model steady state declarations - oMatlabDynamicModelSparseLocalTemporaryTerms, //!< Matlab code, dynamic block decomposed model local temporary_terms oSteadyStateFile //!< Matlab code, in the generated steady state file }; @@ -80,7 +79,6 @@ enum ExprNodeOutputType || (output_type) == oMatlabOutsideModel \ || (output_type) == oMatlabStaticModelSparse \ || (output_type) == oMatlabDynamicModelSparse \ - || (output_type) == oMatlabDynamicModelSparseLocalTemporaryTerms \ || (output_type) == oMatlabDynamicSteadyStateOperator \ || (output_type) == oMatlabDynamicModelSparseSteadyStateOperator \ || (output_type) == oSteadyStateFile) diff --git a/StaticModel.cc b/StaticModel.cc index 1d2f3596..5df774e8 100644 --- a/StaticModel.cc +++ b/StaticModel.cc @@ -212,13 +212,9 @@ StaticModel::writeModelEquationsOrdered_M(const string &static_basename) const vector feedback_variables; ExprNodeOutputType local_output_type; + local_output_type = oMatlabStaticModelSparse; if (global_temporary_terms) - { - local_output_type = oMatlabStaticModelSparse; - local_temporary_terms = temporary_terms; - } - else - local_output_type = oMatlabDynamicModelSparseLocalTemporaryTerms; + local_temporary_terms = temporary_terms; //---------------------------------------------------------------------- //For each block