Commit Graph

8519 Commits (6ae86024eac8224f16b9dbc83e50c081c449656d)

Author SHA1 Message Date
Sébastien Villemot e58552d914 Merge branch 'occbin_error' into 'master'
Occbin: filter out problems in solving the baseline model

See merge request Dynare/dynare!2021
2022-04-28 13:04:53 +00:00
Johannes Pfeifer 6536e135cb Occbin: filter out problems in solving the baseline model 2022-04-28 13:33:48 +02:00
Stéphane Adjemian (Charybdis) 8b197bf71c
Remove duplicate assignments for parameters. 2022-04-28 12:58:22 +02:00
Stéphane Adjemian (Charybdis) 1d22285043
Throw a warning if a parameter has no value. 2022-04-28 12:58:22 +02:00
Sébastien Villemot a600336c92
New “add” and “multiply” keywords in “shocks(learnt_in=…)” block 2022-04-26 15:22:15 +02:00
Sébastien Villemot 7dda3c7985
Preprocessor update
— Reject exogenous deterministic variables in a few places where they were
  erroneously accepted
– Use booleans for “exo_det” and “multiplicative” fields of M_.det_shocks
— Add checks on the value of the “learnt_in” option of “shocks” and “endval”
2022-04-26 14:52:31 +02:00
Sébastien Villemot b6dc32621f Merge branch 'simult' into 'master'
simult.m: fix saving of binary file

See merge request Dynare/dynare!2020
2022-04-25 12:52:22 +00:00
Johannes Pfeifer 6805cad636 simult.m: fix saving of binary file 2022-04-23 19:41:51 +02:00
Sébastien Villemot 8488674ce4
New shocks(learnt_in=…) and endval(learnt_in=…) blocks
For use with perfect_foresight_with_expectation_errors_setup.
2022-04-21 17:10:52 +02:00
Sébastien Villemot c06be7fefd
Octave 7 fixes bug in mkdir which now creates parent directory 2022-04-20 10:36:56 +02:00
Stéphane Adjemian (Charybdis) 931a9ba336
Use residuals and jacobian matrix returned by fsolve routine. 2022-04-19 19:20:20 +02:00
Stéphane Adjemian (Charybdis) 4d646ba30b
Fix evaluation of the dynamic model.
Call the wrapper instead of the dynamic routine.
2022-04-19 19:15:21 +02:00
Sébastien Villemot ce7540747b
dynare_solve: fix bug introduced in ef2bb4e669
The feval(f, x, args{:}) call would fail under Octave because the contents of
args{:} would be appended twice (hence too many input arguments error).

The same bug would materialize under MATLAB for errorcode>1.
2022-04-19 17:52:37 +02:00
Stéphane Adjemian (Charybdis) 63224ed45d
Bug fix (display of problematic equations). 2022-04-19 16:33:29 +02:00
Stéphane Adjemian (Charybdis) b9f7733c6b
Fix cherrypick routine.
Was failing when model contain variable and parameter names ending with the name
of a built-in function.

Closes #1813
2022-04-17 10:14:15 +02:00
Sébastien Villemot eb6a801bca
CI: bump to Octave 7.1.0 2022-04-15 14:33:02 +02:00
Sébastien Villemot 715aff891a
Octave 7 fixes bug related to generated files in +package folder 2022-04-15 14:33:02 +02:00
Sébastien Villemot 971a89fb73
Octave 7 now has ordqz (and ordeig was implemented in Octave 5) 2022-04-15 14:33:02 +02:00
Sébastien Villemot b7c74f8e9a
Octave 7 now has jsondecode 2022-04-15 14:33:01 +02:00
Sébastien Villemot ec5468c431
Octave 7 compatibility fix: suppress spurious warnings
In this version of Octave, “warning on” really enables all warnings (while this
was not the case in Octave 6, suprisingly; I think this used to be different
with even older Octave releases).

We therefore need to explicitly disable the Octave:array-as-logical warnings,
that is triggered by some internal Octave functions.

We also need to be careful to call “warning_config” instead of “warning on”
when restoring warnings to their default state.
2022-04-15 14:32:54 +02:00
Sébastien Villemot a0e78957da
Octave 7 compatibility fix: “arguments” is a reserved keyword
This confuses the Octave 7 parser in the context of anonymous functions.

