From a79dbe577f193bf46de221ea334ca59bdbfab173 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org>
Date: Mon, 17 Feb 2020 18:39:01 +0100
Subject: [PATCH] Add release notes for 4.6.0
---
NEWS.md | 342 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 342 insertions(+)
diff --git a/NEWS.md b/NEWS.md
index ab1f11145..f1fac85b2 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -1,3 +1,345 @@
+Announcement for Dynare 4.6.0
+=============================
+
+We are pleased to announce the release of Dynare 4.6.0.
+
+This major release adds new features and fixes various bugs.
+
+The Windows, macOS and source packages are already available for download at
+[the Dynare website](https://www.dynare.org/download/).
+
+All users are strongly encouraged to upgrade.
+
+This release is compatible with MATLAB versions ranging from 7.9 (R2009b) to
+9.7 (R2019b), and with GNU Octave versions 5.2.0 (under Windows) and 4.4.1
+(under macOS).
+
+Here is the list of major user-visible changes:
+
+ - Stochastic simulations
+
+ - The perturbation method is now available at an arbitrary approximation
+ order. In other words, the `order` option of `stoch_simul` accepts an
+ arbitrary positive integer (of course, up to some model-specific
+ computational limit).
+
+ - New option `filtered_theoretical_moments_grid` of `stoch_simul`, that
+ supersedes `hp_ngrid`.
+
+ - Estimation
+
+ - Nonlinear estimation is now also available at an arbitrary approximation
+ order. In other words, the `order` option of `estimation` accepts an
+ arbitrary positive integer (of course, up to some model-specific
+ computational limit).
+
+ - Various improvements to particle filters.
+
+ - It is now possible to estimate models under optimal policy (see below).
+
+ - Variance decomposition of observables now accounts for measurement error.
+
+ - New option `mh_tune_jscale` of `estimation` command for tuning the scale
+ parameter of the proposal distribution of the Random Walk Metropolis
+ Hastings.
+
+ - Added debugging info when parameters take a `NaN` or `Inf` value.
+
+ - Option `mode_compute=1` is now available under Octave.
+
+ - Perfect foresight and extended path
+
+ - A significant speed improvement should be noted on large models (when
+ neither `bytecode` nor `block` option is used). The stacked problem is
+ now constructed using a dedicated machine-compiled library that greatly
+ speeds up the process (in particular, the time spent in that step can
+ become negligible when the `use_dll` option is used).
+
+ - New options `print` and `noprint` of `perfect_foresight_solver` command.
+
+ - Option `stack_solve_algo=2` is now available under Octave.
+
+ - Steady state
+
+ - Option `solve_algo=7` is now available under Octave.
+
+ - Optimal policy
+
+ - The `ramsey_policy` command is now deprecated. It is superseded by
+ successive calls to `ramsey_model`, `stoch_simul`, and
+ `evaluate_planner_objective` (in this order).
+
+ - It is now possible to estimate a model under optimal policy (either
+ Ramsey or discretionary) by running the `estimation` command after either
+ `ramsey_model` or `discretionary_policy`. It is however not yet possible
+ to estimate parameters that appear in the discount factor of the social
+ planner.
+
+ - Discretionary policy returns a more informative error message when the
+ objective has nonzero derivatives with respect to some variables.
+
+ - Identification
+
+ - Added minimal system identification check of *Komunjer and Ng (2011)*.
+
+ - Added spectrum identification check of *Qu and Tkachenko (2012)*.
+
+ - Identification is now also available for approximation orders 2 and 3
+ with either analytical or numerical parameter derivatives. The relevant
+ moments and spectrum are computed from the pruned state space system
+ as in *Mutschler (2015)*.
+
+ - All tests (moments, spectrum, minimal system, strength) can be turned
+ off.
+
+ - More numerical options can be changed by the user.
+
+ - Improved printing and storage (same folder) of results.
+
+ - Sensitivity analysis
+
+ - New `diffuse_filter` option to the `dynare_sensitivity` command.
+
+ - Arbitrary expressions can now be passed for the interval boundaries in
+ `irf_calibration` and `moment_calibration`. ⚠ This breaks the
+ previous syntax, requiring that the lower/upper bounds be separated by
+ commas.
+
+ - Forecasting and smoothing
+
+ - In `conditional_forecast_paths`, it is no longer required that all
+ 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
+ declaration of endogenous controlled variables and of `controlled_varexo`
+ 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
+ periods.
+
+ - New option `parameter_set` to the `calib_smoother` command.
+
+ - ⚠ The results of `conditional_forecast` command is now saved in
+ `oo_` (used to be in a file)
+
+ - Shock decomposition
+
+ - Added `fast_realtime` option to real time shock decomposition (deactivated
+ by default, runs the smoother only twice: once for the last in-sample and
+ once for the last out-of-sample data point).
+
+ - New `diff`, `flip`, `max_nrows`, `plot_init_date` and `plot_end_date`
+ options to `plot_shock_decomposition`.
+
+ - New `initial_decomposition_decomposition` command, for computing and
+ plotting the decomposition of the effect of smoothed initial conditions of
+ state variables.
+
+ - New `squeeze_shock_decomposition` command, for removing decompositions of
+ variables that are not of interest.
+
+ - New `with_epilogue` option (common to `shock_decomposition`,
+ `realtime_shock_decomposition` and `initial_condition_decomposition`).
+
+ - New `init2shocks` block to attribute initial conditions to shocks.
+
+ - Macro processor
+
+ - New object types: real (supersedes integers), boolean (distinct from
+ integers), tuple, user-defined function.
+
+ - New operators: various mathematical functions, set operations on arrays
+ (union, intersection, difference, cartesian power and product), type
+ checking and conversion.
+
+ - 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
+ 1:5 when mod(i,2) == 0]`).
+
+ - User-defined functions can be declared using the `@#define` operator (*e.g.*
+ `@#define f(x) = 2*x^2+3*x+5`).
+
+ - `@#elseif`-clauses are now supported in conditional statements.
+
+ - `@#for` loops can iterate over several variables at the same time (*e.g.*
+ `@#for (i,j) in X`, where `X` is an array containing tuples of size 2).
+
+ - A `defined()` function allows testing whether macro variables have been
+ defined.
+
+ - Empty arrays (with the `[]` syntax) are now possible.
+
+ - Arrays of arrays are now supported.
+
+ - New macro directives `@#echomacrovars` and `@#echomacrovars(save)` for
+ displaying or saving the values of all macro-variables.
+
+ - Inline comments are now supported.
+
+ - ⚠ All division operations are now done with doubles (as opposed to
+ integers). To achieve the old functionality, use the new `floor` operator.
+
+ - ⚠ 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`
+ creates `[1,2,3]` while `[1:3]` would create `[[1,2,3]]`).
+
+ - ⚠ Previously, printing a boolean would print `1` or `0`. Now, it
+ prints `true` or `false`. To achieve the old functionality, you must cast
+ it to a real, *e.g.* `@{(real)(1!=0)}`.
+
+ - LaTeX output
+
+ - New command `write_latex_steady_state_model`.
+
+ - New option `planner_discount_latex_name` of `ramsey_model` and
+ `discretionary_policy`.
+
+ - New command `model_local_variable` command for assigning a LaTeX name to
+ model-local variables.
+
+ - The `write_latex_static_model` and `write_latex_original_model` commands
+ now support the `write_equation_tags` option.
+
+ - Compilation of the model (`use_dll` option) made easier and faster
+
+ - Under Windows, it is no longer necessary to manually install the
+ compiler, since the latter is now shipped by the Dynare installer.
+
+ - Under macOS, the Dynare installer now automatically downloads and
+ installs the compiler.
+
+ - It is no longer necessary to configure MATLAB to let it know where the
+ compiler is, since the compilation is now done by the preprocessor.
+
+ - The compilation phase is now faster on large models (this has been
+ achieved by disabling a few time-consuming and not-so-useful optimization
+ passes otherwise done by the compiler).
+
+ - New `compilation_setup` block for specifying a custom compiler or custom
+ compilation flags.
+
+ - Model, variables and parameters declaration
+
+ - New syntax to declare model variables and parameters on-the-fly in the
+ `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
+ example, to declare a parameter named `alpha` in the model block, you
+ could write `alpha|p` directly in an equation where it appears.
+ Similarly, to declare an endogenous variable `c` in the model block you
+ could write `c|e`.
+
+ - New syntax to declare model variable and parameters on-the-fly in
+ equation tags. In the tag, simply state the type of variable to be
+ declared (`endogenous`, `exogenous`, or `parameter` followed by an equal
+ 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
+ not be necessarily defined in the model (*e.g.* various kinds of
+ real/nominal shares or relative prices, or annualized variables out of a
+ quarterly model).
+
+ - Command-line options
+
+ - Added the possibility to declare Dynare command-line options in the `.mod`
+ file.
+
+ - New option `nopreprocessoroutput` to disable printing of messages from
+ the preprocessor.
+
+ - 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
+ macro-processed file (see below).
+
+ - Preprocessor outputs and inputs
+
+ - Added JSON output to the preprocessor. A representation of the model file
+ 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,
+ Python, Julia, MATLAB, Octave…). This new feature opens the possibility to
+ develop alternative back-ends for the Dynare language.
+
+ - ⚠ Most files generated by the preprocessor are now grouped under
+ two subdirectories. Assuming your file is `FILENAME.mod`, then M-files
+ and MEX-files will be under `+FILENAME/`, while other output (JSON,
+ LaTeX, source code for the MEX files) will be under `FILENAME/`.
+
+ - The macro-generated output is now more readable (no more line numbers and
+ empty lines). The old behaviour can be restored using the `linemacro`
+ option (see above).
+
+ - Ability to call the preprocessor by passing the `.mod` file as a string
+ argument from the macOS or GNU/Linux command line.
+
+ - dseries classes
+
+ - New functionalities and efficiency improvements.
+
+ - Complete rewrite using the new `classdef` syntax and exploiting in place
+ modifications when possible.
+
+ - Integration of the `dates` classes within `dseries`.
+
+ - Reporting classes
+
+ - Automatically create titlepage with page numbers/page titles.
+
+ - Allow for the removal of headers and footers from a given page.
+
+ - Allow user to set page number.
+
+ - Split up report output. Create new files for the preamble, the body of
+ the report, and each individual page of the report.
+
+ - The classes have been converted to the new `classdef` syntax.
+
+ - Misc
+
+ - External functions can be located in MATLAB/Octave namespaces.
+
+ - Improvements to the balanced growth path test that is performed after
+ Dynare has detrended the model (given the trends on variables declared by
+ 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`
+ block; as a consequence, failing the test is now an error again.
+
+ - New collection of MATLAB/Octave utilities to retrieve and alter objects:
+ `get_irf`, `get_mean`, `get_shock_stderr_by_name`, `get_smooth`,
+ `get_update`, `set_shock_stderr_value`.
+
+ - ⚠ Previously, when some MEX files were missing, Dynare would
+ automatically fall back to slower M-file functional alternative; this is
+ no longer the case. It is however still possible to manually add these
+ alternatives in the MATLAB/Octave path (they are located under
+ `matlab/missing/mex`; this only applies to the `mjdgges`, `gensylv`,
+ `A_times_B_kronecker_C`, `sparse_hessian_times_B_kronecker_C` and
+ `local_state_space_iteration_2` DLLs).
+
+ - References
+
+ - Komunjer, I. and S. Ng (2011), “[Dynamic Identification of Dynamic
+ Stochastic General Equilibrium
+ Models](https://www.onlinelibrary.wiley.com/doi/abs/10.3982/ECTA8916),”
+ *Econometrica*, 79(6), 1995–2032
+
+ - Qu, Z. and D. Tkachenko (2012), “[Identification and frequency domain
+ quasi‐maximum likelihood estimation of linearized dynamic stochastic
+ general equilibrium
+ models](https://onlinelibrary.wiley.com/doi/abs/10.3982/QE126),”
+ *Quantitative Economics*, 3(1), 95–132
+
+ - Mutschler, W. (2015), “[Identification of DSGE models—The effect of
+ higher-order approximation and
+ pruning](https://www.sciencedirect.com/science/article/pii/S0165188915000731),”
+ *Journal of Economic Dynamics and Control*, 56, 34–54
+
+
+Since there are a few backward-incompatible changes in this release, users may
+want to have a look at the [upgrade
+guide](https://git.dynare.org/Dynare/dynare/-/wikis/BreakingFeaturesIn4.6) to
+adapt their existing codes.
+
+
Announcement for Dynare 4.5.7 (on 2019-02-06)
=============================================
--
GitLab