diff --git a/src/DynamicModel.cc b/src/DynamicModel.cc index 459810deb02f3d557329ff4a8e873536a137c473..e6cfa82d8821dcf922212257a6d536eca2063cdc 100644 --- a/src/DynamicModel.cc +++ b/src/DynamicModel.cc @@ -2137,10 +2137,13 @@ DynamicModel::computingPass(int derivsOrder, int paramsDerivsOrder, const eval_c if (paramsDerivsOrder > 0 && !no_tmp_terms) computeParamsDerivativesTemporaryTerms(); + /* Change block decomposition settings when the “block” keyword has not been + used and the model is purely backward/forward or static. This is meant to + be used with solve_algo={12,14}. */ if (!block && (max_endo_lag == 0 || max_endo_lead == 0)) { time_recursive_block_decomposition = true; - mfs = 3; // FIXME: remove this line when mfs=3 becomes the global default + mfs = 3; // Typically useful for equations of the form log(x)=RHS } computingPassBlock(eval_context, no_tmp_terms); if (block_decomposed) diff --git a/src/ModelTree.hh b/src/ModelTree.hh index f7f3394b3c4b2f83d9ec61cfb5d45278ae69a9a2..551ab744749f949606735d29761c20a8ab382336 100644 --- a/src/ModelTree.hh +++ b/src/ModelTree.hh @@ -599,7 +599,7 @@ public: //! Absolute value under which a number is considered to be zero double cutoff{1e-15}; // Setting for minimum feedback set computation (see the reference manual) - int mfs{0}; + int mfs{1}; //! Declare a node as an equation of the model; also give its line number void addEquation(expr_t eq, optional<int> lineno); //! Declare a node as an equation of the model, also giving its tags