Simply rename the variable to “args”.
2022-04-15 14:32:54 +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 b70b864829
perfect_foresight_with_expectation_errors_setup: move terminal condition to last line of CSV file 2022-04-12 15:51:04 +02:00
Sébastien Villemot a8a9051b31
New option “constant_simulation_length” to “perfect_foresight_with_simulation_errors_solver” command 2022-04-12 15:45:50 +02:00
Johannes Pfeifer 23c007e716 IVF_core.m: directly use solver option fields 2022-04-11 08:33:28 +02:00
Stéphane Adjemian (Ryûk) ff9cf3814a
Remove useless copies of options_. 2022-04-10 22:17:45 +02:00
Stéphane Adjemian (Ryûk) b09e91ff55
Add routine description in headers. 2022-04-10 21:22:51 +02:00
Stéphane Adjemian (Ryûk) 87ecfa9ed1
Allow nonlinear solver to fail when simulating a static model.
Print a message instead of throwing an error if the nonlinear solver fails in a
period, since we do not need previous or future values of the endogenous
variables. If the nonlinear solver fails in period t, the endogenous variables
are set to nan in period t.
2022-04-10 20:57:34 +02:00
Stéphane Adjemian (Charybdis) f1aff2b370
Remove calls to dbstack in dynare_solve.
Adding three input parameters for maxit, tolf and tolx.

Closes #1841.
2022-04-10 20:29:57 +02:00
Stéphane Adjemian (Ryûk) 01203f7e39
Stop deterministic simulation if nonlinear solver failure.
Only for purely backward/forward models. In the case of purely static models the
solution for the previous or following period is not required.
2022-04-10 10:55:40 +02:00
Stéphane Adjemian (Ryûk) 23a72d7aaa
Use dynare_solve to simulate purely forward deterministic models. 2022-04-10 09:39:28 +02:00
Stéphane Adjemian (Ryûk) ef2bb4e669
Return and use errorcode from dynare_solve.
Note that the interpretation of the error code depends on the nonlinear solver.
2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) fe7d05f46a
Remove unnecessary condition (Octave/fsolve).
Since we already have checked that the initial guess is not a solution.
2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) 33b1827ea5
Bug fix (mixed complementarity problems). 2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) 48c41e6b0d
Return the initial guess if nonlinear system is ill-behaved...
At the initial guess, and we were not able to find another guess (randomizing).
2022-04-09 16:06:24 +02:00
Stéphane Adjemian (Ryûk) 56863d6e2f
Exit if initial guess is a solution...
Without entering in the nonlinear solvers.
2022-04-09 16:06:24 +02:00
Sébastien Villemot 0779816457 Merge branch 'resid' into 'master'
resid: Fix display of name tags with Ramsey equations

See merge request Dynare/dynare!2017
2022-04-05 06:16:39 +00:00
Johannes Pfeifer a5fe22bd1c resid: Fix display of name tags with Ramsey equations 2022-04-04 22:50:16 +02:00
Johannes Pfeifer c5557b5418 chol_SE.m: fix logical condition and assure symmetry instead of erroring out 2022-04-04 13:52:54 +02:00
Sébastien Villemot b4ce69db3a
Remove options_.slowc field
There was no user interface, and the feature that it provides has lost
relevance over time.

Note that algorithms for block and/or bytecode still internally use some
equivalent of this parameter, but its initial value will no longer be
modifiable (which could lead to bugs, see commit
e49e7e906f).
2022-03-31 17:39:43 +02:00
Sébastien Villemot 82070e4048 Merge branch 'mom_xls2' into 'master'
MoM: fix reading of XLS-files by assigning sheet info to base workspace

Closes #1840

