Commit Graph

44 Commits (7dd2dd5e24a343fbeaf3522ea5e535c27d8b9f95)

Author SHA1 Message Date
Sébastien Villemot 06f665e231
Perfect foresight: LBJ now available under stack_solve_algo=1 (with/without block/bytecode)
Previously, LBJ was available:

– under stack_solve_algo=6 when neither block nor bytecode were present
– under stack_solve_algo=1 with either block or bytecode (but the documentation
  was not making it clear that it was LBJ)

This commit merges the two values for the option, and makes them
interchangeable. LBJ should now be invoked with stack_solve_algo=1 (but
stack_solve_algo=6 is kept for compatibility, and is a synonymous).
2022-06-15 15:06:33 +02:00
Sébastien Villemot 10af04c6d8
Use Unicode copyright symbol (in UTF-8 encoding) in all source files
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]
2022-04-13 14:54:25 +02:00
Sébastien Villemot 766fff88f6
Use secure URL for link to GNU licenses 2021-06-09 17:35:05 +02:00
Sébastien Villemot 5fab01c534
Perfect foresight: fix case where max lead/lag on exo is greater than max lead/lag on endo
Bug introduced in commit e21cb1ad6b

Ref. #1720
2020-10-21 19:12:22 +02:00
Sébastien Villemot e21cb1ad6b
LMMCP: fix the purely backward and purely forward cases
Closes: #1720
2020-10-21 16:30:40 +02: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 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
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
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
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
Johannes Pfeifer 1c070f536a Add headers to various functions 2016-08-23 17:28:41 +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
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 (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
Stéphane Adjemian (Charybdis) 17f3583151 Allow linear_approximation option with stack_solve_algo=7. 2015-07-07 17:55:41 +02:00
Stéphane Adjemian (Charybdis) 8007f508a2 New option linear_approximation for perfect foresight models.
This approach only requires one evaluation of the dynamic model (and its
jacobian) instead of T (the number of perdiods). Also (because the model
is linear) the equilibrium paths are obtained by inverting the jacobian
of the stacked equations (no need for a Newton algorithm).

Only available with stack_solve_algo==0 (which is the default algorithm
for solving perfect foresight models).

If possible, the option is triggered automatically if the model is
declared linear.

TODO:
 * Write a linear version of perfect_foresight_problem routine.
 * Evaluate the approxilation error (just need to evaluate the system of
 stacked non linear equations).
2015-07-07 17:55:41 +02:00
Michel Juillard c22d31330c Adding 'ramsey_constraints' block to declare contraints for Ramsey
problems. Note that LMMCP (solve_algo=10) still doesn't work in all cases.
2015-05-31 12:18:20 +02:00
Michel Juillard 127730d731 solve bugs when there are lags of exogenous variables on more than one
period in deterministic models.
2015-05-27 12:22:32 +02:00
Michel Juillard 1b822a9105 fix calls to dynare_solve() when Jacobian of function must be computed
numerically. Fix call to dynare_solve() in simulation_core()
2015-05-26 15:51:09 +02:00
Johannes Pfeifer 8aec696b95 Fix various copy and paste errors in check_input_arguments.m
During moving to a separate function, not all variables had been renamed
2015-05-09 08:22:31 +02:00
Sébastien Villemot db272f114b Compatibility fixes for MATLAB <= 7.7.
The tilde syntax was introduced in MATLAB 7.8.
2015-04-22 16:45:15 +02:00
Stéphane Adjemian (Charybdis) de5c541ce6 Manually merged PR #807.
Fixed conflict related to the move of the perfect foresight related routines
in a subfolder.
2015-03-05 14:31:36 +01:00
Stéphane Adjemian (Charybdis) 7df3856cbf Fixed homotopy with bytecode for perfect foresight models. 2015-02-21 13:59:53 +01:00
Stéphane Adjemian (Charybdis) d19592f761 Fixed homotopy for perfect foresight models with block option, cosmetic changes. 2015-02-20 14:48:25 +01:00
Stéphane Adjemian (Charybdis) fd0a172637 Remove small imaginary parts in the solution path for perfect foresight
models obtained with stack_solve_algo=7.

Also return oo_.deterministic_simulation.status equal to false if the
solution path is not real.
2015-02-18 23:53:55 +01:00
Stéphane Adjemian (Charybdis) 1c8e1ab913 Merge branch 'remove-globals-from-blocks' 2015-02-17 13:01:17 +01:00
Stéphane Adjemian (Charybdis) cc94ed63b0 Revert "Temporary fix for perfect foresight model simulation with block option."
This reverts commit 8875dbdaa5.
2015-02-17 13:01:01 +01:00
Stéphane Adjemian (Charybdis) a894357655 Removed options_ and oo_ globals from *all* generated dynamic model
routines (with block option) and adapted some routines to reflect this change.
2015-02-17 12:57:30 +01:00
Michel Juillard 83c68c0477 Allowing for models without exogenous variable 2015-02-16 21:30:34 +01:00
Stéphane Adjemian (Charybdis) 8875dbdaa5 Temporary fix for perfect foresight model simulation with block option. 2015-02-16 17:05:37 +01:00
Houtan Bastani 333f87ced2 fix headers 2015-02-16 09:08:26 +01:00
Houtan Bastani ca83397d95 update copyright dates for files changed in 2015 2015-02-16 09:08:02 +01:00
Stéphane Adjemian (Charybdis) 59d1c18960 Added routines missing in previous commit. 2015-02-13 10:10:41 +01:00