Commit Graph

208 Commits (7dd2dd5e24a343fbeaf3522ea5e535c27d8b9f95)

Author SHA1 Message Date
Sébastien Villemot 4ba0f0a9c3
LMMCP: don’t report a wrong maxerror, rather put NaN 2020-10-20 18:27:19 +02:00
Sébastien Villemot 46da76c0ce
LMMCP: fix bug when periods=1
The fix in commit 24cc67e585 was incorrect.
2020-10-20 18:20:04 +02:00
Sébastien Villemot 87cc519321
LMMCP / linear perfect foresight: fix bug for models with a single equation
The routines use the find() function applied to a subset of columns of the
Jacobian, which in this case is a row vector. When passed a row vector, find()
returns row vectors (while it returns column vectors when passed a column
vector or a matrix). This case was not correctly handled.
2020-10-20 18:20:02 +02:00
Stéphane Adjemian (Odysseus) 248ad18846 Merge remote-tracking branch 'Dynare/master' into enterprise
Fixed conflicts in:

 - .gitlab-ci.yml
 - matlab/dynare_config.m
 - matlab/dynare_solve.m
 - matlab/initvalf.m
 - matlab/perfect-foresight-models/make_ex_.m
 - matlab/perfect-foresight-models/perfect_foresight_setup.m
 - mex/build/matlab/Makefile.am
 - mex/build/matlab/configure.ac
 - mex/build/octave/Makefile.am
 - mex/build/octave/configure.ac
 - mex/sources/Makefile.am
 - preprocessor
 - tests/Makefile.am
2020-09-17 14:53:32 +02:00
MichelJuillard 0391dbbeb1 fix bug with lag on exogenous variables on more than one period
(cherry picked from commit 492124ce9886e6aef4f4cefef302241d7edfe024)
2020-09-04 14:02:04 +00:00
Sébastien Villemot 41fe087106
Block decomposition: static and dynamic files are now pure wrappers around the per-block files
Systematically call top-level static/dynamic files, instead of per-block ones.
2020-06-19 18:46:56 +02:00
Sébastien Villemot 0305b427a6
Block decomposition: use same orientation convention as oo_.endo_simul for matrix of simulated paths
Improves consistency, but also efficiency (less transpose needed).
2020-06-17 18:19:35 +02:00
Sébastien Villemot 20431ed312
Block decomposition: in the dynamic file, y and T are now vectors as in non-block mode 2020-06-17 18:19:21 +02:00
Sébastien Villemot 7bec234f7f
Block decomposition: for evaluate blocks, move the iteration loop outside the dynamic file 2020-06-15 18:29:42 +02:00
Sébastien Villemot fae433fb18
Block decomposition: fix bug introduced in 0d11f8182a 2020-06-04 18:15:54 +02:00
Sébastien Villemot 0d11f8182a
Block decomposition: no longer compute deterministic simulation from dynamic.m file
By the way, fix bug where oo_ was not modified by solve_one_boundary.

Also convert oo_.deterministic_simulations.status to a boolean in the block
routines, for consistency with the non-block case.
2020-06-02 17:46:29 +02:00
Stéphane Adjemian (Charybdis) 9a66f3ebd9
Allow shocks with initval_file. 2020-05-18 12:21:43 +02:00
Michel Juillard b70d99d1b4
Refactoring of initval_file and histval_file
initval_file and hisvfal_file are now more flexible and have functionalities
similar to option datafile in estimation.

Closes: #1671
2020-05-14 16:45:54 +02:00
Michel Juillard fd09b98150 fix bug when no convergence and backward model 2020-03-31 15:40:49 +02:00
Houtan Bastani eb6ab0696a
gui: added fields to `oo_` to indicate which commands have been run 2020-03-03 11:45:46 +01:00
Johannes Pfeifer 8aad715183 det_cond_forecast.m: always set options_.qz_criterium
Closes https://git.dynare.org/Dynare/dynare/issues/1701
2020-02-02 14:15:01 +01:00
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 a95358accc Merge branch 'sim1' into 'master'
sim1.m: provide missing function input to nested function

