New `dr_cycle_reduction_maxiter` option authored by Sébastien Villemot's avatar Sébastien Villemot
This page documents the changes between Dynare versions (including the unstable This page documents the changes between Dynare versions (including the unstable
one). For previous versions of Dynare, please read the dedicated frozen page on one). For previous versions of Dynare, please read the dedicated frozen page on
the [DynareWiki](http://www.dynare.org/DynareWiki/NewFeatures). the [DynareWiki](http://www.dynare.org/DynareWiki/NewFeatures).
Dynare 7 (unstable) Dynare 7 (unstable)
------------------- -------------------
- Method of moments now supports estimation with discretionary optimal policy (!2279) - Method of moments now supports estimation with discretionary optimal policy (!2279)
- Option values `solve_algo={6,7,8}` and `stack_solve_algo={2,3}` are now available without `block` nor `bytecode` (e14a49211067b27114d8173b16d4cb8f7595b0c3, aa263e6a2adc9414142551a01bbcc46abb6a3894) - Option values `solve_algo={6,7,8}` and `stack_solve_algo={2,3}` are now available without `block` nor `bytecode` (e14a49211067b27114d8173b16d4cb8f7595b0c3, aa263e6a2adc9414142551a01bbcc46abb6a3894)
- More flexible syntax for specifying complementarity conditions (461c30fea8c296e88388f9775a2e92e674b0e3d2, 656c130036706849e7d08d9411b352b45a19eccb) - More flexible syntax for specifying complementarity conditions (461c30fea8c296e88388f9775a2e92e674b0e3d2, 656c130036706849e7d08d9411b352b45a19eccb)
- The complementarity condition is now specified between the associated equation and its closing semicolon, using the perpendicular symbol as a separator (the latter can be input either in UTF-8, as `⟂`, corresponding to Unicode codepoint U+27C2; or alternatively as pure ASCII, as `_|_`, *i.e.* a vertical bar enclosed within two underscores) - The complementarity condition is now specified between the associated equation and its closing semicolon, using the perpendicular symbol as a separator (the latter can be input either in UTF-8, as `⟂`, corresponding to Unicode codepoint U+27C2; or alternatively as pure ASCII, as `_|_`, *i.e.* a vertical bar enclosed within two underscores)
- Both the lower and the upper bounds can be specified at the same time in a given complementarity condition - Both the lower and the upper bounds can be specified at the same time in a given complementarity condition
- Arbitrary functions of parameters can appear in the bounds - Arbitrary functions of parameters can appear in the bounds
- The old syntax using the `mcp` equation tag is still supported but deprecated - The old syntax using the `mcp` equation tag is still supported but deprecated
- Here is an example of an equation with an associated complementarity condition, using the new syntax: - Here is an example of an equation with an associated complementarity condition, using the new syntax:
``` ```
mu = 0 ⟂ 0 < i < 1+2*alpha; mu = 0 ⟂ 0 < i < 1+2*alpha;
``` ```
Dynare 6 - New `dr_cycle_reduction_maxiter` option to the `stoch_simul`, `estimation` and `method_of_moments` command, to control the maximum number of iterations when the cycle reduction algorithm is used. (#1920, preprocessor!104, !2295)
--------
Dynare 6
- The Sequential Monte Carlo sampler as described by Herbst and Schorfheide (2014) is now available under value `hssmc` for option `posterior_sampling_method`. --------
- New routines for perfect foresight simulation with expectation errors. In such a scenario, agents make expectation errors in that the path they had anticipated in period 1 is not realized exactly. More precisely, in some simulation periods, they may receive new information that makes them revise their anticipation for the path of future shocks. Also, under this scenario, it is assumed that agents behave as under perfect foresight, *i.e.* they make their decisions as if there were no uncertainty and they knew exactly the path of future shocks; the new information that they may receive comes as a total surprise to them. Available under new `perfect_foresight_with_expectation_errors_setup` and `perfect_foresight_with_expectation_errors_solver` commands, and `shocks(learnt_in=…)`, `mshocks(learnt_in=…)` and `endval(learnt_in=…)` blocks. - The Sequential Monte Carlo sampler as described by Herbst and Schorfheide (2014) is now available under value `hssmc` for option `posterior_sampling_method`.
- New routines for IRF matching with stochastic simulations: - New routines for perfect foresight simulation with expectation errors. In such a scenario, agents make expectation errors in that the path they had anticipated in period 1 is not realized exactly. More precisely, in some simulation periods, they may receive new information that makes them revise their anticipation for the path of future shocks. Also, under this scenario, it is assumed that agents behave as under perfect foresight, *i.e.* they make their decisions as if there were no uncertainty and they knew exactly the path of future shocks; the new information that they may receive comes as a total surprise to them. Available under new `perfect_foresight_with_expectation_errors_setup` and `perfect_foresight_with_expectation_errors_solver` commands, and `shocks(learnt_in=…)`, `mshocks(learnt_in=…)` and `endval(learnt_in=…)` blocks.
- Both frequentist (as in Christiano, Eichenbaum, and Evans, 2005) and Bayesian (as in Christiano, Trabandt, and Walentin, 2010) IRF matching approaches are implemented. The core idea of IRF matching is to treat empirical impulse responses (*e.g.* given from an SVAR or local projection estimation) as data and select model parameters that align the model’s IRFs closely with their empirical counterparts. (!2191) - New routines for IRF matching with stochastic simulations:
- Available under option `mom_method = irf_matching` option to the `method_of_moments` command. (preprocessor!85) - Both frequentist (as in Christiano, Eichenbaum, and Evans, 2005) and Bayesian (as in Christiano, Trabandt, and Walentin, 2010) IRF matching approaches are implemented. The core idea of IRF matching is to treat empirical impulse responses (*e.g.* given from an SVAR or local projection estimation) as data and select model parameters that align the model’s IRFs closely with their empirical counterparts. (!2191)
- New blocks `matched_irfs` and `matched_irfs_weights` for specifying the values and weights of the empirical impulse response functions. (preprocessor#124) - Available under option `mom_method = irf_matching` option to the `method_of_moments` command. (preprocessor!85)
- Pruning à la Andreasen et al. (2018) is now available at an arbitrary approximation order when performing stochastic simulations with `stoch_simul` (!2147), and at 3rd order when performing particle filtering. (!2071, particles!16, !2045) - New blocks `matched_irfs` and `matched_irfs_weights` for specifying the values and weights of the empirical impulse response functions. (preprocessor#124)
- New `log` option to the `var` statement. In addition to the endogenous variable(s) thus declared, this option also triggers the creation of auxiliary variable(s) equal to the log of the corresponding endogenous variable(s). For example, given a `var(log) y;` statement, two endogenous will be created (`y` and `LOG_y`), and an auxiliary equation linking the two will also be added (equal to `y = exp(LOG_y);`). Moreover, every occurrence of `y` in the model will be replaced by `exp(LOG_y)`. This option is, for example, useful for performing a loglinear approximation of some variable(s) in the context of a first-order stochastic approximation; or for ensuring that the variable(s) stay(s) in the definition domain of the function defining the steady state or the dynamic residuals when the nonlinear solver is used. (#349) - Pruning à la Andreasen et al. (2018) is now available at an arbitrary approximation order when performing stochastic simulations with `stoch_simul` (!2147), and at 3rd order when performing particle filtering. (!2071, particles!16, !2045)
- New model editing features (21a8a5794a83b5098cad0fe7beab93dcbe5ef6bf and 4db28998687b8845568e8750d99a1b45f0d6a94f) - New `log` option to the `var` statement. In addition to the endogenous variable(s) thus declared, this option also triggers the creation of auxiliary variable(s) equal to the log of the corresponding endogenous variable(s). For example, given a `var(log) y;` statement, two endogenous will be created (`y` and `LOG_y`), and an auxiliary equation linking the two will also be added (equal to `y = exp(LOG_y);`). Moreover, every occurrence of `y` in the model will be replaced by `exp(LOG_y)`. This option is, for example, useful for performing a loglinear approximation of some variable(s) in the context of a first-order stochastic approximation; or for ensuring that the variable(s) stay(s) in the definition domain of the function defining the steady state or the dynamic residuals when the nonlinear solver is used. (#349)
- Multiple `model` blocks are now supported (this was already working but not explicitly documented). - New model editing features (21a8a5794a83b5098cad0fe7beab93dcbe5ef6bf and 4db28998687b8845568e8750d99a1b45f0d6a94f)
- Multiple `estimated_params` blocks now concatenate their contents (instead of overwriting previous ones, which was the former undocumented behavior); an `overwrite` option has been added to provide the old behavior. (preprocessor@60ef6bbdbd2f95b7f8d52b1c10cf6bb9aa7773cc, preprocessor@ea44aa19d6dd2bf4c508ee081b2b6cae2a647250) - Multiple `model` blocks are now supported (this was already working but not explicitly documented).
- New `model_options` statement to set model options in a global fashion. (preprocessor#19) - Multiple `estimated_params` blocks now concatenate their contents (instead of overwriting previous ones, which was the former undocumented behavior); an `overwrite` option has been added to provide the old behavior. (preprocessor@60ef6bbdbd2f95b7f8d52b1c10cf6bb9aa7773cc, preprocessor@ea44aa19d6dd2bf4c508ee081b2b6cae2a647250)
- New `model_remove` command to remove equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679) - New `model_options` statement to set model options in a global fashion. (preprocessor#19)
- New `model_replace` block to replace equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679) - New `model_remove` command to remove equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679)
- New `var_remove` command to remove variables (or parameters). (preprocessor@342c4faf8d95169b7391507e703c88d76b38a243) - New `model_replace` block to replace equations. (preprocessor@1f004584e9c8b2ea5fbda6dd5413b516ce956679)
- New `estimated_params_remove` block to remove estimated parameters. (preprocessor@5ffbc5bad31c306f561d673cde36d460cb5906c1) - New `var_remove` command to remove variables (or parameters). (preprocessor@342c4faf8d95169b7391507e703c88d76b38a243)
- Stochastic simulations - New `estimated_params_remove` block to remove estimated parameters. (preprocessor@5ffbc5bad31c306f561d673cde36d460cb5906c1)
- Performance improvements for simulation of the solution under perturbation and for particle filtering at higher order (⩾ 3). (#1802, !2071, particles!16, !2045) - Stochastic simulations
- Performance improvement for the first order perturbation solution using either cycle reduction (`dr=cycle_reduction` option) or logarithmic reduction (`dr=logarithmic_reduction`). (!2085, !2089) - Performance improvements for simulation of the solution under perturbation and for particle filtering at higher order (⩾ 3). (#1802, !2071, particles!16, !2045)
- New `nomodelsummary` option to the `stoch_simul` command, to suppress the printing of the model summary and the covariance of the exogenous shocks. (a00eb5e1ded61d2e0086f841203a5eec96e77931) - Performance improvement for the first order perturbation solution using either cycle reduction (`dr=cycle_reduction` option) or logarithmic reduction (`dr=logarithmic_reduction`). (!2085, !2089)
- Estimation - New `nomodelsummary` option to the `stoch_simul` command, to suppress the printing of the model summary and the covariance of the exogenous shocks. (a00eb5e1ded61d2e0086f841203a5eec96e77931)
- A truncated normal distribution can now be specified as a prior, using the 3rd and 4th parameters of the `estimated_params` block as the bounds. (!2161) - Estimation
- New `conditional_likelihood` option to the `estimation` command. When the option is set, instead of using the Kalman filter to evaluate the likelihood, Dynare will evaluate the conditional likelihood based on the first-order reduced form of the model by assuming that the initial state vector is at its steady state. (b7693c32, f7694208) - A truncated normal distribution can now be specified as a prior, using the 3rd and 4th parameters of the `estimated_params` block as the bounds. (!2161)
- New `additional_optimizer_steps` option to the `estimation` command to trigger the sequential execution of several optimizers when looking for the posterior mode. (!2178) - New `conditional_likelihood` option to the `estimation` command. When the option is set, instead of using the Kalman filter to evaluate the likelihood, Dynare will evaluate the conditional likelihood based on the first-order reduced form of the model by assuming that the initial state vector is at its steady state. (b7693c32, f7694208)
- The `generate_trace_plots` command now allows comparing multiple chains. (baf8243f) - New `additional_optimizer_steps` option to the `estimation` command to trigger the sequential execution of several optimizers when looking for the posterior mode. (!2178)
- The Geweke and Raftery-Lewis convergence diagnostics will now also be displayed when `mh_nblocks>1`. (d0e99daf9ae84cf3a605fa4cf49d506d36b2bd95) - The `generate_trace_plots` command now allows comparing multiple chains. (baf8243f)
- New `robust`, `TolGstep`, and `TolGstepRel` options to the optimizer available under `mode_compute=5` (“newrat”). (!2231) - The Geweke and Raftery-Lewis convergence diagnostics will now also be displayed when `mh_nblocks>1`. (d0e99daf9ae84cf3a605fa4cf49d506d36b2bd95)
- New `brooks_gelman_plotrows` option to the `estimation` command for controlling the number of parameters to depict along the rows of the figures depicting the Brooks and Gelman (1998) convergence diagnostics. (!2146) - New `robust`, `TolGstep`, and `TolGstepRel` options to the optimizer available under `mode_compute=5` (“newrat”). (!2231)
- New `mh_init_scale_factor` option to the `estimation` command tor govern the overdispersion of the starting draws when initializing several Monte Carlo Markov Chains. This option supersedes the `mh_init_scale` option, which is now deprecated. (!2041) - New `brooks_gelman_plotrows` option to the `estimation` command for controlling the number of parameters to depict along the rows of the figures depicting the Brooks and Gelman (1998) convergence diagnostics. (!2146)
- Steady state computation - New `mh_init_scale_factor` option to the `estimation` command tor govern the overdispersion of the starting draws when initializing several Monte Carlo Markov Chains. This option supersedes the `mh_init_scale` option, which is now deprecated. (!2041)
- Steady state computation now accounts for occasionally-binding constraints of mixed-complementarity problems (as defined by `mcp` tags). (!1877) - Steady state computation
- New `tolx` option to the `steady` command for governing the termination based on the step tolerance. (preprocessor!60) - Steady state computation now accounts for occasionally-binding constraints of mixed-complementarity problems (as defined by `mcp` tags). (!1877)
- New `fsolve_options` option to the `steady` command for passing options to `fsolve` (in conjunction with the `solve_algo=0` option). (#1856) - New `tolx` option to the `steady` command for governing the termination based on the step tolerance. (preprocessor!60)
- New option `from_initval_to_endval` option to the `homotopy_setup` block, for easily computing homotopy from initial to terminal steady state (when the former is already computed). (2e3fbfc0408a360dd169c927a5ea38c89f6ff95c) - New `fsolve_options` option to the `steady` command for passing options to `fsolve` (in conjunction with the `solve_algo=0` option). (#1856)
- New `non_zero` option to `resid` command to restrict display to non-zero residuals. (preprocessor@9db21a231c5ab8f8aa26680ffecf3abfcf45bfab, 3d7299c1e490a6813de2b2cb450b738b4c7acdf9) - New option `from_initval_to_endval` option to the `homotopy_setup` block, for easily computing homotopy from initial to terminal steady state (when the former is already computed). (2e3fbfc0408a360dd169c927a5ea38c89f6ff95c)
- Perfect foresight - New `non_zero` option to `resid` command to restrict display to non-zero residuals. (preprocessor@9db21a231c5ab8f8aa26680ffecf3abfcf45bfab, 3d7299c1e490a6813de2b2cb450b738b4c7acdf9)
- Significant performance improvement of the `stack_solve_algo=1` option to the `perfect_foresight_solver` command (Laffargue-Boucekkine-Juillard algorithm) when used in conjunction with options `block` and/or `bytecode` of the `model` block. (17b016d983be260aa09926809d1f3465307c58e2, be648d350b162152e999b8ffad830dce6b373190, 77a7d5c3dec67b6d9943fc23c11afbb1d0cfd431) - Perfect foresight
- New `relative_to_initval` option to the `mshocks` block, to use the initial steady state as a basis for the multiplication when there is an `endval` block. (5145bd0708697230c7adeb23c8a0dabf37f4cb3f) - Significant performance improvement of the `stack_solve_algo=1` option to the `perfect_foresight_solver` command (Laffargue-Boucekkine-Juillard algorithm) when used in conjunction with options `block` and/or `bytecode` of the `model` block. (17b016d983be260aa09926809d1f3465307c58e2, be648d350b162152e999b8ffad830dce6b373190, 77a7d5c3dec67b6d9943fc23c11afbb1d0cfd431)
- New `static_mfs` option to the `model` block (and to the `model_options` command), for controlling the minimum feedback set computation for the static model. It defaults to `0` (corresponding to the behavior in Dynare version 5). - New `relative_to_initval` option to the `mshocks` block, to use the initial steady state as a basis for the multiplication when there is an `endval` block. (5145bd0708697230c7adeb23c8a0dabf37f4cb3f)
- Various improvements to homotopy - New `static_mfs` option to the `model` block (and to the `model_options` command), for controlling the minimum feedback set computation for the static model. It defaults to `0` (corresponding to the behavior in Dynare version 5).
- New `endval_steady` option to the `perfect_foresight_setup` command for computing the terminal steady state at the same time as the transitory dynamics (and new options `steady_solve_algo`, `steady_tolf`, `steady_tolx`, `steady_maxit` and `steady_markowitz` for controlling the steady state nonlinear solver). (d5a3a8e16af56af23c8eb27a693b2e67579bfde0) - Various improvements to homotopy
- New `homotopy_linearization_fallback` and `homotopy_marginal_linearization_fallback` options to the `perfect_foresight_solver` command to get an approximate solution when homotopy fails to go to 100%. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0) - New `endval_steady` option to the `perfect_foresight_setup` command for computing the terminal steady state at the same time as the transitory dynamics (and new options `steady_solve_algo`, `steady_tolf`, `steady_tolx`, `steady_maxit` and `steady_markowitz` for controlling the steady state nonlinear solver). (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
- New `homotopy_initial_step_size`, `homotopy_min_step_size`, `homotopy_step_size_increase_success_count` and `homotopy_max_completion_share` options to the `perfect_foresight_solver` command to fine tune the homotopy behavior. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0) - New `homotopy_linearization_fallback` and `homotopy_marginal_linearization_fallback` options to the `perfect_foresight_solver` command to get an approximate solution when homotopy fails to go to 100%. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
- Purely backward, forward and static models are now supported by the homotopy procedure. (fe142b663ef34d26969191d2a096b08aecc1eb10) - New `homotopy_initial_step_size`, `homotopy_min_step_size`, `homotopy_step_size_increase_success_count` and `homotopy_max_completion_share` options to the `perfect_foresight_solver` command to fine tune the homotopy behavior. (d5a3a8e16af56af23c8eb27a693b2e67579bfde0)
- New `homotopy_exclude_varexo` option to the `perfect_foresight_solver` command, for excluding exogenous variables from the homotopy procedure (only available since version 6.1) (9f65299d8a7e63de8432a73bffdc8899eb27e936) - Purely backward, forward and static models are now supported by the homotopy procedure. (fe142b663ef34d26969191d2a096b08aecc1eb10)
- The `stack_solve_algo=1` and `stack_solve_algo=6` options of the `perfect_foresight_solver` command were merged and are now synonymous. They both provide the Laffargue-Boucekkine-Juillard algorithm and work with and without the `block` and `bytecode` options of the `model` block. Using `stack_solve_algo=1` is now recommended, but `stack_solve_algo=6` is kept for backward compatibility. (06f665e231c1a66863612eb75802ff4f0b698c57) - New `homotopy_exclude_varexo` option to the `perfect_foresight_solver` command, for excluding exogenous variables from the homotopy procedure (only available since version 6.1) (9f65299d8a7e63de8432a73bffdc8899eb27e936)
- OccBin - The `stack_solve_algo=1` and `stack_solve_algo=6` options of the `perfect_foresight_solver` command were merged and are now synonymous. They both provide the Laffargue-Boucekkine-Juillard algorithm and work with and without the `block` and `bytecode` options of the `model` block. Using `stack_solve_algo=1` is now recommended, but `stack_solve_algo=6` is kept for backward compatibility. (06f665e231c1a66863612eb75802ff4f0b698c57)
- New `simul_reset_check_ahead_periods` option to the `occbin_setup` and `occbin_solver` commands, for resetting `check_ahead_periods` in each simulation period. (3765ef77) - OccBin
- new `simul_max_check_ahead_periods`, `likelihood_max_check_ahead_periods`, and `smoother_max_check_ahead_periods` options to the `occbin_setup` command, for truncating the number of periods for which agents check ahead which regime is present. (2f236048 and preprocessor@ed95a2ca ) - New `simul_reset_check_ahead_periods` option to the `occbin_setup` and `occbin_solver` commands, for resetting `check_ahead_periods` in each simulation period. (3765ef77)
- Optimal policy - new `simul_max_check_ahead_periods`, `likelihood_max_check_ahead_periods`, and `smoother_max_check_ahead_periods` options to the `occbin_setup` command, for truncating the number of periods for which agents check ahead which regime is present. (2f236048 and preprocessor@ed95a2ca )
- The `osr` command now accepts the `analytic_derivation` and `analytic_derivation_mode` options. (!2171) - Optimal policy
- The `evaluate_planner_objective` command now computes the unconditional welfare for higher-order approximations (⩾ 3). (!1962) - The `osr` command now accepts the `analytic_derivation` and `analytic_derivation_mode` options. (!2171)
- New `periods` and `drop` options to the `evaluate_planner_objective` command. (!1967) - The `evaluate_planner_objective` command now computes the unconditional welfare for higher-order approximations (⩾ 3). (!1962)
- Semi-structural models - New `periods` and `drop` options to the `evaluate_planner_objective` command. (!1967)
- New `pac_target_info` block for decomposing the PAC target into an arbitrary number of components. Furthermore, in the presence of such a block, the new `pac_target_nonstationary` operator can be used to select the non stationary part of the target (typically useful in the error correction term of the PAC equation). (b297353b06c9c35223500439c0bc63321675768b) - Semi-structural models
- New `kind` option to the `pac_model` command. This option allows the user to select the formula used to compute the weights on the VAR companion matrix variables that are used to form PAC expectations. (b297353b06c9c35223500439c0bc63321675768b) - New `pac_target_info` block for decomposing the PAC target into an arbitrary number of components. Furthermore, in the presence of such a block, the new `pac_target_nonstationary` operator can be used to select the non stationary part of the target (typically useful in the error correction term of the PAC equation). (b297353b06c9c35223500439c0bc63321675768b)
- Performance improvement to `solve_algo=12` and `solve_algo=14`, which significantly accelerates the simulation of purely backward, forward and static models with the `perfect_foresight_solver` command and the routines for semi-structural models. - New `kind` option to the `pac_model` command. This option allows the user to select the formula used to compute the weights on the VAR companion matrix variables that are used to form PAC expectations. (b297353b06c9c35223500439c0bc63321675768b)
- dseries classes - Performance improvement to `solve_algo=12` and `solve_algo=14`, which significantly accelerates the simulation of purely backward, forward and static models with the `perfect_foresight_solver` command and the routines for semi-structural models.
- The `remove` and `remove_` methods now accept a list of variables (they would previously only accept a single variable). (dseries@b7ca9c3e, c02e5505) - dseries classes
- New MATLAB/Octave command `dplot` to plot mathematical expressions generated from variables fetched from (different) dseries objects. (dseries@d6c8d039a2f828e5ea009d7181c8145d23932d69). - The `remove` and `remove_` methods now accept a list of variables (they would previously only accept a single variable). (dseries@b7ca9c3e, c02e5505)
- Misc - New MATLAB/Octave command `dplot` to plot mathematical expressions generated from variables fetched from (different) dseries objects. (dseries@d6c8d039a2f828e5ea009d7181c8145d23932d69).
- New `display_parameter_values` command to print the parameter values in the command window. (!2268) - Misc
- New `collapse_figures_in_tabgroup` command to dock all figures. (!2263) - New `display_parameter_values` command to print the parameter values in the command window. (!2268)
- Performance improvement for the `use_dll` option of the `model` block. The preprocessor now takes advantage of parallelization when compiling the MEX files. (preprocessor@f6053df7545174885486a457a2253897a1ed4e27, preprocessor@5cf4729ab0790084af0b0a9e9a1062ddefff3401, preprocessor@dd66459e5f2e5c57ea25cb4a0e8709b22ff3195b, preprocessor@3dd40c6c42d82997972e90899da8632a747f5c90) - New `collapse_figures_in_tabgroup` command to dock all figures. (!2263)
- New mathematical primitives available: complementary error function (`erfc`), hyperbolic functions (`cosh`, `sinh`, `tanh`, `acosh`, `asinh`, `atanh`). (preprocessor#85, preprocessor@c0ea8d72038cd6c57e48aca26d2d29866848ae0a) - Performance improvement for the `use_dll` option of the `model` block. The preprocessor now takes advantage of parallelization when compiling the MEX files. (preprocessor@f6053df7545174885486a457a2253897a1ed4e27, preprocessor@5cf4729ab0790084af0b0a9e9a1062ddefff3401, preprocessor@dd66459e5f2e5c57ea25cb4a0e8709b22ff3195b, preprocessor@3dd40c6c42d82997972e90899da8632a747f5c90)
- New `last_simulation_period` option to the `initval_file` command. (#1838, f5f47cd834049bd5111f23622fb2c68d0e6a619b, preprocessor@ddddf89d9cd8771bb80beb5c44efe53f4734b41f) - New mathematical primitives available: complementary error function (`erfc`), hyperbolic functions (`cosh`, `sinh`, `tanh`, `acosh`, `asinh`, `atanh`). (preprocessor#85, preprocessor@c0ea8d72038cd6c57e48aca26d2d29866848ae0a)
- The `calib_smoother` command now accepts the `nobs` and `heteroskedastic_filter` options. (!2110) - New `last_simulation_period` option to the `initval_file` command. (#1838, f5f47cd834049bd5111f23622fb2c68d0e6a619b, preprocessor@ddddf89d9cd8771bb80beb5c44efe53f4734b41f)
- Under the MATLAB Desktop, autocompletion is now available for the `dynare` command and other CLI commands (thanks to Eduard Benet Cerda from MathWorks). (36a2a41e357780d468582c78c4cbb738c5bb4b26) - The `calib_smoother` command now accepts the `nobs` and `heteroskedastic_filter` options. (!2110)
- Model debugging: The preprocessor now creates files for evaluating the left- and right-hand sides of model equations separately. For a model file called `ramst.mod`, you can call `[lhs,rhs]=ramst.debug.static_resid(y,x,params);` (for the static model) and `[lhs,rhs]=ramst.debug.dynamic_resid(y,x,params,steady_state);` (for the dynamic model), where `y` are the endogenous, `x` the exogenous, `params` the parameters, and `steady_state` is self-explanatory. NB: In the dynamic case, the vector `y` of endogenous must have $3n$ elements where $n$ is the number of endogenous (including auxiliary ones); the first $n$ elements correspond to the lagged values, the middle $n$ elements to the contemporaneous values, and the last $n$ elements to the lead values. - Under the MATLAB Desktop, autocompletion is now available for the `dynare` command and other CLI commands (thanks to Eduard Benet Cerda from MathWorks). (36a2a41e357780d468582c78c4cbb738c5bb4b26)
- New interactive MATLAB/Octave command `search` for listing the equations in which given variable(s) appear (requires `json` command line option). (#1886) - Model debugging: The preprocessor now creates files for evaluating the left- and right-hand sides of model equations separately. For a model file called `ramst.mod`, you can call `[lhs,rhs]=ramst.debug.static_resid(y,x,params);` (for the static model) and `[lhs,rhs]=ramst.debug.dynamic_resid(y,x,params,steady_state);` (for the dynamic model), where `y` are the endogenous, `x` the exogenous, `params` the parameters, and `steady_state` is self-explanatory. NB: In the dynamic case, the vector `y` of endogenous must have $3n$ elements where $n$ is the number of endogenous (including auxiliary ones); the first $n$ elements correspond to the lagged values, the middle $n$ elements to the contemporaneous values, and the last $n$ elements to the lead values.
- The `model_info` command allows to print the block decomposition even if the `block` option of the `model` block has not been used, by specifying the new options `block_static` and `block_dynamic`. - New interactive MATLAB/Octave command `search` for listing the equations in which given variable(s) appear (requires `json` command line option). (#1886)
- There is now a default value for the global initialization file (`GlobalInitFile` option of the configuration file): the `global_init.m` in the Dynare configuration directory (typically `$HOME/.config/dynare/global_init.m` under Linux and macOS, and `c:\Users\USERNAME\AppData\Roaming\dynare\global_init.m` under Windows). (43b24facb) - The `model_info` command allows to print the block decomposition even if the `block` option of the `model` block has not been used, by specifying the new options `block_static` and `block_dynamic`.
- For those compiling Dynare from source, the build system has been entirely rewritten and now uses Meson; as a consequence, it is now faster and easier to understand. - There is now a default value for the global initialization file (`GlobalInitFile` option of the configuration file): the `global_init.m` in the Dynare configuration directory (typically `$HOME/.config/dynare/global_init.m` under Linux and macOS, and `c:\Users\USERNAME\AppData\Roaming\dynare\global_init.m` under Windows). (43b24facb)
- Incompatible changes - For those compiling Dynare from source, the build system has been entirely rewritten and now uses Meson; as a consequence, it is now faster and easier to understand.
- :warning: The default value of the `mode_compute` option of the `estimation` command has been changed to `5` (it was previously `4`). - Incompatible changes
- :warning: When using block decomposition (with the `block` option of the `model` block), the option `mfs` now defaults to `1`. This setting should deliver better performance in perfect foresight simulation on most models. - :warning: The default value of the `mode_compute` option of the `estimation` command has been changed to `5` (it was previously `4`).
- :warning: The default location for the configuration file has changed. On Linux and macOS, the configuration file is now searched by default under `dynare/dynare.ini` in the configuration directories defined by the XDG specification (typically `$HOME/.config/dynare/dynare.ini` for the user-specific configuration and `/etc/xdg/dynare/dynare.ini` for the system-wide configuration, the former having precedence over the latter). Under Windows, the configuration file is now searched by default in `%APPDATA%\dynare\dynare.ini` (typically `c:\Users\USERNAME\AppData\Roaming\dynare\dynare.ini`). (43b24facb) - :warning: When using block decomposition (with the `block` option of the `model` block), the option `mfs` now defaults to `1`. This setting should deliver better performance in perfect foresight simulation on most models.
- :warning: The information stored in `oo_.endo_simul, oo_.exo_simul`, and `oo_.irfs` is no longer duplicated in the base workspace. New helper functions `send_endogenous_variables_to_workspace`, `send_exogenous_variables_to_workspace`, and `send_irfs_to_workspace` have been introduced to explicitly request these outputs and to mimic the old behavior. (!2229) - :warning: The default location for the configuration file has changed. On Linux and macOS, the configuration file is now searched by default under `dynare/dynare.ini` in the configuration directories defined by the XDG specification (typically `$HOME/.config/dynare/dynare.ini` for the user-specific configuration and `/etc/xdg/dynare/dynare.ini` for the system-wide configuration, the former having precedence over the latter). Under Windows, the configuration file is now searched by default in `%APPDATA%\dynare\dynare.ini` (typically `c:\Users\USERNAME\AppData\Roaming\dynare\dynare.ini`). (43b24facb)
- :warning: The `dynare_sensitivity` command has been renamed `sensitivity`. The old name is still accepted but triggers a warning. (66bc9fd9c2707c787efae797e1976b7052159dc4) - :warning: The information stored in `oo_.endo_simul, oo_.exo_simul`, and `oo_.irfs` is no longer duplicated in the base workspace. New helper functions `send_endogenous_variables_to_workspace`, `send_exogenous_variables_to_workspace`, and `send_irfs_to_workspace` have been introduced to explicitly request these outputs and to mimic the old behavior. (!2229)
- :warning: The syntax `resid(1)` is no longer supported. - :warning: The `dynare_sensitivity` command has been renamed `sensitivity`. The old name is still accepted but triggers a warning. (66bc9fd9c2707c787efae797e1976b7052159dc4)
- :warning: The `mode_compute=6` option to the `estimation` command now recursively updates the covariance matrix across the `NumberOfMh` Metropolis-Hastings runs, starting with the `InitialCovarianceMatrix` in the first run, instead of computing it from scratch in every Metropolis-Hastings run. (e5102eee) - :warning: The syntax `resid(1)` is no longer supported.
- :warning: The `periods` command has been removed. (1b47c8a5e551be046fba8b592d29f38e17099bfe) - :warning: The `mode_compute=6` option to the `estimation` command now recursively updates the covariance matrix across the `NumberOfMh` Metropolis-Hastings runs, starting with the `InitialCovarianceMatrix` in the first run, instead of computing it from scratch in every Metropolis-Hastings run. (e5102eee)
- :warning: The `Sigma_e` command has been removed. (e30314e75d0d4fa2e587079bdbeeb2e2e4af3383) - :warning: The `periods` command has been removed. (1b47c8a5e551be046fba8b592d29f38e17099bfe)
- :warning: The `block` option of the `model` block no longer has an effect when used in conjunction with `stoch_simul` or `estimation` commands. (8f1a4cb3637fe4936ade877c88e6a120af2b5f24) - :warning: The `Sigma_e` command has been removed. (e30314e75d0d4fa2e587079bdbeeb2e2e4af3383)
- :warning: The Dynare++ executable is no longer distributed since almost all of its functionalities have been integrated inside Dynare for MATLAB/Octave. (c1922c3ad0a920d48fd32ec7026bfd5ebd55a824) - :warning: The `block` option of the `model` block no longer has an effect when used in conjunction with `stoch_simul` or `estimation` commands. (8f1a4cb3637fe4936ade877c88e6a120af2b5f24)
- :warning: A macro-processor variable defined without a value (such as `@#define var` in the `.mod` file or alternatively `-Dvar` on the `dynare` command line) is now assigned the `true` logical value (it was previously assigned `1`). (preprocessor#43) - :warning: The Dynare++ executable is no longer distributed since almost all of its functionalities have been integrated inside Dynare for MATLAB/Octave. (c1922c3ad0a920d48fd32ec7026bfd5ebd55a824)
- :warning: The `parallel_slave_open_mode` option of the `dynare` command has been renamed `parallel_follower_open_mode`. (preprocessor#86, !1976) - :warning: A macro-processor variable defined without a value (such as `@#define var` in the `.mod` file or alternatively `-Dvar` on the `dynare` command line) is now assigned the `true` logical value (it was previously assigned `1`). (preprocessor#43)
- :warning: The `static` option of the `model_info` command is now deprecated and is replaced by the `block_static` option. (45450651 and preprocessor@2fd06811) - :warning: The `parallel_slave_open_mode` option of the `dynare` command has been renamed `parallel_follower_open_mode`. (preprocessor#86, !1976)
- References: - :warning: The `static` option of the `model_info` command is now deprecated and is replaced by the `block_static` option. (45450651 and preprocessor@2fd06811)
- Andreasen, Martin M., Jesús Fernández-Villaverde, and Juan Rubio-Ramírez (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” *Review of Economic Studies*, 85(1), 1-49. - References:
- Brooks, Stephen P., and Andrew Gelman (1998): “General methods for monitoring convergence of iterative simulations,” *Journal of Computational and Graphical Statistics*, 7, pp. 434–455.
- Christiano, Eichenbaum and Charles L. Evans (2005): “Nominal Rigidities and the Dynamic Effects of a Shock to Monetary Policy,” *Journal of Political Economy*, 113(1), 1–45. - Andreasen, Martin M., Jesús Fernández-Villaverde, and Juan Rubio-Ramírez (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” *Review of Economic Studies*, 85(1), 1-49.
- Christiano, Lawrence J., Mathias Trabandt, and Karl Walentin (2010): “DSGE Models for Monetary Policy Analysis,” In: *Handbook of Monetary Economics 3*, 285–367. - Brooks, Stephen P., and Andrew Gelman (1998): “General methods for monitoring convergence of iterative simulations,” *Journal of Computational and Graphical Statistics*, 7, pp. 434–455.
- Herbst, Edward and Schorfheide, Frank (2014): "Sequential Monte Carlo Sampling for DSGE Models," *Journal of Applied Econometrics*, 29, 1073-1098. - Christiano, Eichenbaum and Charles L. Evans (2005): “Nominal Rigidities and the Dynamic Effects of a Shock to Monetary Policy,” *Journal of Political Economy*, 113(1), 1–45.
- Christiano, Lawrence J., Mathias Trabandt, and Karl Walentin (2010): “DSGE Models for Monetary Policy Analysis,” In: *Handbook of Monetary Economics 3*, 285–367.
- Herbst, Edward and Schorfheide, Frank (2014): "Sequential Monte Carlo Sampling for DSGE Models," *Journal of Applied Econometrics*, 29, 1073-1098.
Dynare 5
--------
Dynare 5
- New routines for simulating semi-structural (backward) models where --------
some equations incorporate expectations based on future values of a VAR or
trend component model. See the `var_model`, `trend_component_model` and - New routines for simulating semi-structural (backward) models where
`var_expectation_model` commands, and the `var_expectation` operator. some equations incorporate expectations based on future values of a VAR or
trend component model. See the `var_model`, `trend_component_model` and
- New routines for simulating semi-structural models where some equations are `var_expectation_model` commands, and the `var_expectation` operator.
specified using the polynomial adjustment costs (PAC) approach, as in
the FRB/US model (see Brayton et al., 2014 and Brayton et al., 2000) and the ECB-BASE model (see - New routines for simulating semi-structural models where some equations are
Angelini et al., 2019). The forward-looking terms of the PAC equations can specified using the polynomial adjustment costs (PAC) approach, as in
be computed either using a satellite VAR model, or using full the FRB/US model (see Brayton et al., 2014 and Brayton et al., 2000) and the ECB-BASE model (see
model-consistent expectations. See the `pac_model` command and the Angelini et al., 2019). The forward-looking terms of the PAC equations can
`pac_expectation` operator. be computed either using a satellite VAR model, or using full
model-consistent expectations. See the `pac_model` command and the
- New Method of Moments toolbox that provides functionality to estimate `pac_expectation` operator.
parameters by (i) Generalized Method of Moments (GMM) up to 3rd-order pruned
perturbation approximation or (ii) Simulated Method of Moments (SMM) up to - New Method of Moments toolbox that provides functionality to estimate
any perturbation approximation order. The toolbox is inspired by parameters by (i) Generalized Method of Moments (GMM) up to 3rd-order pruned
replication codes accompanied to Andreasen et al. (2018), Born and Pfeifer perturbation approximation or (ii) Simulated Method of Moments (SMM) up to
(2014), and Mutschler (2018). It is accessible via the new any perturbation approximation order. The toolbox is inspired by
`method_of_moments` command (!1750) and the new `matched_moments` block replication codes accompanied to Andreasen et al. (2018), Born and Pfeifer
(preprocessor!23). Moreover, by default, a new non-linear least squares optimizer (2014), and Mutschler (2018). It is accessible via the new
based on `lsqnonlin` is used for minimizing the method of moments objective function (available under `mode_compute=13`) (3615962a6107e211861d7461e2310ba2d1366369, b4f293bdf29f766dfb3314b48d2407716a7d7025). GMM can further benefit from using Gradient-based optimizers (using `analytic_standard_errors` option and/or passing `'Jacobian','on'` to the optimization options) as the Jacobian of the moment conditions can be computed analytically (a697002a4ee54b28551f3583757b7e0395121db6). `method_of_moments` command (!1750) and the new `matched_moments` block
(preprocessor!23). Moreover, by default, a new non-linear least squares optimizer
- Implementation of the Occbin algorithm by Guerrieri and Iacoviello (2015) (#569, based on `lsqnonlin` is used for minimizing the method of moments objective function (available under `mode_compute=13`) (3615962a6107e211861d7461e2310ba2d1366369, b4f293bdf29f766dfb3314b48d2407716a7d7025). GMM can further benefit from using Gradient-based optimizers (using `analytic_standard_errors` option and/or passing `'Jacobian','on'` to the optimization options) as the Jacobian of the moment conditions can be computed analytically (a697002a4ee54b28551f3583757b7e0395121db6).
preprocessor#68), together with the inversion filter of Cuba-Borda,
Guerrieri, Iacoviello, and Zhong (2019) and the piecewise Kalman filter of Giovannini, - Implementation of the Occbin algorithm by Guerrieri and Iacoviello (2015) (#569,
Pfeiffer, and Ratto (2021) (!1876). It is available via the new block preprocessor#68), together with the inversion filter of Cuba-Borda,
`occbin_constraints` and the new commands `occbin_setup`, `occbin_solver`, Guerrieri, Iacoviello, and Zhong (2019) and the piecewise Kalman filter of Giovannini,
`occbin_graph` and `occbin_write_regimes`. Pfeiffer, and Ratto (2021) (!1876). It is available via the new block
`occbin_constraints` and the new commands `occbin_setup`, `occbin_solver`,
- Stochastic simulations `occbin_graph` and `occbin_write_regimes`.
- `stoch_simul` now supports theoretical moments at `order=3` with - Stochastic simulations
`pruning`. (dfc73576)
- `stoch_simul` now supports theoretical moments at `order=3` with
- `stoch_simul` now reports second moments based on the pruned state space `pruning`. (dfc73576)
if the `pruning` option is set (in previous Dynare releases it would
report a second-order accurate result based on the linear solution). - `stoch_simul` now reports second moments based on the pruned state space
(4cf9f7d1a7fa5dac8f91ff3344a6114c7f15959c) if the `pruning` option is set (in previous Dynare releases it would
report a second-order accurate result based on the linear solution).
- Estimation (4cf9f7d1a7fa5dac8f91ff3344a6114c7f15959c)
- Performance optimization to pruned state space system and Lyapunov - Estimation
solvers. (!1749, !1745, #1737)
- Performance optimization to pruned state space system and Lyapunov
- New option `mh_posterior_mode_estimation` to `estimation` to perform solvers. (!1749, !1745, #1737)
mode-finding by running the MCMC.
(preprocessor@8d14e18cdbaced798c5330e00c7f5df488187cd6) - New option `mh_posterior_mode_estimation` to `estimation` to perform
mode-finding by running the MCMC.
- New heteroskedastic filter and smoother, where shocks standard error may (preprocessor@8d14e18cdbaced798c5330e00c7f5df488187cd6)
*unexpectedly* change in every period. Triggered by
`heteroskedastic_filter` option of the `estimation` command, and - New heteroskedastic filter and smoother, where shocks standard error may
configured via the `heteroskedastic_shocks` block. (!1844, !1851) *unexpectedly* change in every period. Triggered by
`heteroskedastic_filter` option of the `estimation` command, and
- New option `mh_tune_guess` for setting the initial value for configured via the `heteroskedastic_shocks` block. (!1844, !1851)
`mh_tune_jscale`. (!1717)
- New option `mh_tune_guess` for setting the initial value for
- New option `smoother_redux` to `estimation` and `calib_smoother` to `mh_tune_jscale`. (!1717)
trigger computing the Kalman smoother on a restricted state space instead
of the full one. (!1859) - New option `smoother_redux` to `estimation` and `calib_smoother` to
trigger computing the Kalman smoother on a restricted state space instead
- New block `filter_initial_state` for setting the initial condition of the of the full one. (!1859)
Kalman filter/smoother. (7c8f4867)
- New block `filter_initial_state` for setting the initial condition of the
- New option `mh_initialize_from_previous_mcmc` to the `estimation` command Kalman filter/smoother. (7c8f4867)
that allows to pick initial values for a new MCMC from a previous one.
(!1841) - New option `mh_initialize_from_previous_mcmc` to the `estimation` command
that allows to pick initial values for a new MCMC from a previous one.
- The `xls_sheet` option of the `estimation` command now takes a quoted (!1841)
string as value. The former unquoted syntax is still accepted, but no
longer recommended. (preprocessor#67) - The `xls_sheet` option of the `estimation` command now takes a quoted
string as value. The former unquoted syntax is still accepted, but no
- New option `particle_filter_options` to set various particle filter options longer recommended. (preprocessor#67)
- Perfect foresight and extended path - New option `particle_filter_options` to set various particle filter options
- New specialized algorithm in `perfect_foresight_solver` to deal with - Perfect foresight and extended path
purely static problems. (27ee801a6755df021994acf061eb07d7feebf316)
- New specialized algorithm in `perfect_foresight_solver` to deal with
- The `debug` option of `perfect_foresight_solver` provides debugging purely static problems. (27ee801a6755df021994acf061eb07d7feebf316)
information if the Jacobian is singular. (!1834)
- The `debug` option of `perfect_foresight_solver` provides debugging
- In deterministic models (perfect foresight or extended path), exogenous information if the Jacobian is singular. (!1834)
variables with lead/lags are now replaced by auxiliary variables. This
brings those models in line with the transformation done on stochastic - In deterministic models (perfect foresight or extended path), exogenous
models. However note that transformation is still not exactly the same variables with lead/lags are now replaced by auxiliary variables. This
between the two classes of models, because there is no need to take into brings those models in line with the transformation done on stochastic
account the Jensen inequality on the latter. In deterministic models, models. However note that transformation is still not exactly the same
there is a one-to-one mapping between exogenous with lead/lags and between the two classes of models, because there is no need to take into
auxiliaries, while in stochastic models, an auxiliary endogenous may account the Jensen inequality on the latter. In deterministic models,
correspond to a more complex nonlinear expression. there is a one-to-one mapping between exogenous with lead/lags and
(preprocessor@9bca65c7e525a2415fe46b27e8760208b22aba9d) auxiliaries, while in stochastic models, an auxiliary endogenous may
correspond to a more complex nonlinear expression.
- Optimal policy (preprocessor@9bca65c7e525a2415fe46b27e8760208b22aba9d)
- Several improvements to `evaluate_planner_objective`: - Optimal policy
- it now applies a consistent approximation order when doing the - Several improvements to `evaluate_planner_objective`:
computation;
- in addition to the conditional welfare, it now also provides the - it now applies a consistent approximation order when doing the
unconditional welfare; computation;
- in a stochastic context, it now works with higher order approximation - in addition to the conditional welfare, it now also provides the
(only the conditional welfare is available for order ⩾ 3); (!1828, unconditional welfare;
!1866) - in a stochastic context, it now works with higher order approximation
- it now also works in a perfect foresight context. (!1833) (only the conditional welfare is available for order ⩾ 3); (!1828,
!1866)
- `discretionary_policy` is now able to solve nonlinear models (it will - it now also works in a perfect foresight context. (!1833)
then use their first-order approximation, and the analytical steady state
must be provided). (!1792) - `discretionary_policy` is now able to solve nonlinear models (it will
then use their first-order approximation, and the analytical steady state
- Identification must be provided). (!1792)
- New option `schur_vec_tol` to the `identification` command, for setting - Identification
the tolerance level used to find nonstationary variables in Schur
decomposition of the transition matrix. (!1794) - New option `schur_vec_tol` to the `identification` command, for setting
the tolerance level used to find nonstationary variables in Schur
- The `identification` command now supports optimal policy. (!1852) decomposition of the transition matrix. (!1794)
- Shock decomposition - The `identification` command now supports optimal policy. (!1852)
- The `fast_realtime` option of the `realtime_shock_decomposition` command - Shock decomposition
now accepts a vector of integers, which runs the smoother for all the
specified data vintages. (!1842) - The `fast_realtime` option of the `realtime_shock_decomposition` command
now accepts a vector of integers, which runs the smoother for all the
- Macro processor specified data vintages. (!1842)
- Macroprocessor variables can be defined without a value (they are - Macro processor
assigned integer 1). (preprocessor#43)
- Macroprocessor variables can be defined without a value (they are
- LaTeX and JSON outputs assigned integer 1). (preprocessor#43)
- New `nocommutativity` option to the `dynare` command. This option tells - LaTeX and JSON outputs
the preprocessor not to use the commutativity of addition and
multiplication when looking for common subexpressions. As a consequence, - New `nocommutativity` option to the `dynare` command. This option tells
when using this option, equations in various outputs (LaTeX, JSON…) will the preprocessor not to use the commutativity of addition and
appear as the user entered them (without terms or factors swapped). Note multiplication when looking for common subexpressions. As a consequence,
that using this option may have a performance impact on the preprocessing when using this option, equations in various outputs (LaTeX, JSON…) will
stage, though it is likely to be small. appear as the user entered them (without terms or factors swapped). Note
(preprocessor@c9c36c037aa6d6c67f8fbb2236b03729a22e5878) that using this option may have a performance impact on the preprocessing
stage, though it is likely to be small.
- Model-local variables are now substituted out as part of the various (preprocessor@c9c36c037aa6d6c67f8fbb2236b03729a22e5878)
model transformations. This means that they will no longer appear in
LaTeX or in JSON files (for the latter, they are still visible with - Model-local variables are now substituted out as part of the various
`json=parse` or `json=check`). model transformations. This means that they will no longer appear in
LaTeX or in JSON files (for the latter, they are still visible with
- Compilation of the model (`use_dll` option) `json=parse` or `json=check`).
- Block decomposition (option `block` of `model`) can now be used in - Compilation of the model (`use_dll` option)
conjunction with the `use_dll` option.
- Block decomposition (option `block` of `model`) can now be used in
- The `use_dll` option can now directly be given to the `dynare` command. conjunction with the `use_dll` option.
(a9fea692e9d1f4bcdd6a7347a9d17a8b36578a4a)
- The `use_dll` option can now directly be given to the `dynare` command.
- dseries classes (a9fea692e9d1f4bcdd6a7347a9d17a8b36578a4a)
- Routines for converting between time series frequencies (e.g. daily to - dseries classes
monthly) have been added.
- Routines for converting between time series frequencies (e.g. daily to
- dseries now support bi-annual (dseries!37) and daily monthly) have been added.
(dseries@1b897b371e3822306c196b59bf771388b719bebb) frequency data.
- dseries now support bi-annual (dseries!37) and daily
- dseries can now import data from [DBnomics](https://db.nomics.world), via (dseries@1b897b371e3822306c196b59bf771388b719bebb) frequency data.
the DBnomics/mdbnomics> plugin (dseries#44). Note that this does not yet
work under Octave (dbnomics/mdbnomics#10). For the time being, the - dseries can now import data from [DBnomics](https://db.nomics.world), via
DBnomics plugin must be installed separately. the DBnomics/mdbnomics> plugin (dseries#44). Note that this does not yet
work under Octave (dbnomics/mdbnomics#10). For the time being, the
- Misc improvements DBnomics plugin must be installed separately.
- The `histval_file` and `initval_file` commands have been made more - Misc improvements
flexible and now have functionalities similar to the `datafile` option of
the `estimation` command. (#1671) - The `histval_file` and `initval_file` commands have been made more
flexible and now have functionalities similar to the `datafile` option of
- When using the `loglinear` option, the output from Dynare now clearly the `estimation` command. (#1671)
shows that the results reported concern the log of the original variable.
(!1796) - When using the `loglinear` option, the output from Dynare now clearly
shows that the results reported concern the log of the original variable.
- Options `block` and `bytecode` of `model` can now be used in conjunction (!1796)
with model-local variables (variables declared with a pound-sign `#`).
(#1243) - Options `block` and `bytecode` of `model` can now be used in conjunction
with model-local variables (variables declared with a pound-sign `#`).
- The `model_info` command now prints the typology of endogenous variables (#1243)
for non-block decomposed models.
- The `model_info` command now prints the typology of endogenous variables
- The total computing time of a run (in seconds) is now saved to `oo_.time`. for non-block decomposed models.
(preprocessor@c79ae5d4bd6d130026fbb6f1dee69a046eab71b6)
- The total computing time of a run (in seconds) is now saved to `oo_.time`.
- New `notime` option to the `dynare` command, to disable the printing and (preprocessor@c79ae5d4bd6d130026fbb6f1dee69a046eab71b6)
the saving of the total computing time.
(preprocessor@27a8b3b70ed93e45f17e9792d0a23ea781b2b4dc) - New `notime` option to the `dynare` command, to disable the printing and
the saving of the total computing time.
- New `parallel_use_psexec` command-line Windows-specific option for (preprocessor@27a8b3b70ed93e45f17e9792d0a23ea781b2b4dc)
parallel local clusters: when `true` (the default), use `psexec` to spawn
processes; when `false`, use `start`. (!1843) - New `parallel_use_psexec` command-line Windows-specific option for
parallel local clusters: when `true` (the default), use `psexec` to spawn
- when compiling from source, it is no longer necessary to pass the processes; when `false`, use `start`. (!1843)
`MATLAB_VERSION` version to the configure script; the version is now
automatically detected. - when compiling from source, it is no longer necessary to pass the
`MATLAB_VERSION` version to the configure script; the version is now
- Different versions of Dynare are now available as [Docker Containers](https://hub.docker.com/r/dynare/dynare). automatically detected.
- Incompatible changes - Different versions of Dynare are now available as [Docker Containers](https://hub.docker.com/r/dynare/dynare).
- :warning: Dynare will now generally save its output in the - Incompatible changes
`MODFILENAME/Output` folder (or the `DIRNAME/Output` folder if the
`dirname` option was specified) instead of the main directory. Most - :warning: Dynare will now generally save its output in the
importantly, this concerns the `_results.mat` and the `_mode.mat` files. `MODFILENAME/Output` folder (or the `DIRNAME/Output` folder if the
`dirname` option was specified) instead of the main directory. Most
- :warning: The structure of the `oo_.planner_objective` field has been importantly, this concerns the `_results.mat` and the `_mode.mat` files.
changed, in relation to the improvements to `evaluate_planner_objective`.
- :warning: The structure of the `oo_.planner_objective` field has been
- :warning: The preprocessor binary has been renamed to changed, in relation to the improvements to `evaluate_planner_objective`.
`dynare-preprocessor`, and is now located in a dedicated `preprocessor`
subdirectory. - :warning: The preprocessor binary has been renamed to
`dynare-preprocessor`, and is now located in a dedicated `preprocessor`
- :warning: The `dynare` command no longer accepts `output=dynamic` and subdirectory.
`output=first` (those options actually had no effect).
- :warning: The `dynare` command no longer accepts `output=dynamic` and
- Platform requirements `output=first` (those options actually had no effect).
- :warning: The minimal required MATLAB version is now R2014a (8.3). (#1713) - Platform requirements
- :warning: The 32-bit support has been dropped for Windows. (#1713) - :warning: The minimal required MATLAB version is now R2014a (8.3). (#1713)
- References - :warning: The 32-bit support has been dropped for Windows. (#1713)
- Andreasen et al. (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” Review of Economic Studies, 85(1), pp. 1-49. - References
- Angelini, Bokan, Christoffel, Ciccarelli and Zimic (2019): “Introducing ECB-BASE: The blueprint
of the new ECB semi-structural model for the euro area”, ECB Working Paper no. 2315 - Andreasen et al. (2018): “The Pruned State-Space System for Non-Linear DSGE Models: Theory and Empirical Applications,” Review of Economic Studies, 85(1), pp. 1-49.
- Born and Pfeifer (2014): “Policy risk and the business cycle”, Journal of Monetary Economics, 68, 68-85. - Angelini, Bokan, Christoffel, Ciccarelli and Zimic (2019): “Introducing ECB-BASE: The blueprint
- Brayton, Davis and Tulip (2000): “Polynomial Adjustment Costs in FRB/US”, Unpublished manuscript. of the new ECB semi-structural model for the euro area”, ECB Working Paper no. 2315
- Brayton, Laubach and Reifschneider (2014): “The FRB/US Model: A Tool for Macroeconomic Policy Analysis,” FEDS Notes. Washington: Board of Governors of the Federal Reserve System, https://doi.org/10.17016/2380-7172.0012 - Born and Pfeifer (2014): “Policy risk and the business cycle”, Journal of Monetary Economics, 68, 68-85.
- Cuba-Borda, Guerrieri, Iacoviello, and Zhong (2019): “Likelihood evaluation of models with occasionally binding constraints”, Journal of Applied Econometrics, 34(7), 1073-1085 - Brayton, Davis and Tulip (2000): “Polynomial Adjustment Costs in FRB/US”, Unpublished manuscript.
- Giovannini, Pfeiffer and Ratto (2021): “Efficient and robust inference of models with occasionally binding constraints,” Working Papers 2021-03, Joint Research Centre, European Commission - Brayton, Laubach and Reifschneider (2014): “The FRB/US Model: A Tool for Macroeconomic Policy Analysis,” FEDS Notes. Washington: Board of Governors of the Federal Reserve System, https://doi.org/10.17016/2380-7172.0012
- Guerrieri and Iacoviello (2015): “OccBin: A toolkit for solving dynamic models with occasionally binding constraints easily,” Journal of Monetary Economics, 70, 22–38. - Cuba-Borda, Guerrieri, Iacoviello, and Zhong (2019): “Likelihood evaluation of models with occasionally binding constraints”, Journal of Applied Econometrics, 34(7), 1073-1085
- Mutschler (2018): “Higher-order statistics for DSGE models”, Econometrics and Statistics, 6(C), 44-56. - Giovannini, Pfeiffer and Ratto (2021): “Efficient and robust inference of models with occasionally binding constraints,” Working Papers 2021-03, Joint Research Centre, European Commission
- Guerrieri and Iacoviello (2015): “OccBin: A toolkit for solving dynamic models with occasionally binding constraints easily,” Journal of Monetary Economics, 70, 22–38.
- Mutschler (2018): “Higher-order statistics for DSGE models”, Econometrics and Statistics, 6(C), 44-56.
Dynare 4.6
----------
Dynare 4.6
- Stochastic simulations ----------
- The perturbation method is now available at an arbitrary approximation - Stochastic simulations
order. In other words, the `order` option of `stoch_simul` accepts an
arbitrary positive integer (of course, up to some model-specific - The perturbation method is now available at an arbitrary approximation
computational limit). (#217) order. In other words, the `order` option of `stoch_simul` accepts an
arbitrary positive integer (of course, up to some model-specific
- New option `filtered_theoretical_moments_grid` of `stoch_simul`, that computational limit). (#217)
supersedes `hp_ngrid`.
- New option `filtered_theoretical_moments_grid` of `stoch_simul`, that
- Estimation supersedes `hp_ngrid`.
- Nonlinear estimation is now also available at an arbitrary approximation - Estimation
order. In other words, the `order` option of `estimation` accepts an
arbitrary positive integer (of course, up to some model-specific - Nonlinear estimation is now also available at an arbitrary approximation
computational limit). (#1673) order. In other words, the `order` option of `estimation` accepts an
arbitrary positive integer (of course, up to some model-specific
- Various improvements to particle filters. computational limit). (#1673)
- It is now possible to estimate models under optimal policy (see below). - Various improvements to particle filters.
- Variance decomposition of observables now accounts for measurement error. - It is now possible to estimate models under optimal policy (see below).
(#1486)
- Variance decomposition of observables now accounts for measurement error.
- New option `mh_tune_jscale` of `estimation` command for tuning the scale (#1486)
parameter of the proposal distribution of the Random Walk Metropolis
Hastings. - New option `mh_tune_jscale` of `estimation` command for tuning the scale
parameter of the proposal distribution of the Random Walk Metropolis
- Added debugging info when parameters take a `NaN` or `Inf` value. (!1538) Hastings.
- Option `mode_compute=1` is now available under Octave. - Added debugging info when parameters take a `NaN` or `Inf` value. (!1538)
- Perfect foresight and extended path - Option `mode_compute=1` is now available under Octave.
- A significant speed improvement should be noted on large models (when - Perfect foresight and extended path
neither `bytecode` nor `block` option is used). The stacked problem is
now constructed using a dedicated machine-compiled library that greatly - A significant speed improvement should be noted on large models (when
speeds up the process (in particular, the time spent in that step can neither `bytecode` nor `block` option is used). The stacked problem is
become negligible when the `use_dll` option is used). now constructed using a dedicated machine-compiled library that greatly
speeds up the process (in particular, the time spent in that step can
- New options `print` and `noprint` of `perfect_foresight_solver` command. become negligible when the `use_dll` option is used).
(#1647)
- New options `print` and `noprint` of `perfect_foresight_solver` command.
- Option `stack_solve_algo=2` is now available under Octave. (#1647)
- Steady state - Option `stack_solve_algo=2` is now available under Octave.
- Option `solve_algo=7` is now available under Octave. - Steady state
- Optimal policy - Option `solve_algo=7` is now available under Octave.
- The `ramsey_policy` command is now deprecated. It is superseded by - Optimal policy
successive calls to `ramsey_model`, `stoch_simul`, and
`evaluate_planner_objective` (in this order). (#1678) - The `ramsey_policy` command is now deprecated. It is superseded by
successive calls to `ramsey_model`, `stoch_simul`, and
- It is now possible to estimate a model under optimal policy (either `evaluate_planner_objective` (in this order). (#1678)
Ramsey or discretionary) by running the `estimation` command after either
`ramsey_model` or `discretionary_policy`. It is however not yet possible - It is now possible to estimate a model under optimal policy (either
to estimate parameters that appear in the discount factor of the social Ramsey or discretionary) by running the `estimation` command after either
planner. (#1173) `ramsey_model` or `discretionary_policy`. It is however not yet possible
to estimate parameters that appear in the discount factor of the social
- Discretionary policy returns a more informative error message when the planner. (#1173)
objective has nonzero derivatives with respect to some variables. (!1468)
- Discretionary policy returns a more informative error message when the
- Identification (!1648, !1689, !1683, !1711) objective has nonzero derivatives with respect to some variables. (!1468)
- Added minimal system identification check of *Komunjer and Ng (2011)*. - Identification (!1648, !1689, !1683, !1711)
- Added spectrum identification check of *Qu and Tkachenko (2012)*. - Added minimal system identification check of *Komunjer and Ng (2011)*.
- Identification is now also available for approximation orders 2 and 3 - Added spectrum identification check of *Qu and Tkachenko (2012)*.
with either analytical or numerical parameter derivatives. The relevant
moments and spectrum are computed from the pruned state space system - Identification is now also available for approximation orders 2 and 3
as in *Mutschler (2015)*. with either analytical or numerical parameter derivatives. The relevant
moments and spectrum are computed from the pruned state space system
- All tests (moments, spectrum, minimal system, strength) can be turned as in *Mutschler (2015)*.
off.
- All tests (moments, spectrum, minimal system, strength) can be turned
- More numerical options can be changed by the user. off.
- Improved printing and storage (same folder) of results. - More numerical options can be changed by the user.
- Sensitivity analysis - Improved printing and storage (same folder) of results.
- New `diffuse_filter` option to the `dynare_sensitivity` command. (!1562) - Sensitivity analysis
- Arbitrary expressions can now be passed for the interval boundaries in - New `diffuse_filter` option to the `dynare_sensitivity` command. (!1562)
`irf_calibration` and `moment_calibration`. :warning: This breaks the
previous syntax, requiring that the lower/upper bounds be separated by - Arbitrary expressions can now be passed for the interval boundaries in
commas. (preprocessor#12) `irf_calibration` and `moment_calibration`. :warning: This breaks the
previous syntax, requiring that the lower/upper bounds be separated by
- Forecasting and smoothing commas. (preprocessor#12)
- In `conditional_forecast_paths`, it is no longer required that all - Forecasting and smoothing
constrained paths be of the same length. There may now be a different
number of controlled variables at each period. In that case, the order of - In `conditional_forecast_paths`, it is no longer required that all
declaration of endogenous controlled variables and of `controlled_varexo` constrained paths be of the same length. There may now be a different
matters: if the second endogenous variable is controlled for less periods number of controlled variables at each period. In that case, the order of
than the first one, the second `controlled_varexo` isn't set for the last declaration of endogenous controlled variables and of `controlled_varexo`
periods. (#699) matters: if the second endogenous variable is controlled for less periods
than the first one, the second `controlled_varexo` isn't set for the last
- New option `parameter_set` to the `calib_smoother` command (#1477) periods. (#699)
- :warning: The results of `conditional_forecast` command is now saved in - New option `parameter_set` to the `calib_smoother` command (#1477)
`oo_` (used to be in a file; see #1672)
- :warning: The results of `conditional_forecast` command is now saved in
- Shock decomposition `oo_` (used to be in a file; see #1672)
- Added `fast_realtime` option to real time shock decomposition (deactivated - Shock decomposition
by default, runs the smoother only twice: once for the last in-sample and
once for the last out-of-sample data point) (!1563) and (!1552) - Added `fast_realtime` option to real time shock decomposition (deactivated
by default, runs the smoother only twice: once for the last in-sample and
- New `diff`, `flip`, `max_nrows`, `plot_init_date` and `plot_end_date` once for the last out-of-sample data point) (!1563) and (!1552)
options to `plot_shock_decomposition` (#1649, !1655,
74e7c12d9d4f802cb687f6f1f122330fa5c4a2f4) - New `diff`, `flip`, `max_nrows`, `plot_init_date` and `plot_end_date`
options to `plot_shock_decomposition` (#1649, !1655,
- New `initial_decomposition_decomposition` command, for computing and 74e7c12d9d4f802cb687f6f1f122330fa5c4a2f4)
plotting the decomposition of the effect of smoothed initial conditions of
state variables (#1586) - New `initial_decomposition_decomposition` command, for computing and
plotting the decomposition of the effect of smoothed initial conditions of
- New `squeeze_shock_decomposition` command, for removing decompositions of state variables (#1586)
variables that are not of interest (!1655)
- New `squeeze_shock_decomposition` command, for removing decompositions of
- New `with_epilogue` option (common to `shock_decomposition`, variables that are not of interest (!1655)
`realtime_shock_decomposition` and `initial_condition_decomposition`)
(!1688) - New `with_epilogue` option (common to `shock_decomposition`,
`realtime_shock_decomposition` and `initial_condition_decomposition`)
- New `init2shocks` block to attribute initial conditions to shocks (#1650) (!1688)
- Macro processor - New `init2shocks` block to attribute initial conditions to shocks (#1650)
- New object types: real (supersedes integers), boolean (distinct from - Macro processor
integers), tuple, user-defined function.
- New object types: real (supersedes integers), boolean (distinct from
- New operators: various mathematical functions, set operations on arrays integers), tuple, user-defined function.
(union, intersection, difference, cartesian power and product), type
checking and conversion. - New operators: various mathematical functions, set operations on arrays
(union, intersection, difference, cartesian power and product), type
- Added support for comprehensions (*e.g.* the set containing the squares of checking and conversion.
all even numbers between 1 and 5 can be constructed with `[ i^2 for i in
1:5 when mod(i,2) == 0]`). - Added support for comprehensions (*e.g.* the set containing the squares of
all even numbers between 1 and 5 can be constructed with `[ i^2 for i in
- User-defined functions can be declared using the `@#define` operator (*e.g.* 1:5 when mod(i,2) == 0]`).
`@#define f(x) = 2*x^2+3*x+5`).
- User-defined functions can be declared using the `@#define` operator (*e.g.*
- `@#elseif`-clauses are now supported in conditional statements. `@#define f(x) = 2*x^2+3*x+5`).
- `@#for` loops can iterate over several variables at the same time (*e.g.* - `@#elseif`-clauses are now supported in conditional statements.
`@#for (i,j) in X`, where `X` is an array containing tuples of size 2).
- `@#for` loops can iterate over several variables at the same time (*e.g.*
- Added the possibility to exclude some elements when iterating over `@#for` `@#for (i,j) in X`, where `X` is an array containing tuples of size 2).
loops (*e.g.* `@#for i in 1:5 when mod(i,2) == 0` iterates over all even
numbers between 1 and 5). - Added the possibility to exclude some elements when iterating over `@#for`
loops (*e.g.* `@#for i in 1:5 when mod(i,2) == 0` iterates over all even
- A `defined()` function allows testing whether macro variables have been numbers between 1 and 5).
defined.
- A `defined()` function allows testing whether macro variables have been
- Empty arrays (with the `[]` syntax) are now possible (#707). defined.
- Arrays of arrays are now supported. - Empty arrays (with the `[]` syntax) are now possible (#707).
- New macro directives `@#echomacrovars` and `@#echomacrovars(save)` for - Arrays of arrays are now supported.
displaying or saving the values of all macro-variables. (#1564)
- New macro directives `@#echomacrovars` and `@#echomacrovars(save)` for
- Inline comments are now supported. displaying or saving the values of all macro-variables. (#1564)
- :warning: All division operations are now done with doubles (as opposed to - Inline comments are now supported.
integers). To achieve the old functionality, use the new `floor` operator.
- :warning: All division operations are now done with doubles (as opposed to
- :warning: Colon syntax used to require braces around it to create an array integers). To achieve the old functionality, use the new `floor` operator.
(*e.g.* `[1:3]` would create `[1,2,3]`). Now this is not necessary (`1:3`
creates `[1,2,3]` while `[1:3]` would create `[[1,2,3]]`). - :warning: Colon syntax used to require braces around it to create an array
(*e.g.* `[1:3]` would create `[1,2,3]`). Now this is not necessary (`1:3`
- :warning: Previously, printing a boolean would print `1` or `0`. Now, it creates `[1,2,3]` while `[1:3]` would create `[[1,2,3]]`).
prints `true` or `false`. To achieve the old functionality, you must cast
it to a real, *e.g.* `@{(real)(1!=0)}`. - :warning: Previously, printing a boolean would print `1` or `0`. Now, it
prints `true` or `false`. To achieve the old functionality, you must cast
- LaTeX output it to a real, *e.g.* `@{(real)(1!=0)}`.
- New command `write_latex_steady_state_model`. (#1496) - LaTeX output
- New option `planner_discount_latex_name` of `ramsey_model` and - New command `write_latex_steady_state_model`. (#1496)
`discretionary_policy`. (#1686)
- New option `planner_discount_latex_name` of `ramsey_model` and
- New command `model_local_variable` command for assigning a LaTeX name to `discretionary_policy`. (#1686)
model-local variables. (#563)
- New command `model_local_variable` command for assigning a LaTeX name to
- The `write_latex_static_model` and `write_latex_original_model` commands model-local variables. (#563)
now support the `write_equation_tags` option. (#1431)
- The `write_latex_static_model` and `write_latex_original_model` commands
- Compilation of the model (`use_dll` option) made easier and faster now support the `write_equation_tags` option. (#1431)
- Under Windows, it is no longer necessary to manually install the - Compilation of the model (`use_dll` option) made easier and faster
compiler, since the latter is now shipped by the Dynare installer.
- Under Windows, it is no longer necessary to manually install the
- Under macOS, the Dynare installer now automatically downloads and compiler, since the latter is now shipped by the Dynare installer.
installs the compiler.
- Under macOS, the Dynare installer now automatically downloads and
- It is no longer necessary to configure MATLAB to let it know where the installs the compiler.
compiler is, since the compilation is now done by the preprocessor.
- It is no longer necessary to configure MATLAB to let it know where the
- The compilation phase is now faster on large models (this has been compiler is, since the compilation is now done by the preprocessor.
achieved by disabling a few time-consuming and not-so-useful optimization
passes otherwise done by the compiler). - The compilation phase is now faster on large models (this has been
achieved by disabling a few time-consuming and not-so-useful optimization
- New `compilation_setup` block for specifying a custom compiler or custom passes otherwise done by the compiler).
compilation flags.
- New `compilation_setup` block for specifying a custom compiler or custom
- Model, variables and parameters declaration compilation flags.
- New syntax to declare model variables and parameters on-the-fly in the - Model, variables and parameters declaration
`model` block. To do this, simply follow the symbol name with a vertical
line (`|`, pipe character) and either an `e`, an `x`, or a `p`. For - New syntax to declare model variables and parameters on-the-fly in the
example, to declare a parameter named `alpha` in the model block, you `model` block. To do this, simply follow the symbol name with a vertical
could write `alpha|p` directly in an equation where it appears. line (`|`, pipe character) and either an `e`, an `x`, or a `p`. For
Similarly, to declare an endogenous variable `c` in the model block you example, to declare a parameter named `alpha` in the model block, you
could write `c|e`. (#1386) could write `alpha|p` directly in an equation where it appears.
Similarly, to declare an endogenous variable `c` in the model block you
- New syntax to declare model variable and parameters on-the-fly in could write `c|e`. (#1386)
equation tags. In the tag, simply state the type of variable to be
declared (`endogenous`, `exogenous`, or `parameter` followed by an equal - New syntax to declare model variable and parameters on-the-fly in
sign and the variable name in single quotes. Hence, to declare a variable equation tags. In the tag, simply state the type of variable to be
`c` as endogenous in an equation tag, you can type `[endogenous='c']`. declared (`endogenous`, `exogenous`, or `parameter` followed by an equal
(see 01d5a1308244ffb5a85e7f8f1d6a9e104b458715) sign and the variable name in single quotes. Hence, to declare a variable
`c` as endogenous in an equation tag, you can type `[endogenous='c']`.
- New `epilogue` block for computing output variables of interest that may (see 01d5a1308244ffb5a85e7f8f1d6a9e104b458715)
not be necessarily defined in the model (*e.g.* various kinds of
real/nominal shares or relative prices, or annualized variables out of a - New `epilogue` block for computing output variables of interest that may
quarterly model). not be necessarily defined in the model (*e.g.* various kinds of
real/nominal shares or relative prices, or annualized variables out of a
- Command-line options quarterly model).
- Added the possibility to declare Dynare command-line options in the `.mod` - Command-line options
file.
- Added the possibility to declare Dynare command-line options in the `.mod`
- New option `nopreprocessoroutput` to disable printing of messages from file.
the preprocessor. (#1390)
- New option `nopreprocessoroutput` to disable printing of messages from
- It is now possible to assign an arbitrary macro-expression to a the preprocessor. (#1390)
macro-variable defined on the command-line, using the `-D` syntax.
(#1696) - It is now possible to assign an arbitrary macro-expression to a
macro-variable defined on the command-line, using the `-D` syntax.
- New option `linemacro` to revert to the old format of the (#1696)
macro-processed file (see below).
- New option `linemacro` to revert to the old format of the
- Preprocessor outputs and inputs macro-processed file (see below).
- Added JSON output to the preprocessor. A representation of the model file - Preprocessor outputs and inputs
and the whole content of the `.mod` file is saved in `.json` files.
These JSON files can be easily parsed from any language (C++, Fortran, - Added JSON output to the preprocessor. A representation of the model file
Python, Julia, MATLAB, Octave…). This new feature opens the possibility to and the whole content of the `.mod` file is saved in `.json` files.
develop alternative back-ends for the Dynare language. These JSON files can be easily parsed from any language (C++, Fortran,
Python, Julia, MATLAB, Octave…). This new feature opens the possibility to
- :warning: Most files generated by the preprocessor are now grouped under develop alternative back-ends for the Dynare language.
two subdirectories. Assuming your file is `FILENAME.mod`, then M-files
and MEX-files will be under `+FILENAME/`, while other output (JSON, - :warning: Most files generated by the preprocessor are now grouped under
LaTeX, source code for the MEX files) will be under `FILENAME/`. two subdirectories. Assuming your file is `FILENAME.mod`, then M-files
and MEX-files will be under `+FILENAME/`, while other output (JSON,
- The macro-generated output is now more readable (no more line numbers and LaTeX, source code for the MEX files) will be under `FILENAME/`.
empty lines). The old behaviour can be restored using the `linemacro`
option (see above). - The macro-generated output is now more readable (no more line numbers and
empty lines). The old behaviour can be restored using the `linemacro`
- Ability to call the preprocessor by passing the `.mod` file as a string option (see above).
argument from the macOS or GNU/Linux command line. (#1509)
- Ability to call the preprocessor by passing the `.mod` file as a string
- dseries classes argument from the macOS or GNU/Linux command line. (#1509)
- New functionalities and efficiency improvements. - dseries classes
- Complete rewrite using the new `classdef` syntax and exploiting in place - New functionalities and efficiency improvements.
modifications when possible.
- Complete rewrite using the new `classdef` syntax and exploiting in place
- Integration of the `dates` classes within `dseries`. modifications when possible.
- Reporting classes - Integration of the `dates` classes within `dseries`.
- Automatically create titlepage with page numbers/page titles. - Reporting classes
- Allow for the removal of headers and footers from a given page. - Automatically create titlepage with page numbers/page titles.
- Allow user to set page number. - Allow for the removal of headers and footers from a given page.
- Split up report output. Create new files for the preamble, the body of - Allow user to set page number.
the report, and each individual page of the report.
- Split up report output. Create new files for the preamble, the body of
- The classes have been converted to the new `classdef` syntax. the report, and each individual page of the report.
- Misc - The classes have been converted to the new `classdef` syntax.
- External functions can be located in MATLAB/Octave namespaces. (#1639) - Misc
- Improvements to the balanced growth path test that is performed after - External functions can be located in MATLAB/Octave namespaces. (#1639)
Dynare has detrended the model (given the trends on variables declared by
the user): the default tolerance has been raised, and a different value - Improvements to the balanced growth path test that is performed after
can be set with new option `balanced_growth_test_tol` to the `model` Dynare has detrended the model (given the trends on variables declared by
block; as a consequence, failing the test is now an error again. (#1389) the user): the default tolerance has been raised, and a different value
can be set with new option `balanced_growth_test_tol` to the `model`
- New collection of MATLAB/Octave utilities to retrieve and alter objects: block; as a consequence, failing the test is now an error again. (#1389)
`get_irf`, `get_mean`, `get_shock_stderr_by_name`, `get_smooth`,
`get_update`, `set_shock_stderr_value`. (!1686) - New collection of MATLAB/Octave utilities to retrieve and alter objects:
`get_irf`, `get_mean`, `get_shock_stderr_by_name`, `get_smooth`,
- :warning: Previously, when some MEX files were missing, Dynare would `get_update`, `set_shock_stderr_value`. (!1686)
automatically fall back to slower M-file functional alternative; this is
no longer the case. It is however still possible to manually add these - :warning: Previously, when some MEX files were missing, Dynare would
alternatives in the MATLAB/Octave path (they are located under automatically fall back to slower M-file functional alternative; this is
`matlab/missing/mex`; this only applies to the `mjdgges`, `gensylv`, no longer the case. It is however still possible to manually add these
`A_times_B_kronecker_C`, `sparse_hessian_times_B_kronecker_C` and alternatives in the MATLAB/Octave path (they are located under
`local_state_space_iteration_2` DLLs). `matlab/missing/mex`; this only applies to the `mjdgges`, `gensylv`,
`A_times_B_kronecker_C`, `sparse_hessian_times_B_kronecker_C` and
- References `local_state_space_iteration_2` DLLs).
- Komunjer, I. and S. Ng (2011), “[Dynamic Identification of Dynamic - References
Stochastic General Equilibrium
Models](https://www.onlinelibrary.wiley.com/doi/abs/10.3982/ECTA8916),” - Komunjer, I. and S. Ng (2011), “[Dynamic Identification of Dynamic
*Econometrica*, 79(6), 1995–2032 Stochastic General Equilibrium
Models](https://www.onlinelibrary.wiley.com/doi/abs/10.3982/ECTA8916),”
- Qu, Z. and D. Tkachenko (2012), “[Identification and frequency domain *Econometrica*, 79(6), 1995–2032
quasi‐maximum likelihood estimation of linearized dynamic stochastic
general equilibrium - Qu, Z. and D. Tkachenko (2012), “[Identification and frequency domain
models](https://onlinelibrary.wiley.com/doi/abs/10.3982/QE126),” quasi‐maximum likelihood estimation of linearized dynamic stochastic
*Quantitative Economics*, 3(1), 95–132 general equilibrium
models](https://onlinelibrary.wiley.com/doi/abs/10.3982/QE126),”
- Mutschler, W. (2015), “[Identification of DSGE models—The effect of *Quantitative Economics*, 3(1), 95–132
higher-order approximation and
pruning](https://www.sciencedirect.com/science/article/pii/S0165188915000731),” - Mutschler, W. (2015), “[Identification of DSGE models—The effect of
*Journal of Economic Dynamics and Control*, 56, 34–54 higher-order approximation and
pruning](https://www.sciencedirect.com/science/article/pii/S0165188915000731),”
*Journal of Economic Dynamics and Control*, 56, 34–54
Dynare 4.5
----------
Dynare 4.5
- Ramsey policy ----------
+ Added command `ramsey_model` that builds the expanded model with - Ramsey policy
FOC conditions for the planner's problem but doesn't perform any
computation. Useful to compute Ramsey policy in a perfect + Added command `ramsey_model` that builds the expanded model with
foresight model and for estimation, FOC conditions for the planner's problem but doesn't perform any
computation. Useful to compute Ramsey policy in a perfect
+ `ramsey_policy` accepts multipliers in its variable list and foresight model and for estimation,
displays results for them (#1355).
+ `ramsey_policy` accepts multipliers in its variable list and
displays results for them (#1355).
- Perfect foresight models
+ New commands `perfect_foresight_setup` (for preparing the - Perfect foresight models
simulation) and `perfect_foresight_solver` (for computing it). The
old `simul` command still exist and is now an alias for + New commands `perfect_foresight_setup` (for preparing the
`perfect_foresight_setup` + `perfect_foresight_solver`. It is no simulation) and `perfect_foresight_solver` (for computing it). The
longer possible to manipulate by hand the contents of old `simul` command still exist and is now an alias for
`oo_.exo_simul` when using `simul`. People who want to do `perfect_foresight_setup` + `perfect_foresight_solver`. It is no
it must first call `perfect_foresight_setup`, then do the longer possible to manipulate by hand the contents of
manipulations, then call `perfect_foresight_solver`, `oo_.exo_simul` when using `simul`. People who want to do
it must first call `perfect_foresight_setup`, then do the
+ By default, the perfect foresight solver will try a homotopy manipulations, then call `perfect_foresight_solver`,
method if it fails to converge at the first try. The old behavior
can be restored with the `no_homotopy` option, + By default, the perfect foresight solver will try a homotopy
method if it fails to converge at the first try. The old behavior
+ New option `stack_solve_algo=7` that allows specifying a can be restored with the `no_homotopy` option,
`solve_algo` solver for solving the model,
+ New option `stack_solve_algo=7` that allows specifying a
+ New option `solve_algo` that allows specifying a solver for `solve_algo` solver for solving the model,
solving the model when using `stack_solve_algo=7`,
+ New option `solve_algo` that allows specifying a solver for
+ New option `lmmcp` that solves the model via a Levenberg-Marquardt solving the model when using `stack_solve_algo=7`,
mixed complementarity problem (LMMCP) solver,
+ New option `lmmcp` that solves the model via a Levenberg-Marquardt
+ New option `robust_lin_solve` that triggers the use of a robust mixed complementarity problem (LMMCP) solver,
linear solver for the default `solve_algo=4`,
+ New option `robust_lin_solve` that triggers the use of a robust
+ New options `tolf` and `tolx` to control termination criteria of linear solver for the default `solve_algo=4`,
solvers,
+ New options `tolf` and `tolx` to control termination criteria of
+ New option `endogenous_terminal_period` to `simul`, solvers,
+ Added the possibility to set the initial condition of the + New option `endogenous_terminal_period` to `simul`,
(stochastic) extended path simulations with the histval block.
+ Added the possibility to set the initial condition of the
(stochastic) extended path simulations with the histval block.
- Optimal simple rules
+ Saves the optimal value of parameters to `oo_.osr.optim_params`, - Optimal simple rules
+ New block `osr_params_bounds` allows specifying bounds for the + Saves the optimal value of parameters to `oo_.osr.optim_params`,
estimated parameters,
+ New block `osr_params_bounds` allows specifying bounds for the
+ New option `opt_algo` allows selecting different optimizers while estimated parameters,
the new option `optim` allows specifying the optimizer options,
+ New option `opt_algo` allows selecting different optimizers while
+ The `osr` command now saves the names, bounds, and indices for the the new option `optim` allows specifying the optimizer options,
estimated parameters as well as the indices and weights of the
variables entering the objective function into `M_.osr`. + The `osr` command now saves the names, bounds, and indices for the
estimated parameters as well as the indices and weights of the
variables entering the objective function into `M_.osr`.
- Forecasts and Smoothing
+ The smoother and forecasts take uncertainty about trends and means - Forecasts and Smoothing
into account (#679),
+ The smoother and forecasts take uncertainty about trends and means
+ Forecasts accounting for measurement error are now saved in fields into account (#679),
of the form `HPDinf_ME` and `HPDsup_ME` (#853),
+ Forecasts accounting for measurement error are now saved in fields
+ New fields `oo_.Smoother.Trend` and `oo_.Smoother.Constant` that of the form `HPDinf_ME` and `HPDsup_ME` (#853),
save the trend and constant parts of the smoothed variables,
+ New fields `oo_.Smoother.Trend` and `oo_.Smoother.Constant` that
+ new field `oo_.Smoother.TrendCoeffs` that stores the trend save the trend and constant parts of the smoothed variables,
coefficients.
+ new field `oo_.Smoother.TrendCoeffs` that stores the trend
+ Rolling window forecasts allowed in `estimation` command by coefficients.
passing a vector to `first_obs`,
+ Rolling window forecasts allowed in `estimation` command by
+ The `calib_smoother` command now accepts the `loglinear`, passing a vector to `first_obs`,
`prefilter`, `first_obs` and `filter_decomposition` options.
+ The `calib_smoother` command now accepts the `loglinear`,
`prefilter`, `first_obs` and `filter_decomposition` options.
- Estimation
+ New options: `logdata`, `consider_all_endogenous`, - Estimation
`consider_only_observed`, `posterior_max_subsample_draws` (#567),
`mh_conf_sig` (#598), `diffuse_kalman_tol` (!865), `dirname` (#910), `nodecomposition` + New options: `logdata`, `consider_all_endogenous`,
`consider_only_observed`, `posterior_max_subsample_draws` (#567),
+ `load_mh_file` and `mh_recover` now try to load chain's proposal density (!1230), `mh_conf_sig` (#598), `diffuse_kalman_tol` (!865), `dirname` (#910), `nodecomposition`
+ New option `load_results_after_load_mh` that allows loading some + `load_mh_file` and `mh_recover` now try to load chain's proposal density (!1230),
posterior results from a previous run if no new MCMC draws are
added (!1352), + New option `load_results_after_load_mh` that allows loading some
posterior results from a previous run if no new MCMC draws are
+ New option `posterior_nograph` that suppresses the generation of added (!1352),
graphs associated with Bayesian IRFs, posterior smoothed objects,
and posterior forecasts, + New option `posterior_nograph` that suppresses the generation of
graphs associated with Bayesian IRFs, posterior smoothed objects,
+ Saves the posterior density at the mode in and posterior forecasts,
`oo_.posterior.optimization.log_density`,
+ Saves the posterior density at the mode in
+ The `filter_covariance` option now also works with posterior `oo_.posterior.optimization.log_density`,
sampling like Metropolis-Hastings,
+ The `filter_covariance` option now also works with posterior
+ New option `no_posterior_kernel_density` to suppress computation sampling like Metropolis-Hastings,
of kernel density of posterior objects,
+ New option `no_posterior_kernel_density` to suppress computation
+ Recursive estimation and forecasting now provides the individual of kernel density of posterior objects,
`oo_` structures for each sample in `oo_recursive_`,
+ Recursive estimation and forecasting now provides the individual
+ The `trace_plot` command can now plot the posterior density, `oo_` structures for each sample in `oo_recursive_`,
+ New command `generate_trace_plots` allows generating all trace + The `trace_plot` command can now plot the posterior density,
plots for one chain (!1239),
+ New command `generate_trace_plots` allows generating all trace
+ New commands `prior_function` and `posterior_function` that plots for one chain (!1239),
execute a user-defined function on parameter draws from the
prior/posterior distribution (!871), + New commands `prior_function` and `posterior_function` that
execute a user-defined function on parameter draws from the
+ New option `huge_number` for replacement of infinite bounds with prior/posterior distribution (!871),
large number during `mode_compute`,
+ New option `huge_number` for replacement of infinite bounds with
+ New option `posterior_sampling_method` allows selecting the new large number during `mode_compute`,
posterior sampling options:
`tailored_random_block_metropolis_hastings` (Tailored randomized + New option `posterior_sampling_method` allows selecting the new
block (TaRB) Metropolis-Hastings), `slice` (Slice sampler), posterior sampling options:
`independent_metropolis_hastings` (Independent `tailored_random_block_metropolis_hastings` (Tailored randomized
Metropolis-Hastings), block (TaRB) Metropolis-Hastings), `slice` (Slice sampler),
`independent_metropolis_hastings` (Independent
+ New option `posterior_sampler_options` that allow controlling the Metropolis-Hastings),
options of the `posterior_sampling_method`; its `scale_file`-option
pair allows loading the `_mh_scale.mat`-file storing the tuned + New option `posterior_sampler_options` that allow controlling the
scale factor from a previous run of `mode_compute=6` (!1223), options of the `posterior_sampling_method`; its `scale_file`-option
pair allows loading the `_mh_scale.mat`-file storing the tuned
+ New option `raftery_lewis_diagnostics` that computes Raftery/Lewis scale factor from a previous run of `mode_compute=6` (!1223),
(1992) convergence diagnostics,
+ New option `raftery_lewis_diagnostics` that computes Raftery/Lewis
+ New option `fast_kalman_filter` that provides fast Kalman filter (1992) convergence diagnostics,
using Chandrasekhar recursions as described in Ed Herbst (2015),
+ New option `fast_kalman_filter` that provides fast Kalman filter
+ The `dsge_var` option now saves results at the posterior mode into using Chandrasekhar recursions as described in Ed Herbst (2015),
`oo_.dsge_var`,
+ The `dsge_var` option now saves results at the posterior mode into
+ New option `smoothed_state_uncertainty` to provide the uncertainty `oo_.dsge_var`,
estimate for the smoothed state estimate from the Kalman smoother (!1324),
+ New option `smoothed_state_uncertainty` to provide the uncertainty
+ New prior density: generalized Weibull distribution, estimate for the smoothed state estimate from the Kalman smoother (!1324),
+ Option `mh_recover` now allows continuing a crashed chain at the + New prior density: generalized Weibull distribution,
last save mh-file,
+ Option `mh_recover` now allows continuing a crashed chain at the
+ New option `nonlinear_filter_initialization` for the last save mh-file,
`estimation` command. Controls the initial covariance matrix
of the state variables in nonlinear filters. + New option `nonlinear_filter_initialization` for the
`estimation` command. Controls the initial covariance matrix
+ The `conditional_variance_decomposition` option now displays of the state variables in nonlinear filters.
output and stores it as a LaTeX-table when the `TeX` option is
invoked, + The `conditional_variance_decomposition` option now displays
output and stores it as a LaTeX-table when the `TeX` option is
+ The `use_calibration` to `estimated_params_init` now also works invoked,
with ML,
+ The `use_calibration` to `estimated_params_init` now also works
+ Improved initial estimation checks. with ML,
+ Improved initial estimation checks.
- Steady state
+ The default solver for finding the steady state is now a - Steady state
trust-region solver (can be triggered explicitly with option
`solve_algo=4`), + The default solver for finding the steady state is now a
trust-region solver (can be triggered explicitly with option
+ New options `tolf` and `tolx` to control termination criteria of `solve_algo=4`),
solver,
+ New options `tolf` and `tolx` to control termination criteria of
+ The debugging mode now provides the termination values in steady solver,
state finding.
+ The debugging mode now provides the termination values in steady
state finding.
- Stochastic simulations
+ New options `nodecomposition`, - Stochastic simulations
+ New option `bandpass_filter` to compute bandpass-filtered + New options `nodecomposition`,
theoretical and simulated moments,
+ New option `bandpass_filter` to compute bandpass-filtered
+ New option `one_sided_hp_filter` to compute one-sided HP-filtered theoretical and simulated moments,
simulated moments,
+ New option `one_sided_hp_filter` to compute one-sided HP-filtered
+ `stoch_simul` displays a simulated variance decomposition when simulated moments,
simulated moments are requested,
+ `stoch_simul` displays a simulated variance decomposition when
+ `stoch_simul` saves skewness and kurtosis into respective fields simulated moments are requested,
of `oo_` when simulated moments have been requested,
+ `stoch_simul` saves skewness and kurtosis into respective fields
+ `stoch_simul` saves the unconditional variance decomposition in of `oo_` when simulated moments have been requested,
`oo_.variance_decomposition`,
+ `stoch_simul` saves the unconditional variance decomposition in
+ New option `dr_display_tol` that governs omission of small terms `oo_.variance_decomposition`,
in display of decision rules,
+ New option `dr_display_tol` that governs omission of small terms
+ The `stoch_simul` command now prints the displayed tables as LaTeX in display of decision rules,
code when the new `TeX` option is enabled,
+ The `stoch_simul` command now prints the displayed tables as LaTeX
+ The `loglinear` option now works with lagged and leaded exogenous code when the new `TeX` option is enabled,
variables like news shocks,
+ The `loglinear` option now works with lagged and leaded exogenous
+ New option `spectral_density` that allows displaying the spectral variables like news shocks,
density of (filtered) endogenous variables,
+ New option `spectral_density` that allows displaying the spectral
+ New option `contemporaneous_correlation` that allows saving density of (filtered) endogenous variables,
contemporaneous correlations in addition to the covariances.
+ New option `contemporaneous_correlation` that allows saving
contemporaneous correlations in addition to the covariances.
- Identification
+ New options `diffuse_filter` and `prior_trunc`, - Identification
+ The `identification` command now supports correlations via + New options `diffuse_filter` and `prior_trunc`,
simulated moments,
+ The `identification` command now supports correlations via
simulated moments,
- Sensitivity analysis
+ New blocks `irf_calibration` and `moment_calibration`, - Sensitivity analysis
+ Outputs LaTeX tables if the new `TeX` option is used, + New blocks `irf_calibration` and `moment_calibration`,
+ New option `relative_irf` to `irf_calibration` block. + Outputs LaTeX tables if the new `TeX` option is used,
+ New option `relative_irf` to `irf_calibration` block.
- Conditional forecast
+ Command `conditional_forecast` now takes into account `histval` - Conditional forecast
block if present.
+ Command `conditional_forecast` now takes into account `histval`
block if present.
- Shock decomposition
+ New option `colormap` to `shocks_decomposition` for controlling - Shock decomposition
the color map used in the shocks decomposition graphs,
+ New option `colormap` to `shocks_decomposition` for controlling
+ `shocks_decomposition` now accepts the `nograph` option, the color map used in the shocks decomposition graphs,
+ New command `realtime_shock_decomposition` that for each period `T= [presample,...,nobs]` + `shocks_decomposition` now accepts the `nograph` option,
allows computing the:
+ New command `realtime_shock_decomposition` that for each period `T= [presample,...,nobs]`
* realtime historical shock decomposition `Y(t|T)`, i.e. without observing data in `[T+1,...,nobs]` allows computing the:
* forecast shock decomposition `Y(T+k|T)` * realtime historical shock decomposition `Y(t|T)`, i.e. without observing data in `[T+1,...,nobs]`
* realtime conditional shock decomposition `Y(T+k|T+k)-Y(T+k|T)` * forecast shock decomposition `Y(T+k|T)`
+ New block `shock_groups` that allows grouping shocks for the * realtime conditional shock decomposition `Y(T+k|T+k)-Y(T+k|T)`
`shock_decomposition` and `realtime_shock_decomposition` commands,
+ New block `shock_groups` that allows grouping shocks for the
+ New command `plot_shock_decomposition` that allows plotting the `shock_decomposition` and `realtime_shock_decomposition` commands,
results from `shock_decomposition` and
`realtime_shock_decomposition` for different vintages and shock + New command `plot_shock_decomposition` that allows plotting the
groupings. results from `shock_decomposition` and
`realtime_shock_decomposition` for different vintages and shock
groupings.
- Macroprocessor
+ Can now pass a macro-variable to the `@#include` macro directive, - Macroprocessor
+ New preprocessor flag `-I`, macro directive `@#includepath`, and + Can now pass a macro-variable to the `@#include` macro directive,
dynare config file block `[paths]` to pass a search path to the
macroprocessor to be used for file inclusion via `@#include`. + New preprocessor flag `-I`, macro directive `@#includepath`, and
dynare config file block `[paths]` to pass a search path to the
macroprocessor to be used for file inclusion via `@#include`.
- Command line
+ New option `onlyclearglobals` (do not clear JIT compiled functions - Command line
with recent versions of Matlab),
+ New option `onlyclearglobals` (do not clear JIT compiled functions
+ New option `minimal_workspace` to use fewer variables in the with recent versions of Matlab),
current workspace,
+ New option `minimal_workspace` to use fewer variables in the
+ New option `params_derivs_order` allows limiting the order of the current workspace,
derivatives with respect to the parameters that are calculated by
the preprocessor, + New option `params_derivs_order` allows limiting the order of the
derivatives with respect to the parameters that are calculated by
+ New command line option `mingw` to support the MinGW-w64 C/C++ the preprocessor,
Compiler from TDM-GCC for `use_dll` (#1226).
+ New command line option `mingw` to support the MinGW-w64 C/C++
Compiler from TDM-GCC for `use_dll` (#1226).
- dates/dseries/reporting classes
+ New methods `abs`, `cumprod` and `chain`, - dates/dseries/reporting classes
+ New option `tableRowIndent` to `addTable`, + New methods `abs`, `cumprod` and `chain`,
+ Reporting system revamped and made more efficient, dependency on + New option `tableRowIndent` to `addTable`,
matlab2tikz has been dropped.
+ Reporting system revamped and made more efficient, dependency on
matlab2tikz has been dropped.
- Optimization algorithms
+ `mode_compute=2` Uses the simulated annealing as described by - Optimization algorithms
Corana et al. (1987),
+ `mode_compute=2` Uses the simulated annealing as described by
+ `mode_compute=101` Uses SOLVEOPT as described by Kuntsevich and Corana et al. (1987),
Kappel (1997),
+ `mode_compute=101` Uses SOLVEOPT as described by Kuntsevich and
+ `mode_compute=102` Uses `simulannealbnd` from Matlab's Global Kappel (1997),
Optimization Toolbox (if available),
+ `mode_compute=102` Uses `simulannealbnd` from Matlab's Global
+ New option `silent_optimizer` to shut off output from mode Optimization Toolbox (if available),
computing/optimization,
+ New option `silent_optimizer` to shut off output from mode
+ New options `verbosity` and `SaveFiles` to control output and computing/optimization,
saving of files during mode computing/optimization.
+ New options `verbosity` and `SaveFiles` to control output and
saving of files during mode computing/optimization.
- LaTeX output
+ New command `write_latex_original_model`, - LaTeX output
+ New option `write_equation_tags` to `write_latex_dynamic_model` + New command `write_latex_original_model`,
that allows printing the specified equation tags to the generate
LaTeX code (#477), + New option `write_equation_tags` to `write_latex_dynamic_model`
that allows printing the specified equation tags to the generate
+ New command `write_latex_parameter_table` that writes the names and LaTeX code (#477),
values of model parameters to a LaTeX table,
+ New command `write_latex_parameter_table` that writes the names and
+ New command `write_latex_prior_table` that writes the descriptive values of model parameters to a LaTeX table,
statistics about the prior distribution to a LaTeX table,
+ New command `write_latex_prior_table` that writes the descriptive
+ New command `collect_latex_files` that creates one compilable LaTeX statistics about the prior distribution to a LaTeX table,
file containing all TeX-output.
+ New command `collect_latex_files` that creates one compilable LaTeX
file containing all TeX-output.
- Misc.
+ Provides 64bit preprocessor, - Misc.
+ Introduces new path management to avoid conflicts with other + Provides 64bit preprocessor,
toolboxes,
+ Introduces new path management to avoid conflicts with other
+ Full compatibility with Matlab 2014b's new graphic interface, toolboxes,
+ When using `model(linear)`, Dynare automatically checks + Full compatibility with Matlab 2014b's new graphic interface,
whether the model is truly linear,
+ When using `model(linear)`, Dynare automatically checks
+ `usedll`: the `msvc` option now supports `normcdf`, `acosh`, whether the model is truly linear,
`asinh`, and `atanh` (#1259),
+ `usedll`: the `msvc` option now supports `normcdf`, `acosh`,
+ New parallel option `NumberOfThreadsPerJob` for Windows nodes that `asinh`, and `atanh` (#1259),
sets the number of threads assigned to each remote MATLAB/Octave
run (!1357), + New parallel option `NumberOfThreadsPerJob` for Windows nodes that
sets the number of threads assigned to each remote MATLAB/Octave
+ Improved numerical performance of `schur_statespace_transformation` for very large models, run (!1357),
+ The `all_values_required` option now also works with `histval`, + Improved numerical performance of `schur_statespace_transformation` for very large models,
+ Add missing `horizon` option to `ms_forecast`, + The `all_values_required` option now also works with `histval`,
+ BVAR now saves the marginal data density in + Add missing `horizon` option to `ms_forecast`,
`oo_.bvar.log_marginal_data_density` and stores prior and
posterior information in `oo_.bvar.prior` and + BVAR now saves the marginal data density in
`oo_.bvar.posterior`. `oo_.bvar.log_marginal_data_density` and stores prior and
posterior information in `oo_.bvar.prior` and
`oo_.bvar.posterior`.