- Oct 30, 2024
-
-
Sébastien Villemot authored
This should have been removed in commit 2315bdb5. Ref. dynare#1859
-
- Sep 09, 2024
-
-
Sébastien Villemot authored
– New “heterogeneity_dimension” statement – New option “heterogeneity” to “var”, “varexo”, “parameters”, “model” and “shocks” statements – New “SUM()” operator in “model” block
-
- Jul 22, 2024
-
-
Sébastien Villemot authored
-
- Jul 19, 2024
-
-
Sébastien Villemot authored
-
- Jul 17, 2024
-
-
- Jun 13, 2024
-
-
Sébastien Villemot authored
-
- May 16, 2024
-
-
Sébastien Villemot authored
The vector of lower and upper bounds is now provided by {static,dynamic}_complementarity_conditions.m (which accepts parameters as an argument, in preparation for the possibility of having parameters in complementarity conditions). The index that denotes the reordering of equation residuals (so that the residual of an equation appears at the index of the endogenous appearing in the complementarity condition) is now in “M_.{static,dynamic}_mcp_equations_reordering”. Constraints declared through the ramsey_constraints block are also incorporated in this new interface (and therefore “M_.ramsey_model_constraints” has been removed).
-
- Feb 06, 2024
-
-
Sébastien Villemot authored
-
- Jan 31, 2024
-
-
Sébastien Villemot authored
-
- Dec 14, 2023
-
-
Sébastien Villemot authored
-
Sébastien Villemot authored
-
- Dec 13, 2023
-
-
Sébastien Villemot authored
Automatically detected by clang-tidy using performance-inefficient-vector-operation check.
-
- Nov 30, 2023
-
-
Sébastien Villemot authored
-
- Nov 03, 2023
-
-
Sébastien Villemot authored
-
- Oct 16, 2023
-
-
Sébastien Villemot authored
Currently defaults to 0.
-
Sébastien Villemot authored
This should have been in commit 0169240f.
-
Sébastien Villemot authored
This is a restoration of the behaviour that was present in 5.x.
-
- Sep 27, 2023
-
-
Sébastien Villemot authored
Those models do not have as many variables as equations, and this case is not supported by bytecode. The present commit is an improvement over commit a8ea57dd, which had already removed bytecode for the planner objective model.
-
Sébastien Villemot authored
The preprocessor would try to write bytecode for the planner objective. But bytecode only works when there are as many endogenous as equations, which is not the case for the PlannerObjective object derived from StaticModel.
-
- Sep 19, 2023
-
-
Johannes Pfeifer authored
-
- May 12, 2023
-
-
Sébastien Villemot authored
Temporary terms computed in previous blocks were not used in the bytecode output of a given block. This was inefficient (because this means that expressions already computed and store in the temporary terms vector would be recomputed), and incidentally it would break the external functions output (because it would trigger a lookup in the “TEF terms”, which would thus fail). Closes: #115
-
- Apr 18, 2023
-
-
Sébastien Villemot authored
-
- Apr 11, 2023
-
-
Sébastien Villemot authored
This allows the compiler to better optimize by inlining those call when worth it.
-
- Apr 07, 2023
-
-
Sébastien Villemot authored
The C99 copysign() function was used in the generated C output, but that function does not correctly handle zero. Replace it by a custom sign() function.
-
- Apr 05, 2023
-
-
Sébastien Villemot authored
Improve performance on very large models (⩾ 5000 equations). Note that std::unordered_set cannot be used for the temporary_terms_t type, because ordering is needed there (for writing the output files).
-
Sébastien Villemot authored
Improves performance on very very large models (tens of thousands of equations).
-
- Mar 28, 2023
-
-
Sébastien Villemot authored
-
Sébastien Villemot authored
-
Sébastien Villemot authored
The computing of the Ramsey steady state relies on the fact that Lagrange multipliers appear linearly in the system to be solved. Instead of directly solving for the Lagrange multipliers along with the other variables, dyn_ramsey_static.m reduces the size of the problem by always computing the value of the multipliers that minimizes the residuals, given the other variables (using a minimum norm solution, easy to compute because of the linearity property). That function thus needs the derivatives of the optimality FOCs with respect to the multipliers. The problem is that, when multipliers appear in an auxiliary variable related to a lead/lag, then those derivatives need to be retrieved by a chain rule derivation, which cannot be easily done with the regular static file. This commit implements the creation of a new file, ramsey_multipliers_static_g1.{m,mex}, that provides exactly the needed derivatives w.r.t. Lagrange multipliers through chain rule derivation. Ref. dynare#633, dynare#1119, dynare#1133
-
Sébastien Villemot authored
This is effectively a revert of commits 1b4f68f9, 32fb90d5 and f6f4ea70. This transformation had been introduced in order to fix the computation of the Ramsey steady state in the case where Lagrange multipliers appeared with a lead or lag ⩾ 2 (and where thus part of the definition of an auxiliary variable). But this transformation had introduced bugs in the handling of external functions which were difficult to tackle. Moreover, it seems preferable to keep the strict correspondence between the dynamic and static model, in order to make reasoning about the preprocessor internals easier (in particular, for this reason this transformation was not implemented in ModFile::transformPass() but in ModFile::computingPass(), which was a bit confusing). A better solution for the Ramsey steady state issue will is implemented in the descendent of the present commit. Ref. dynare#633, dynare#1119, dynare#1133
-
Sébastien Villemot authored
Crash when writing the (static) set_auxiliary_variables file in the presence of external functions -
Sébastien Villemot authored
The output was in MATLAB syntax instead of Julia syntax.
-
Sébastien Villemot authored
It was erroneously using MATLAB costs, leading to possible inefficiencies (though those cost tables are probably not very accurate and should be revised).
-
- Mar 23, 2023
-
-
Sébastien Villemot authored
By the way, remove a redundant Cluster{} constructor call.
-
- Mar 20, 2023
-
-
Sébastien Villemot authored
Previously, the MinGW location was appended multiple times to the PATH variable, which in some cases would make the variable too long and thus dysfunctional. The variable is now initialized once when the worker threads are created. By the way, move the macOS+Octave environment variable initializations to the same place, for consistency.
-
- Mar 02, 2023
-
-
Sébastien Villemot authored
Commit 23b0c12d introduced caching in chain rule derivation (used by block decomposition), which increased speed for mfs > 0, but actually decreased it for mfs=0. This patch introduces the pre-computation of derivatives which are known to be zero using symbolic a priori (similarly to what is done in the non-chain rule context). The algorithms are now identical between the two contexts (both symbolic a priori + caching), the difference being that in the chain rule context, the symbolic a priori and the cache are not stored within the ExprNode class, since they depend on the list of recursive variables. This patch brings a significant performant improvement for all values of the “mfs” option (the improvement is greater for small values of “mfs”).
-
- Jan 19, 2023
-
-
Sébastien Villemot authored
-
- Jan 17, 2023
-
-
Sébastien Villemot authored
-
Sébastien Villemot authored
-
Sébastien Villemot authored
Those two settings were previously always at their default value for the static model, independently of what the user would set in the .mod file.
-