See merge request Dynare/dynare!2014
2022-03-31 06:49:59 +00:00
Sébastien Villemot 3b4ef0df49
Add new “log” option to “var” statement
Ref. #349
2022-03-30 18:01:22 +02:00
Johannes Pfeifer 176baa2215 MoM: fix reading of XLS-files by assigning sheet info to base workspace
Closes https://git.dynare.org/Dynare/dynare/-/issues/1840
2022-03-30 09:59:36 +02:00
Johannes Pfeifer 35c30dc037 Occbin: use data instead of rawdata and gracefully exit if prefilter option is specified
Closes #1842
2022-03-29 12:16:48 +02:00
Stéphane Adjemian (Ryûk) 53324aad69
Return initial guess if trust_region fails. 2022-03-26 09:21:25 +01:00
Stéphane Adjemian (Ryûk) 4cccdd9074
Bug fix. Revert to previous Jacobian matrix if updated one is ill-behaved. 2022-03-25 19:42:40 +01:00
Stéphane Adjemian (Ryûk) f2bf98ee76
Return the value of info as a third argument (block_trust_region). 2022-03-25 19:42:40 +01:00
Stéphane Adjemian (Ryûk) aa8439d4cc
New implementation of the trust region algorithm.
Main difference is the presence of traps for NaN/Inf/Complex numbers in
residuals or the Jacobian matrix. Also added new unit tests.
2022-03-25 19:42:40 +01:00
Johannes Pfeifer 1ed765b8c4 perfect_foresight_solver_core.m: fix Fortran not 2022-03-25 14:23:11 +01:00
Sébastien Villemot facab0f81b
Merge branch 'mom' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2008
2022-03-25 12:51:40 +01:00
Sébastien Villemot e49e7e906f
Forbid changing the value of “slowc” if “block” or “bytecode” is used
The code is buggy and leads to wrong results, so forbid this combination.
2022-03-25 12:36:36 +01:00
Sébastien Villemot 014a3c3f2e
Merge branch 'sensitivity' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2009
2022-03-24 17:53:34 +01:00
Sébastien Villemot 9a4e08fe15
CI: bump to MATLAB R2022a 2022-03-24 17:44:51 +01:00
Sébastien Villemot b31fe76dfd
Provisions for MATLAB R2022a 2022-03-24 17:43:40 +01:00
Johannes Pfeifer f3bf8fb814 MOM: add missing debug option 2022-03-24 15:28:03 +01:00
Johannes Pfeifer a1ebd20a88 dynare_sensitivity.m: provide warning if order is reset 2022-03-24 13:02:25 +01:00
Sébastien Villemot 4da9d1e718
Block (without bytecode): avoid silent failures in some corner cases
Either ensure that oo_.determinstic_simulation.status is set, or really error out.
2022-03-23 17:33:37 +01:00
Sébastien Villemot dd1ec10ec8
Block (without bytecode): use dynatol.f as convergence criterion for perfect foresight
Was incorrectly using solve_tolf.
2022-03-23 17:25:32 +01:00
Sébastien Villemot e5f4d96c71
Fix typo 2022-03-23 16:58:59 +01:00
Sébastien Villemot bef8d80ba8
More conversions to logical values 2022-03-23 16:52:40 +01:00
Sébastien Villemot d5472d2338
Tighten input sanity checks of various MEX files
Note that the unitary test in lyapunov_solver.m that checks sparse matrix input
had to be removed. Previously, this test was passing by chance (because the
sparse test matrices had actually no zero element, hence the internal double
float storage was the same as in the dense case). Now it consistently fails
with the additional checks in disclyap_fast MEX.
2022-03-18 22:49:46 +01:00
Sébastien Villemot 07978affa5
Block decomposition: simplify MATLAB implementation of stack_solve_algo=3 (BiCGStab)
This commit makes it closer to the implementation in bytecode. In practice,
this change fixes convergence problems on some models.
2022-03-16 15:00:09 +01:00
Sébastien Villemot db5e04107f
solve_one_boundary.m: fix crash in verbose mode 2022-03-16 15:00:09 +01:00
Johannes Pfeifer 28536314c0 posterior moments: fix bugs that cause crashes
- Delete non-existing output argument
- prevent info from being overwritten
2022-03-14 14:50:49 +01:00
Stéphane Adjemian (Ryûk) 882091cc97
Return more info about nonlinear solver failures (solve1). 2022-03-03 22:30:38 +01:00
Stéphane Adjemian (Ryûk) 7072359241
Fix fifth output introduced in e815fb2 (exitflag was not updated). 2022-03-03 21:56:44 +01:00
Stéphane Adjemian (Ryûk) afd8359dbf
Do not compute g twice in solve1.
When jacobian is evaluated numerically.
2022-03-03 20:26:06 +01:00
Stéphane Adjemian (Ryûk) 9be328aeda
Cosmetic changes. 2022-03-03 20:24:18 +01:00
Stéphane Adjemian (Ryûk) f2193e8ec8
Add more checks on the initial evaluation. 2022-03-03 18:33:34 +01:00
Stéphane Adjemian (Ryûk) 3c85695b99
Use isinf() instead of isfinite() in solve1 routine. 2022-03-03 18:30:36 +01:00
Stéphane Adjemian (Ryûk) e815fb2901
Display exitflag returned by fsolve.
When the Newton fails in the simulation of backward models.
2022-03-03 18:19:33 +01:00
Stéphane Adjemian (Ryûk) e6592b3943
Display more info if Newton fails in backward model simulations. 2022-03-03 16:57:59 +01:00
Stéphane Adjemian (Ryûk) 7ee124bbba
Fix bug.
Return the paths for the endogenous only before the nonlinear solver crash.
2022-03-03 10:57:40 +01:00
Stéphane Adjemian (Charybdis) 90ae54a6ff
Translate to English. 2022-03-03 09:35:30 +01:00
Stéphane Adjemian (Charybdis) 9d1e07a2e4
Fix headers. 2022-03-03 09:35:30 +01:00
Sébastien Villemot ae1e31b7e0
Restore the possibility of calling the “resid” function without argument
Can be useful when writing “z = resid;” in a .mod file (i.e. not using the
preprocessor syntax).
2022-03-01 16:40:51 +01:00
Sébastien Villemot 3d7299c1e4
New option “non_zero” to the “resid” command
When this option is given, the “resid” command only displays non-zero residuals
2022-03-01 14:26:16 +01:00
Sébastien Villemot 0147faad5f
Fix stack_solve_algo=1 without bytecode, on solve two boundaries simple/complete blocks
The result for the last simulation period was wrong.
2022-02-25 16:32:16 +01:00
Stéphane Adjemian (Charybdis) c9825c803a
Fix description of the conditional_forecast command.
Closes #1844
2022-02-24 20:33:47 +01:00
Sébastien Villemot 4d39c6fab5 Merge branch 'error_message' into 'master'
get_error_message.m: condition on index being non-zero