See merge request Dynare/dynare!1691
2020-01-06 13:22:29 +00:00
Johannes Pfeifer 632c0a3943 sim1.m: provide missing function input to nested function 2020-01-06 09:06:18 +01:00
Sébastien Villemot 49dc997073
Global reindentation of MATLAB code (excluding submodules)
Also convert to Unix end-of-lines, and remove trailing whitespaces.
2019-12-20 16:30:27 +01:00
Sébastien Villemot efa6c6c682
“datafile” option of “perfect_foresight_setup” (and “simul”) now equivalent to “initval_file”
Ref. #1663
2019-12-19 14:58:54 +01:00
Michel Juillard d0247277f9 after check, oo_.dr isn't empty but oo_.dr.ghx + friends don't exist 2019-11-25 21:54:53 +01:00
Michel Juillard f6daa359b7 fix tolf and tolx options for sim1_purely_forward 2019-11-23 22:47:17 +01:00
Michel Juillard 2652cb0dd7 fix tolf and tolx options for sim1_purely_backward 2019-11-23 22:44:10 +01:00
Houtan Bastani 7712a02f02
add print and noprint option to perfect_foresight_solver. closes #1647 2019-09-12 14:50:14 +02:00
Houtan Bastani 3d6091b3a1
remove unused return arguments 2019-09-12 14:01:52 +02:00
Houtan Bastani e043c60903
pass M_, options_, oo_ as arguments to stoch_simul, simult_, discretionary_policy. closes dynare#1197 2019-09-12 11:57:01 +02:00
Sébastien Villemot f8af21819e
Simplify the interface to perfect_foresight_problem MEX 2019-07-09 14:33:17 +02:00
Sébastien Villemot 2ad6b31d76
Option endogenous_terminal_period is only available for stack_solve_algo=0 2019-07-04 18:37:27 +02:00
Sébastien Villemot 7d9b2a557b
perfect_foresight_problem MEX: number of threads is now configurable 2019-06-27 17:00:12 +02:00
Sébastien Villemot 5b591fac42
New perfect_foresight_problem MEX file
It constructs the stacked residuals and jacobian of the perfect foresight
problem.

It is an almost perfect replacement for the perfect_foresight_problem.m
routine, while being much more efficient.

Note however that the DLL never return complex numbers (it instead puts NaNs at
the place where there would have been complex). This may create problems for
some MOD files; the algorithms will need to be adapted to use a more
line-search method.
2019-06-24 17:53:59 +02:00
Sébastien Villemot aedc9fb2e4
Bugfix: perfect_foresight_setup safety check does not correctly index M_.lead_lag_incidence 2019-06-18 17:01:06 +02:00
Sébastien Villemot 5a36d57b90
Perfect foresight: remove unused nnzJ argument in several stacked problem functions 2019-05-13 18:33:26 +02:00
Sébastien Villemot 088826a332
Perfect foresight: remove useless model evaluation 2019-05-13 18:33:26 +02:00
Stéphane Adjemian (Charybdis) 64dc44740b Efficiency change. 2019-04-26 16:20:45 +02:00
Stéphane Adjemian (Charybdis) 99edfc52ed Removed unused routine. 2019-04-26 15:55:48 +02:00
Stéphane Adjemian (Charybdis) 24cc67e585 Ensure that all perfect foresight solvers work with periods=1.
See #1205 and #1176.
2019-04-26 15:55:48 +02:00
Houtan Bastani ce97e51aec
small fixes 2019-03-06 14:01:29 +01:00
Houtan Bastani c94401ea66
remove spurious semicolon 2019-01-02 18:00:21 +01:00
Houtan Bastani 42ad1a85ba
remove unnecessary find in statement 2019-01-02 17:56:45 +01:00
Houtan Bastani 24eb3bcb34
remove unnecessary brackets from strings 2019-01-02 17:56:35 +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 d03cc56587 solve_algo=7 and stack_solve_algo=2 are now allowed under Octave
The gmres() function has been implemented (actually since Octave 3.4.1!).
2018-08-02 15:20:39 +02: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
Sébastien Villemot 79484607a7 Fix various issues with stack_solve_algo=7 and lags on exogenous > 1
Complete the fix started in 8913791ff0.

