It is now supported by the MATLAB editor (as of R2022a).
The old ASCII notation is left in some files that we copy as-is from other
sources (e.g. in the contrib/ and m4/ subdirectories).
The particles submodule is not updated at this point, because it is in an
inconsistent state.
[skip ci]
Incidently, remove the possibility of passing model derivatives as arguments to
the k_order_perturbation. That possibility was only used by the risky steady
state code.
Closes: #1338
In particular, higher order derivatives are now returned as sparse matrices by
the static/dynamic files, instead of 3-column matrices (which was inconsistent
with the M-file mode).
Because at some point throwing exceptions from MEX files (with mexErrMsgTxt())
was not working under Windows 64-bit, we had designed a workaround to avoid
using exceptions.
Most MEX files were returning an error code as their first (or sometimes last)
argument, and that code would have to be checked from the MATLAB code.
Since this workaround is no longer needed, this commit removes it. As a
consequence, the interface of many MEX files is modified.
For some background, see https://www.dynare.org/pipermail/dev/2010-September/000895.html
— deprecation warning for “simul” (#1683)
— Ramsey: use information from transformed model for filling
M_.nonzero_hessian_eqs. (Closes: #1681)
Also, M_.hessian_eq_zero is not generated if order = 1
— New field M_.endo_trends (#1648)
... Between stoch_simul and check. Added sdim (the number of stable
eigenvalues) and edim (the complementary number of explosive eigenvalues) in dr
structure. The test is always done with sdim (or edim) returned by mjdgges.
It was erroneously completely moved to dyn_second_order_solver.m in the 4.3 branch when cleaning up dr1.m. Without this reordering, decision rules for exogenous deterministic variables at second order are wrong
With a previously set loglinear option, both k_order_pert and
stochastic_solvers at order>1 transformed the first order solution, but
kept the higher order terms untransformed. Now, both functions output an
error.
Currently, all stochastic solvers put the error code to info(1) and use
print_info to output the error. The only exception was k_order_pert,
which immediately created an error. Thus, the use of k_order_pert did
not allow for continuing after encountering errors, because only
print_info obeys the noprint-option. Replacing mexErrCheck by setting
info should deliver the correct behavior.
Replace them by equivalents in M_ (and an extra one: M_.dynamic).
IMPORTANT POINT: oo_.dr.npred used to count both purely backward and mixed/both
variables. This was the cause of lots of confusion. The new M_.npred only
counts purely backward variables.
We now have the following indentities:
M_.npred + M_.nboth + M_.nfwrd + M_.nstatic = M_.endo_nbr
M_.nspred = M_.npred + M_.nboth
M_.nsfwrd = M_.nfwrd + M_.nboth
M_.ndynamic = M_.npred + M_.nboth + M_.nfwrd