Commit Graph

6969 Commits (a6907ba3e04c6255ec66c717a20f9893c109ffc3)

Author SHA1 Message Date
Stéphane Adjemian (Charybdis) e2b20f3e3e
Bug fix. Dynare configuration hook was not evaluated. 2020-03-26 10:15:35 +01:00
Johannes Pfeifer 071ab1e14f imcforecast.m: fix faulty logic of warning
Steady state and time shift were missing
2020-03-21 12:06:24 +01:00
Johannes Pfeifer ef8671bb99 Correctly pass prior_trunc option in identification 2020-03-17 13:28:40 +01:00
Sébastien Villemot e93c7b6b25
Reorder files generated by “moments_varendo” option of “estimation”
If there were more than 10 files of Metropolis parameter draws, the ordering
the files containing the posterior moments could be different from that of the
parameter draws. This is because the “dir()” command was used to order the
files containing the parameter draws, and because the command uses alphabetic
ordering, file #10 would come before #2.

This commit enforces the numerical ordering of files.
2020-03-12 15:56:55 +01:00
Sébastien Villemot d01846e5be
Fix incorrect test for options_.posterior_sampler_options.posterior_sampling_method
Thanks to checkcode().
2020-03-10 14:13:49 +01:00
Johannes Pfeifer 99f4fcadcc model_diagnostics.m
Update parameter vector from steady state file and provide correct nocheck flag
2020-03-10 11:06:35 +01:00
Johannes Pfeifer 16f65a2f33 prior.m: fix missing function input
Prevents crashes in "prior moments"
2020-03-08 09:00:33 +01:00
Johannes Pfeifer b7ef2181f9 print_info.m: Fix bug in error handling
get_error_message.m needs to always provide the error string, only throwing out the error message needs to depend on noprint

Closes https://git.dynare.org/Dynare/dynare/issues/1714
2020-03-08 09:00:01 +01:00
Johannes Pfeifer 2004641a10 dyn_ramsey_static.m: abort of steady state file signals error code 2020-03-06 18:55:01 +01:00
Johannes Pfeifer 0a52dedfda Ramsey with multiple instruments: return properly sized vector if residuals are complex 2020-03-06 18:50:40 +01:00
Houtan Bastani eb6ab0696a
gui: added fields to `oo_` to indicate which commands have been run 2020-03-03 11:45:46 +01:00
Houtan Bastani 2d468b5c1d
replace unused variables with `~` 2020-03-03 11:43:38 +01:00
Johannes Pfeifer 9e5cb1422d
Save jscale to record structure before running MCMC
Useful in conjunction with mh_tune_jscale in cases where the posterior sampler crashes
2020-02-29 10:28:50 +01:00
Sébastien Villemot 3c30d9f658
Merge branch 'M_output' of git.dynare.org:JohannesPfeifer/dynare 2020-02-25 16:37:02 +01:00
Sébastien Villemot 3aaac2b811
Merge branch 'discretionary_bug' of git.dynare.org:JohannesPfeifer/dynare 2020-02-25 16:23:30 +01:00
Houtan Bastani 7a02b3bfd2
various fixes to dynareParallelDelete.m
- did not account for cases when username not set (namely when remote is localhost)
- did not account for cases when remote directory was not set (namely when remote is localhost)
- added unnecessary `filesep` to `pname` when `pname` was empty
- ignore unused output arguments (it is necessary to explicitly ignore them to prevent unwanted output from the `system` call)
- globbing did not work as it was expanded on the calling machine not the remote; pass call to `bash -c` to handle this
2020-02-25 16:18:55 +01:00
Houtan Bastani 3d9fe36ec5
ignore unused return value
[skip ci]
2020-02-25 14:50:56 +01:00
Houtan Bastani 54fe1c754c
fix typo in variable name 2020-02-25 14:50:55 +01:00
Johannes Pfeifer b3849322d4 discretionary_policy_1.m: move setting of dr before return statement
Prevents aborting with a cryptic crash
2020-02-25 14:10:45 +01:00
Johannes Pfeifer 97f7b773e5 stoch_simul.m: Make sure graphs folder exists before creating eps-loader 2020-02-24 16:13:44 +01:00
Johannes Pfeifer 3cf622cdc1 Output M_ in stoch_simul.m and discretionary_policy.m
Fixes https://git.dynare.org/Dynare/dynare/issues/1711 together with https://git.dynare.org/Dynare/preprocessor/-/merge_requests/15
2020-02-24 14:14:41 +01:00
Willi Mutschler 6223016683
🐛 Fix displaying of wrong order in disp_identification 2020-02-16 22:55:16 +01:00
Willi Mutschler f4dc2ee743
🐛 Fix wrong third-order computation in pruned state space system
Related to #1706

 Add unit test for pruned state space up to order 3