Change the test case to prevent regressions.
2018-06-07 16:14:02 +02:00
Michel Juillard 8913791ff0 fixes bug for solve_algo = 10 and lags on exogenous variables 2018-06-07 12:21:58 +02:00
Johannes Pfeifer 224ccb7bab sim1_linear.m: change hard-coded tolerance to option
The tolerance for the steady state check should depend on the accuracy of the steady state computation
2018-02-07 18:42:12 +01:00
Stéphane Adjemian (Scylla) 7be8f10e0e Use cells of strings instead of char arrays. 2018-01-09 22:30:01 +01:00
Houtan Bastani a51fef393a aesthetic fix 2017-08-30 17:44:41 +02:00
Stéphane Adjemian (Scylla) 5429821719 Fixed incomplete commit 1a4257ac4b. 2017-08-16 23:29:15 +02:00
Stéphane Adjemian (Scylla) 131a68ea6f Provide more informations if expected shocks are declared after the terminal period. 2017-08-16 16:43:43 +02:00
Stéphane Adjemian (Scylla) 10047feee5 Test if shocks are declared.
Fixes bug introduced in 97b894a1cd, if no shocks
are declared (for instance if the user is interested in the transition to the
steady state).
2017-08-16 16:04:15 +02:00
Johannes Pfeifer 97b894a1cd Provide meaningful error message if oo_.exo_simul is larger than options_.periods 2017-08-16 16:00:55 +02:00
Stéphane Adjemian (Scylla) 1a4257ac4b Efficiency change.
Reduced the size of the unnecessary large array for the exogenous variables
introduced in 57fd56c90a.
2017-08-16 15:44:00 +02:00
Johannes Pfeifer 57fd56c90a sim1_linear.m: Fix evaluation of dynamic model at deterministic steady state
Did not correctly account for exogenous variables being potentially present with leads and lags
2017-08-01 11:04:46 +02:00
Stéphane Adjemian (Charybdis) 1bf81c9f5a Fixed copyright notices. 2017-05-18 18:36:38 +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
Stéphane Adjemian (Charybdis) 5ef2d650b2 Fixed function name in header. 2017-05-16 13:24:46 +02:00
Ferhat Mihoubi 981e31c8c3 Fix issues in bytecode with option extended_path related to the size of endo_simul and exo_simul
(cherry picked from commit ab7acc49e30fbcb292d63d58281581a308716b4c)
2017-05-08 18:40:18 +02:00
Ferhat Mihoubi e248d8bf59 Fix memory and periods issues in bytecode
(cherry picked from commit fa5dd681abcb3243a5ee9be1f71fdfc51bced1cd)
2017-05-08 18:39:44 +02:00
Houtan Bastani b3fa669717 bug fix introduced in 234aaacf92 2017-03-24 17:13:03 +01:00
Marco Ratto 234aaacf92 factorized display of critical values. 2017-03-23 00:08:05 +01:00
Stéphane Adjemian (Charybdis) ee2c30fd97 Partialm cherry-pick of 28e95d817a181f758dab595d6a14de0ff348bed5
Give more informations in case of NaN, Inf or non real variables.

Closes PR #1385.
2017-03-22 14:04:35 +01:00
Johannes Pfeifer 1c070f536a Add headers to various functions 2016-08-23 17:28:41 +02:00
Johannes Pfeifer 8f689ce8d2 Correct header of perfect-foresight-models/perfect_foresight_mcp_problem.m 2016-08-23 17:28:41 +02:00
Michel Juillard 22f49971bc fixing bug in mcp model setup
makes perfect_foresight_problem more efficient
added test case for stack_solve_algo == 7
2016-07-03 10:56:44 +02:00
Michel Juillard 0ce2834281 extended path: fixed boundaries for linear problem 2016-05-31 12:10:12 +02:00
Michel Juillard c14125d585 PATH: fixing bugs 2016-05-31 12:10:12 +02:00
Michel Juillard d106b20b69 perfect foresight: set boundaries with PATH 2016-05-31 12:10:12 +02:00
Michel Juillard c159dff19c adding hook for PATH solver 2016-05-31 12:10:12 +02:00
Stéphane Adjemian (Charybdis) dfbad0404d Fixed crash in sim1_linear when periods=1.
Closes #1176.
2016-05-26 22:19:36 +02:00
Stéphane Adjemian (Charybdis) fb4dfc6da6 Fixed typo. 2016-05-24 22:32:02 +02:00
Michel Juillard 28c0c92ae8 fixing typos
(cherry picked from commit 86995a3bd478a3dc02919424aeb77e2a550a84c5)
2016-05-24 17:57:26 +02:00
Stéphane Adjemian (Hermes) be0f6230ad Cosmetic changes.
- Use a switch-case block.
 - Added a warning when the user tries to solve a linear(ized) model
