Commit Graph

53 Commits (7e770f69e791e705ab535126e0157130dc9d40c6)

Author SHA1 Message Date
Sébastien Villemot 7e770f69e7
Remove workaround for errors in MEX files
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
2020-01-10 18:33:11 +01:00
Sébastien Villemot ce4aa9a8e1
Preprocessor update
— 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)
2019-12-13 18:22:12 +01:00
Sébastien Villemot 82cef48eb4
A_times_B_kronecker_C MEX: remove the OpenMP codepath
Testing shows that it is slower than the BLAS path.
2019-06-25 17:26:14 +02:00
Sébastien Villemot 89a3e94cbf
Use true/false instead of 1/0 for boolean options
This is more elegant, and makes it easier to distinguish them from integer
options.

Also simplify test expressions for these boolean options.
2019-03-19 15:21:16 +01:00
Sébastien Villemot 7a75872f72
Modernization: use tilde (~) syntax for ignored output arguments 2018-11-13 18:02:09 +01:00
Sébastien Villemot a1b8bd39b2 Move the location of various generated files on the filesystem
- M and MEX files are now under +${MODELNAME}/
- bytecode, C source and JSON now under ${MODELNAME}/model/
2018-06-27 17:03:39 +02:00
Stéphane Adjemian(Charybdis) 8f53be2a6f Impose the consistency of the count of unstable eigenvalues...
... 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.
2018-05-05 19:53:13 +02:00
Stéphane Adjemian(Charybdis) 891e3ba7be Cosmetic change in doc headers. 2018-05-05 10:24:01 +02:00
Johannes Pfeifer 28b499af3b Filter out cases where stochastic_solvers.m is called at higher order without k_order_solver 2018-01-24 17:50:42 +01:00
Houtan Bastani d3c4477f3e remove duplicated line 2017-10-24 16:37:08 +02:00
Stéphane Adjemian (Charybdis) 5417b27ac7 Fixed indentation of matlab files. 2017-05-16 15:10:20 +02:00
Stéphane Adjemian (Charybdis) a53636e24e Fixed copyright notices. 2017-05-16 14:11:15 +02:00
Stéphane Adjemian (Charybdis) 88e1701289 Removed useless commas and semicolons. 2017-05-16 13:24:46 +02:00
Johannes Pfeifer 6ca415ce14 stochastic_solvers.m: Suppress redundant warning if order was already set to 1 2017-04-25 20:16:10 +02:00
Houtan Bastani 7829a25238 make stoch_simul solve linear model using order=1, even when order=2,3 specified. Also makes stoch_simul more efficient. closes #1336
(cherry picked from commit e29be9676dd40388919819af2d366b8308763ccc)
2017-04-22 16:26:13 +02:00
Johannes Pfeifer 5996211356 Provide informative error message when var_exo_det is used with purely forward and backward models (thanks to Stefan Boeters for pointing this out) 2016-08-24 15:05:28 +02:00
Michel Juillard 67ea280773 adding missing semi-colon 2016-05-06 10:11:53 +02:00
Michel Juillard 3c7c2f46a4 more fixes for loglinear with lead/lagged exogenous variables 2016-05-05 20:41:02 +02:00
Michel Juillard 7e13fe5ef7 fix loglinear option with leaded or lagged exogenous variables 2016-05-05 20:41:02 +02:00
Houtan Bastani 25121bca4f fix copyright dates 2016-05-04 16:05:31 +02:00
Michel Juillard e8c430a923 replaced transtion_matrix.m by kalman_transition_matrix.m 2016-04-16 17:21:42 +02:00
MichelJuillard 8045217773 Merge pull request #729 from JohannesPfeifer/complex_jacobian
Deal with debugging info on complex Jacobians
2015-07-20 14:08:33 +02:00
Johannes Pfeifer 90a6bb991c Fix typos in error message in stochastic_solvers.m 2015-07-06 08:53:54 +02:00
Johannes Pfeifer 1eabb1f6da Change headers to reflect availability of third order approximation 2015-01-27 08:05:57 +01:00
Johannes Pfeifer 6bc9b88401 Add reordering of second order derivatives to stochastic_solvers.m
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
2014-11-02 19:34:55 +01:00
Johannes Pfeifer b43d52278d Deal with NaN and Inf in Hessian of dynamic model
Checks for these cases in stochastic_solvers.m to prevent cryptic crashes in dll-files later on
2014-09-25 08:49:19 +02:00
Johannes Pfeifer bf5d8c0546 Add debugging info for complex Jacobian to model_diagnostics.m and stochastic_solvers.m 2014-09-14 19:34:00 +02:00
Johannes Pfeifer d9d4fef251 Move check of Jacobian matrices for NaN and Inf to dedicated function for reuse in model_diagnostics.m 2014-03-28 14:52:06 +01:00
Stéphane Adjemian (Scylla) 8359b90cdf Cosmetic changes. 2014-01-30 13:00:25 +01:00
Johannes Pfeifer 894c5e541a Add suggestion on how to circumvent restriction for purely for- and backward looking models at higher order 2013-08-16 12:04:22 +02:00
Sébastien Villemot 30033df22c Deactivate 2nd and 3rd order approximation of purely forward models
There are some strange crashes in both normal mode (gensylv) and k_order_solver
mode
2013-08-15 12:27:03 +02:00
Johannes Pfeifer ca96013ca9 Filter out Inf in Jacobian to get rid of most cryptic errors about Lapack function dgges
Also adds additional debugging info
2013-07-28 12:09:59 +02:00
Sébastien Villemot 61485ab809 Fix copyright notices 2013-06-12 17:04:46 +02:00
Johannes Pfeifer 42081aec88 Filter out stale loglinear option
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.
2013-05-08 18:18:34 +02:00
Johannes Pfeifer 996ff3bfd3 Remove mexErrCheck from k_order_pert to make it obey the noprint-option
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.
2013-05-02 14:38:47 +02:00
Sébastien Villemot c121aa14b1 Remove oo_.dr.{nstatic,npred,nboth,nfwrd,nspred,nsfwrd}
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
2012-11-16 20:05:13 +01:00
Sébastien Villemot ddbeb8ceaa Remove unused oo_.dr.kae, oo_.dr.kad 2012-11-16 17:51:25 +01:00
Michel Juillard 0a5909f1d2 fixed bug with deterministic exogenous variables at order==2 (moved
all relevant code to stochastic_solvers.m)
2012-09-19 22:51:44 +02:00
Michel Juillard 07193b2cfa fixing bug in computing full_rank for purely backward models 2012-09-11 10:06:38 +02:00
Johannes Pfeifer 1a968d5f22 Added check for NaN in Jacobian to stochastic_solvers and added explicit error message to print_info.m 2012-08-05 13:09:24 +02:00
Michel Juillard 5bda6afad0 adding missing semi-colon 2012-07-16 16:05:08 +02:00
Stéphane Adjemian (Charybdis) 1fb89a07e9 Removed global from set_state_space. 2012-07-03 11:29:18 +02:00
Sébastien Villemot 1f9cea669a Update copyright notices 2012-06-08 18:22:34 +02:00
Michel Juillard 6e555a1539 removed specialized code for solving purely forward models: it is true
that it is possible to derive the solution function by a simple
inversion, but this doesn't check that all eigenvalues are larger than
one. It is better to use the standard algorithm with QZ decomposition
2012-06-02 14:14:24 +02:00
Sébastien Villemot 95e938e5fb Add dummy dr.eigval and dr.rank in case of purely forward model
This is necessary to avoid an outright crash in check.m
2012-05-15 18:31:53 +02:00
Michel Juillard 0ef23e5ae3 fixes bug for stochastic backward models. Still, only order==1 is
currently possible.
2012-05-14 22:10:10 +02:00
Michel Juillard 650e67f6b7 fixing but in previous commit 2012-05-01 10:53:23 +02:00
Michel Juillard 19f939b1cc when task==1, the function now returns as soon as the eigenvalues have
been computed. This solves a bug when having used loglinear option
earlier in the *.mod file
2012-05-01 09:49:56 +02:00
Michel Juillard 1014bb038d made loglinear option available for purely backward and purely forward
models (for now only with order==1)
2012-04-15 14:06:37 +02:00
Michel Juillard 30d815afdc minor changes to new functions and completing headers 2011-12-20 16:34:30 +01:00