//


Changed tolerance in new test
2020-02-16 22:55:16 +01:00
Johannes Pfeifer 14ef010b9e geweke_moments.m: correctly use parameter instead of hard-coded value 2020-02-16 12:14:04 +01:00
Stéphane Adjemian (Charybdis) 00eb074630
Updated particles submodule. 2020-02-15 17:02:56 +01:00
Stéphane Adjemian (Charybdis) fb19cce284
Fixed online filter (wrong number of arguments).
[skip ci]
2020-02-15 13:58:48 +01:00
Sébastien Villemot 133b77c061
Conditional forecasting: compatibility fix with MATLAB < R2016b
Implicit expansion (a.k.a. automatic broadcasting) was introduced in MATLAB
R2016b (and it has been present in Octave for quite some time).

Hence use bsxfun() instead.

The problem had been introduced in 228b2a532.
2020-02-13 18:21:29 +01:00
Sébastien Villemot 57d1966644 Merge branch 'discretionary_policy' into 'master'
Factorization of discretionary policy

Closes #1705

See merge request Dynare/dynare!1709
2020-02-12 13:45:53 +00:00
Johannes Pfeifer 9800041433 discretionary_policy_1: return if steady state file signals error 2020-02-12 13:37:36 +01:00
Johannes Pfeifer 8b4fa7c2d6 Factorize call to solver routines under optimal policy and without
Related to https://git.dynare.org/Dynare/dynare/issues/1173
2020-02-12 13:19:46 +01:00
Johannes Pfeifer b07adee2d9 Add missing path to dynare_config.m 2020-02-12 13:13:31 +01:00
Johannes Pfeifer dd0e9fe719 Initialize instr_id field of discretionary_policy 2020-02-12 12:59:34 +01:00
Johannes Pfeifer d78ef0d6df Move discretionary_policy routines to own folder 2020-02-12 12:55:12 +01:00
Johannes Pfeifer a1ebc94e4f Refactor discretionary_policy codes
Closes https://git.dynare.org/Dynare/dynare/issues/1705
2020-02-12 12:52:54 +01:00
Johannes Pfeifer 228b2a532f conditional forecasts: add check whether simulation was successful 2020-02-12 11:04:46 +01:00
Sébastien Villemot 181725c778
Discretionary policy: remove useless call to steady state file
The steady state is always zero for discretionary policy. And, in the case of a
steady state file, this call would not be able to update parameters (since it
does not modify M_), nor would it need to do so (since this has already be done
earlier in the function).

Ref. #1705
2020-02-11 18:14:05 +01:00
Sébastien Villemot ae59f4dcb2
Further improvements to parsing of arguments on the MATLAB command-line
Under GNU/Linux and macOS, double-quote arguments before passing them to the
shell. In particular, this allows passing single-quotes within those arguments.

We therefore have to escape the four characters that are interpreted within
double-quoted strings in POSIX shells: \, ", $ and `

On Windows, also systematically escape the backslashes.

Also move display of arguments before escaping, so that it remains readable.