with solve_algo different from 0 (for a linear model).
 - Added an error message if the user try to solve a linearized model
with stack_solve_algo=6 (not implemented).
2016-05-24 17:26:06 +02:00
Stéphane Adjemian (Hermes) 1815eb8e56 Code factorization. 2016-05-24 17:26:06 +02:00
Stéphane Adjemian (Hermes) 8a163842d0 Removed oo_ from sim1_linear routine. 2016-05-24 17:26:06 +02:00
Stéphane Adjemian (Hermes) 53747cb082 Fixed lmmcp option.
This option may be used in extended_path and perfect_foresight_solver commands.
2016-05-24 17:26:06 +02:00
Stéphane Adjemian (Charybdis) e0be60710c Removed oo_ from sim1_purely_{backward,forward} routines. 2016-05-24 17:26:06 +02:00
Stéphane Adjemian (Charybdis) 290ce5db68 Removed oo_ from sim1_lbj routine. 2016-05-24 17:26:06 +02:00
Stéphane Adjemian (Charybdis) 674c9ab286 Removed oo_ from sim1 routine. 2016-05-24 17:26:06 +02:00
Johannes Pfeifer 5f32b80a27 Fix error codes for bytecode in perfect_foresight_solver_core.m
If it fails, 1 must indicate error, not 0
2016-05-05 10:52:17 +02:00
MichelJuillard 62efd9930e Merge pull request #1148 from JohannesPfeifer/foresight_imaginary
Add check whether real part of complex solution solves the model
2016-04-12 13:06:26 +02:00
MichelJuillard aa1a0b5e25 Merge pull request #1052 from JohannesPfeifer/lin_solve_robust
Integrate robust linear solver for stack_solve_algo=0
2016-04-12 12:06:22 +02:00
Johannes Pfeifer a93d68fb35 Make evaluate_steady_state.m honor nocheck flag
Closes #1054
2016-03-25 22:12:52 +01:00
Johannes Pfeifer 0669ac4c1c Adjust verbosity of solvers 2016-03-25 20:14:25 +01:00
Johannes Pfeifer 4b83c1bf76 Integrates Tom Holden's robust linear solver
Supersedes #984
2016-03-25 09:59:20 +01:00
Stéphane Adjemian(Charybdis) e714dc1a9f Fixed bug in homotopy.
Convex combination for initial/terminal endogenous variables paths was wrong.
2016-03-24 22:42:44 +01:00
Johannes Pfeifer 6bca322809 Add check whether real part of complex solution solves the model
Fixes #896
2016-03-23 21:25:58 +01:00
Stéphane Adjemian a3c7cad354 Merge pull request #1131 from JohannesPfeifer/make_
Replace globals by inputs in make_ex_.m and make_y_.m
2016-03-18 15:10:06 +01:00
Johannes Pfeifer bb08853784 Replace globals by inputs in make_ex_.m and make_y_.m 2016-03-11 16:28:17 +01:00
Houtan Bastani f60945facc fix copyright dates 2016-03-11 16:22:42 +01:00
Michel Juillard 34e35555d6 fixed bugs when there is a single equation in the model 2016-03-07 21:51:45 +01:00
ferhat e555c8181d Corrections in the way to handle the exogenous 2015-11-19 17:04:56 +01:00
ferhat 6d7218f9dc Fix bugs in det_cond_forecast.m 2015-11-11 18:35:41 +01:00
ferhat 7c5272d852 Allows to compute the extended path and the conditional forecasts with bytecode 2015-09-22 15:39:49 +02:00
Michel Juillard 7d11ed7642 histval: use now the same treatment for exogenous and exogenous det
variables as for endogenous ones. Closes issue #617.
2015-07-29 16:12:53 +02:00
Michel Juillard fe861fee76 fixed bug introduced in commit 1bd2a1b1c2 2015-07-29 11:54:10 +02:00
Michel Juillard e8f318ff50 fixed problems in extended path 2015-07-23 14:27:55 +02:00