Skip to content
Snippets Groups Projects
  1. Mar 13, 2025
  2. Nov 20, 2024
  3. Sep 09, 2024
    • Sébastien Villemot's avatar
      Initial HANK support · 1e68b2fc
      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
      1e68b2fc
  4. Jul 17, 2024
  5. Jun 13, 2024
  6. May 16, 2024
    • Sébastien Villemot's avatar
      Refactor output for complementarity conditions · dc1ec15f
      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).
      dc1ec15f
  7. Apr 12, 2024
  8. Dec 14, 2023
  9. Dec 01, 2023
  10. Nov 30, 2023
  11. Apr 05, 2023
  12. Mar 28, 2023
    • Sébastien Villemot's avatar
      No longer replace all auxiliary variables by their definition in the static model · fe3f1894
      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
      fe3f1894
  13. Mar 23, 2023
  14. Mar 02, 2023
    • Sébastien Villemot's avatar
      Performance improvement of chain rule derivation · 7acf2783
      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”).
      7acf2783
    • Sébastien Villemot's avatar
  15. Feb 28, 2023
  16. Nov 08, 2022
  17. Nov 02, 2022
  18. Oct 18, 2022
  19. Jul 20, 2022
  20. Jul 08, 2022
  21. Jul 06, 2022
  22. Jul 05, 2022
    • Sébastien Villemot's avatar
      Fix interaction of temporary terms with steady_state operator · c27342cf
      Sébastien Villemot authored
      When the same complex expression appears outside and inside a steady_state()
      operator, the same temporary term would be used for both cases, which was
      obviously wrong.
      
      The fix consists in never substituting temporary terms for expressions inside
      the steady_state operator().
      
      Incidentally, this implies that external functions can no longer be used inside
      steady_state operators (since their computed values are stored inside temporary
      terms).
      c27342cf
  23. Jul 04, 2022
  24. Jun 24, 2022
  25. Jun 20, 2022
  26. Jun 16, 2022
  27. Jun 07, 2022
  28. May 20, 2022
  29. May 18, 2022
    • Sébastien Villemot's avatar
      No longer delete move constructor/assignment operator · 27952078
      Sébastien Villemot authored
      We follow the advice given by Josuttis in his book about move semantics.
      
      Deleting those member fuctions can be a bug if we want to allow copy semantics,
      because overload resolution will no longer fallback to the copy
      constructor/assignment operator when given an rvalue.
      
      In particular, this explain why it was not possible to delete the move
      assignment operator of the StaticModel class.
      27952078
  30. May 16, 2022
  31. Apr 01, 2022
Loading