Ref. #1696
2020-02-10 18:24:51 +01:00
Houtan Bastani 72dfbbdce2
fix bug in creation of latex tables
[skip ci]
2020-02-07 15:58:15 +01:00
Sébastien Villemot 4c256c2cc8 Merge branch 'discretion' into 'master'
Fixes related to estimation under discretion

See merge request Dynare/dynare!1707
2020-02-06 13:37:52 +00:00
Johannes Pfeifer 30bfa16211 Fixes related to estimation under discretion 2020-02-06 13:30:00 +01:00
Johannes Pfeifer 1d1c0ab829 imcforecast.m: make sure that draw index for CIs stays within feasible bounds 2020-02-05 21:18:25 +01:00
Sébastien Villemot d8cd55109c
Testsuite: increase tolerance in unitary tests for prior_draw.m 2020-02-04 21:25:16 +01:00
Houtan Bastani 2ae1bc7770
gui: update call to stoch_simul 2020-02-04 15:57:56 +01:00
Sébastien Villemot 177c5c359f
Implement estimation under discretionary optimal policy
Also add a test case.

For the time being, estimating parameters that appear in the discount factor is
not supported.

Ref. #1173
2020-02-03 18:29:45 +01:00
Sébastien Villemot 59e11615a0
Discretionary policy: preparatory work for estimation
This removes global variables from discretionary_policy_1.m, and also adapts
the behaviour and interface of the function so that it is similar to
resol.m (in particular, it no longer returns an empty “dr” in case of failure,
and it sets “oo_.dr”).

Ref. #1173
2020-02-03 18:05:29 +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 6542ce4a16
datatomfile: fix the name of the .mod file at the top of the generated file
With the new layout of the files generated by the preprocessor, it would always
print “driver.m”, which is not very informative.
2020-01-29 21:04:45 +01:00
Houtan Bastani d527096e61
simplify parsing of MATLAB command line arguments
closes #1696

includes preprocessor changes
- Removed prefixing of doubles between -1 and 1 with 0.
- Fixed bug introduced in 985d742.
- macro processor: simplify handling of `@#define`
2020-01-29 14:56:52 +01:00
Stéphane Adjemian (Charybdis) 7aeb506143
Updated particles submodule.
[skip ci]
2020-01-27 22:57:41 +01:00
Sébastien Villemot d0dc40c29e Merge branch 'sub_draws' into 'master'
trap error when sub_draws is set to zero

See merge request Dynare/dynare!1699
2020-01-27 17:45:50 +00:00
Sébastien Villemot f9e7ede810 Merge branch 'rescale_prediction_error_covariance' into 'master'
rescale_prediction_error_covariance

See merge request Dynare/dynare!1698
2020-01-27 17:45:38 +00:00
Willi Mutschler 3ecc44b542 Fix minimal state space test files for old matlab 2020-01-26 16:00:02 +00:00
Marco Ratto 73291b0b19 before issuing F singularity, check with rescaled F matrix: this spares lots of computing time when singularity only happens in the first KF step. 2020-01-24 14:17:26 +01:00
Willi Mutschler e843ccbd0d
📃 Update license 2020-01-24 12:45:20 +01:00
Willi Mutschler aa0f278edc
📃 Update license 2020-01-24 12:45:15 +01:00
Willi Mutschler 5525a7c515
🏇 Better minimal state space handling and unit tests 2020-01-24 12:45:08 +01:00
Willi Mutschler 1aa3dda449
🚿 construct list of fields needed from M_, options_, oo_
Get fields
2020-01-24 12:45:01 +01:00
Willi Mutschler 46c4dea559
📄 Updated code comments 2020-01-24 12:44:54 +01:00
Willi Mutschler a62e69cf39
🐛 fix identification strength barplots for one parameter 2020-01-24 12:44:34 +01:00
Willi Mutschler c4f7c416fa
🐛 Fix #1694 by robust rank tolerance and histc 2020-01-24 12:44:26 +01:00
Marco Ratto 79cca46dd6 trap error when sub_draws is set to zero 2020-01-24 10:22:24 +01:00
Sébastien Villemot d3e90a8dbf
Fix the handling of options nopreprocessoroutput, onlyjson and onlymacro when they appear at the top of the .mod file
The nopathchange is still not supported in this context, so document it.