See merge request Dynare/dynare!2003
2022-02-24 16:23:16 +00:00
Johannes Pfeifer a60ce435bd get_error_message.m: condition on index being non-zero
dsge_likelihood will expand the vector due to entry four of info containing the penalty, creating a 0 for entry 2
2022-02-22 12:22:51 +01:00
Sébastien Villemot a4f4d4462c
Merge branch 'disp_dr' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2002
2022-02-21 16:19:36 +01:00
Johannes Pfeifer d79895b66a Display of decision rules: deal with overflow of fields 2022-02-20 11:00:34 +01:00
Sébastien Villemot 1a9abc247f
Merge branch 'mom' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2001
2022-02-18 14:22:53 +01:00
Stéphane Adjemian (Charybdis) e7d11dd7b1
Remove aux variables from target definition (PAC). 2022-02-18 09:13:17 +01:00
Johannes Pfeifer b5dc90b311 mom: add missing trust_region_initial_step_bound_factor option 2022-02-18 00:50:08 +01:00
Johannes Pfeifer 05519aaaa1 mom: add missing verbosity option 2022-02-18 00:48:39 +01:00
Sébastien Villemot a376d8c9fe
Fix steady state computation with bytecode+block and solve_algo ⩽ 4 or ⩾ 9
– Temporary terms were not correctly passed between blocks
– solve_algo ⩾ 9 was incorrectly passed through bytecode own’s solver instead
  of through dynare_solve
2022-02-17 17:28:37 +01:00
Sébastien Villemot 3734762af7
For stack_solve_algo={2,3} and solve_algo={7,8}, rather use a “crout” ILU decomposition for the preconditioner
In 3025a14ed9, the call to the deprecated “luinc”
has been replaced by a call to “ilu”.

However, the type of “ilu” decomposition had not been specified. The default,
“nofill”, does not make use of the “droptol” option which was used with
“luinc”. Also, under Octave, it does not work when there is a zero on the
diagonal of the input matrix.

Rather use the “crout” type, which addresses these two issues.
2022-02-14 12:34:50 +01:00
Sébastien Villemot fa7b331cf4
Fix crash in simulation of “Solve forward/backward complete” blocks with stack_solve_algo=4 (without bytecode) 2022-02-11 18:11:42 +01:00
Sébastien Villemot bb793d87cc
Block decomposition: fix deterministic simulations for block of type “Solve backward”
The results were incorrect for those two kinds of block, when not using bytecode.
2022-02-09 14:07:33 +01:00
Sébastien Villemot dd34554c4e
Block decomposition: fix computation of eigenvalues for blocks of “Solve backward complete” type 2022-02-09 14:07:33 +01:00
Sébastien Villemot 685598c6e2
Add interface to “static” and “incidence” options of “model_info”
These options were implemented and described in the reference manual, but their
interface was missing.

By the way, make various minor improvements to the description of “model_info”
in the reference manual. In particular, remove the single quotes around the two
aforementioned options (which are a remnant from an older interface).
2022-02-09 14:07:30 +01:00
Sébastien Villemot 39f47dc957
local_state_space_iteration_k MEX now uses the Fortran code (instead of the C++ code)
Closes: #1802
2022-02-04 11:49:46 +01:00
Johannes Pfeifer 4ccc7c7262 mom.objective_function.m: fix field naming 2022-02-03 15:12:46 +01:00
Sébastien Villemot 2cb6988de6
Merge branch 'jscale' of git.dynare.org:JohannesPfeifer/dynare
Ref. !1999
2022-02-03 09:25:16 +01:00
Sébastien Villemot adb4007bda
Merge branch 'smm_lsqnonlin' of git.dynare.org:JohannesPfeifer/dynare
Ref. !1998
2022-02-03 09:24:37 +01:00
Johannes Pfeifer 217de5084c check_posterior_sampler_options: make global variable an input
Does not properly work for scale_file-option as caller has variable not global
2022-02-02 16:20:12 +01:00
Johannes Pfeifer 57eda3886d SMM: fix logic for check of vector output 2022-02-02 13:27:46 +01:00
Stéphane Adjemian (Charybdis) 1d916b1fe2
Bug fix.
[skip ci]
2022-01-27 11:07:09 +01:00