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]
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
The new code relies on qz(..., 'real'), ordqz and ordeig, and returns a real
decomposition. The previous version was using Sims' qzdiv and returned a
complex decomposition.
As a consequence, we can drop options_.qzdiv, which was used to detect when
imaginary parts had to be dropped.
This code does not work on Octave for the time being, but this is acceptable
since it is only a fallback.
... 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.
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
-pass along errors returned by cycle reduction algorithms;
-logarithmic reduction fails on error
-replace expensive and random condest() by call to linsolve()
-uses linsolve() to compute hx