Also recommend the whitespace-separated syntax instead of the comma-separated
syntax, since the latter is inconsistent with the way options are passed on the
command-line.

Closes: #1667
2020-01-23 18:58:08 +01:00
Sébastien Villemot 09be021dcd
Add license header for allVL1.m
Ref. #1689
2020-01-22 18:03:47 +01:00
Sébastien Villemot 808119b1ad
Various fixes to the license.txt file
In particular, merge back preprocessor information.
2020-01-22 18:03:33 +01:00
Sébastien Villemot fd115c22e7
Restore the BSD-2-clause license header of two files
Those had been incorrectly converted to GPL-3+ in commit
1bf81c9f5a.
2020-01-22 16:53:22 +01:00
Sébastien Villemot 9f51b2508a
Disable spurious warnings as early as possible
This is necessary for Octave under Windows, to avoid a warning about isdir()
triggered by user_has_octave_forge_package.m.
2020-01-21 18:39:33 +01:00
Sébastien Villemot e371b1a94b
New option “filtered_theoretical_moments_grid”, that supersedes “hp_ngrid”
The old option is left for backward-compatibility purposes, but it has the same
effect as the new one.

Closes: #1093
2020-01-20 16:23:10 +01:00
Stéphane Adjemian (Charybdis) 4ff0b66a8c
Updated dseries submodule (bug fix in merge method).
[skip ci]
2020-01-17 18:27:49 +01:00
Sébastien Villemot 048564c97b
MATLAB compatibility fix: R2014a is 8.3, not 8.4 2020-01-16 16:54:47 +01:00
Sébastien Villemot 1912f67778
MATLAB compatibility fix: automatic broadcasting was introduced in R2016b
For earlier versions, either use bsxfun or handle special cases differently.
2020-01-13 18:30:28 +01:00
Sébastien Villemot 8fff99115a
MATLAB compatibility fix: double-quoted strings only accepted since R2017a 2020-01-13 18:30:28 +01:00
Sébastien Villemot d9b9f78392 Merge branch 'particle_check' into 'master'
Particle filters: provide error if trends or prefiltering is used

Closes #1690

See merge request Dynare/dynare!1695
2020-01-13 11:02:29 +00:00
Johannes Pfeifer 03a8759560 Particle filters: provide error if trends or prefiltering is used
Closes https://git.dynare.org/Dynare/dynare/issues/1690
2020-01-10 19:08:51 +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
Stéphane Adjemian (Charybdis) 3e408ffd6b
Updated dseries submodule (flip method and geometric nanmean).
[skip ci]
2020-01-09 19:16:15 +01:00
Sébastien Villemot 4e314a529b
Bump minimal required Octave version to 4.4 2020-01-06 18:29:47 +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
Houtan Bastani bf102030cb
support saving exogenous variables in `dynasave`, `dynasave`; fix bugs in `dynasave`; add test
- `dynasave`: if a variable being saved was named `n` or `s`, the `eval` statements would break the code
- `dynasave`: use the `-struct` option to `save` to avoid `eval` statements
- `dynasave` and `dynatype`: do everything in 1 loop instead of 2
- `dynasave` and `dynatype`: use `strcmp` instead of `strfind`

- preprocessor update contains:
  - Partial reversion of global indentation of macro processor header files introduced in e2d5a83592634f0604d8c86409748cd2ec5906d2
  - Symbol List check pass: allow caller to specify the valid types of variables in a Symbol List
  - Allow `dynasave` and `dynatype` to support exogenous variables in their var_list

issue #1691
2020-01-06 12:45:44 +01:00
Johannes Pfeifer 632c0a3943 sim1.m: provide missing function input to nested function 2020-01-06 09:06:18 +01:00
Marco Ratto 2134f2616d
for parallel execution we need to initialize also prior_draw (used in slice sampler). 2020-01-02 17:48:29 +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
Willi Mutschler 45e9771eb8
Fixed bug regarding non-stationary variables in pruned moments 2019-12-20 12:30:53 +01:00
Willi Mutschler 8b9b49f8d7
Finished identification order=1|2|3
Note that I still need to do a code clean up (provide some licenses for functions from other people) and to double check order=3. There is also much room for speed and memory improvement, but the code works fine for now. I will also provide more information to the merge request soon about the detailed changes for future reference.
2019-12-20 12:28:55 +01:00
Sébastien Villemot c04c111d97
Merge branch 'rattoma/dynare-epilogue'
Ref. !1688
2019-12-20 11:51:41 +01:00
Stéphane Adjemian (Charybdis) b5d4b4059b Return an error if pruning is used with order>3 in estimation. 2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 031569fa96 Allow higher order approximations in nonlinear filters. 2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 227b2661cb Do not trap order>2 in estimation. 2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 4e0deb7987 Removed persistent variables. 2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 76e3c6ca68 Removed unnecessary parts of the code.
- Call resol instead of dynare_resolve.
 - Removed definition of constant and trend which are not used in nonlinear filters.
 - Cosmetic changes.
2019-12-20 11:31:56 +01:00
Stéphane Adjemian (Charybdis) 6418e225bf Rewrote doc header. 2019-12-20 11:31:56 +01:00
Sébastien Villemot 996bdd6c64 New local_state_space_iteration_k MEX, for nonlinear filters at k-order
It applies the approximated policy function to a set of particles, using
Dynare++ routines.

There is support for parallelization, using Dynare++ multithreading
model (itself based on C++11 threads; we don’t use OpenMP because it is
incompatible with MKL). For the time being, default to a single thread. This
should be later refined through empirical testing.
2019-12-20 11:31:56 +01:00
Houtan Bastani f8fb8c0450
add missing comments/copyright to function 2019-12-20 10:37:06 +01:00
Marco Ratto 31c29d08c9 provisions for making shock decompositions for epilogue variables.
In case the epilogue formula is non-linear, the non additive non-linear term is distributed proportionally to the size of the individual shock contribution.
It is triggered by new option with_epilogue, applicable to commands:
1) shock_decomposition, realtime_shock_decomposition,
where preprocessor should trigger
options_.shock_decomp.with_epilogue=true;
2) initial_condition_decomposition
where preprocessor should trigger
options_.initial_condition_decomp.with_epilogue=true;
2019-12-19 22:19:39 +01:00
Marco Ratto aa50724379 Changed cumfix==0: splits non-additive components proportionally to size of shock contribution 2019-12-19 22:15:04 +01:00
Sébastien Villemot 1ac7344e42
Rollback introduction of +get and +set folders
Under Octave, having namespaces called “get” and “set” overshadows the builtin
functions with the same names, which are needed for graphics manipulation.

Therefore we go back to the initial function naming scheme, but moving all
those functions under an “accessors” subdirectory.

Among other things, this is a revert of
e4134ab59b and
c5e86fcb59.

Ref. !1655, !1686
2019-12-19 17:20:38 +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
Sébastien Villemot 0ba453dd0a
Fix file permissions 2019-12-19 10:47:55 +01:00
Sébastien Villemot 2c9ea629bd Merge branch 'utilsx' into 'master'
Moved get and set utilities to +get and +set

See merge request Dynare/dynare!1686
2019-12-19 09:42:19 +00:00
Sébastien Villemot 6ba10b88f2
Preprocessor: various provisions for improvements to shock decomposition
Accordingly update the MATLAB routines, the testsuite, and the manual.

In particular, “squeeze_shock_decomp” has been renamed to
“squeeze_shock_decomposition” for consistency with other commands.

Ref. #1687, !1655
2019-12-18 11:56:57 +01:00
Marco Ratto a6e3e7256a trap possible issues in slice iterations and save info file on progress 2019-12-17 23:24:48 +01:00