Commit Graph

9609 Commits (6adf1c26392d737dc31844aa3add0441e040f4a8)

Author SHA1 Message Date
Sébastien Villemot 9fa64ee0d4
ramsey_policy and estimation: remove incorrect check about number of instruments
These should only be warnings, and they are already implemented in
model_diagnostics (see 39ae080997).
2023-03-24 12:31:41 +01:00
Sébastien Villemot 43190b001f
Fix typo in commit 647ff5cd20 2023-03-17 18:19:03 +01:00
Sébastien Villemot 4f52ba0dbc
CI: bump to MATLAB R2023a 2023-03-17 16:32:13 +01:00
Sébastien Villemot 13908ee068
Provisions for MATLAB R2023a 2023-03-17 16:32:09 +01:00
Sébastien Villemot 5642e994fc CI: bump to MATLAB R2023a 2023-03-17 16:29:00 +01:00
Sébastien Villemot 647ff5cd20
MATLAB compatibility: warning subscripting:noSubscriptsSpecified removed in R2023a 2023-03-17 16:03:37 +01:00
Sébastien Villemot f07d73e63e
CI: use system-wide Octave binary 2023-03-16 17:43:39 +01:00
Sébastien Villemot 816e94e9f9
Octave fix: do not change the global recursive delete confirmation setting
Only change the setting locally, as is done in isolder.m and
parallel/dynareParallelRmDir.m.
2023-03-16 17:24:18 +01:00
Sébastien Villemot 060c694066
model_diagnostics: remove workaround for Octave
The rank() and null() functions accept a tolerance argument since at least
Octave 3.8.
2023-03-16 17:24:18 +01:00
Sébastien Villemot 441173ec5a
Remove workaround for eig() function under Octave
The eig() function has been been able to return the left eigenvectors since at
least Octave 4.4.
2023-03-16 17:24:18 +01:00
Sébastien Villemot b7477ac0b6
cmaes: remove broken local isoctave() function 2023-03-16 17:24:18 +01:00
Sébastien Villemot 56ffc87e1c
Remove workaround for gaminv() bug fixed in Octave 4.4
See #161 and http://savannah.gnu.org/bugs/?52569
2023-03-16 17:24:18 +01:00
Sébastien Villemot 704f3596cb CI: use system-wide Octave binary 2023-03-16 17:17:19 +01:00
Stéphane Adjemian (Ryûk) 6e0a09f5fa
Add interface to flip endogenous and exogenous variables.
Calls to change_type can be done in a file named model-inversion-setup.inc in
the current folder. The file is included, between the declaration of the
exogenous variables and the model block, in the aggregate mod file if and only
if the macrovariable InvertModel exists and is equal to True. To invert a model,
the user just has to run the aggregated mod file with -DInvertModel=True on the
command line.
2023-03-16 14:12:21 +01:00
Johannes Pfeifer c8045e2c5e model_diagnostics.m: fix logic of using block information
Also fixes bug with rank not working with sparse matrices
2023-03-15 18:11:37 -04:00
Sébastien Villemot ff318d1163
Merge branch 'model_diagnostics' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2125
2023-03-13 17:59:43 +01:00
Johannes Pfeifer 39ae080997 model_diagnostics.m: fix logic of Ramsey instrument checks
The mapping from economic to steady state instruments is not one-to-one. Trigger warnings instead of errors.
2023-03-13 10:39:06 -04:00
Stéphane Adjemian (Ryûk) 7583790851
Improve error message. 2023-03-09 11:25:04 +01:00
Stéphane Adjemian (Ryûk) a3b249c375
Update dseries submodule (fill_ method). 2023-03-08 18:16:11 +01:00
Stéphane Adjemian (Ryûk) 0d39cab9e1
Add option to print parameter values. 2023-03-04 22:31:54 +01:00
Stéphane Adjemian (Ryûk) c006645c7f
Remove output argument. 2023-03-04 20:10:50 +01:00
Stéphane Adjemian (Ryûk) 2ab19c1aa9
Do not compute variables if they are not returned. 2023-03-04 20:10:06 +01:00
Stéphane Adjemian (Ryûk) 656a7bf867
Cosmetic changes. 2023-03-04 18:03:59 +01:00
Stéphane Adjemian (Ryûk) f6a76066f9
Remove warning. 2023-03-04 17:52:50 +01:00
Stéphane Adjemian (Ryûk) 0b9141fdca
Remove and rename routine (print_equations).
Also:

 - rename first input argument,
 - remove second argument (always expand expectations).
2023-03-04 17:49:33 +01:00
Stéphane Adjemian (Ryûk) a0d53277c1
Fix condition (variable name can have less than characters). 2023-03-04 17:13:45 +01:00
Sébastien Villemot f02d66ce7c
moment_function: remove unused function 2023-03-01 16:47:42 +01:00
Sébastien Villemot a2591c474e
selif: remove unused function 2023-03-01 16:44:05 +01:00
Sébastien Villemot 845eac99d3
bicgstab_: remove unused function 2023-02-17 22:01:32 -05:00
Sébastien Villemot f5523c7bab
bksupk: remove unused function 2023-02-17 22:01:32 -05:00
Sébastien Villemot 62805b7183
perfect_foresight_simulation + bksup0: remove unused functions 2023-02-17 22:01:32 -05:00
Sébastien Villemot f938014e84
bksup1: turn into a local function of sim1_lbj 2023-02-17 22:01:32 -05:00
Sébastien Villemot 24f689b2de
restricted_steadystate: turn into local function of evaluate_steady_state_file 2023-02-17 22:01:28 -05:00
Sébastien Villemot 6bddbca01d
bytecode_steadystate: turn into a local function of evaluate_steady_state 2023-02-17 22:01:25 -05:00
Sébastien Villemot 1a421d93dd
steady: turn homotopy{1,2,3} into local functions 2023-02-16 14:22:27 -05:00
Sébastien Villemot 2c44923384
No longer turn off output pagination
The “more off” command is incompatible with MATLAB Online.

Moreover, output pagination is disabled by default on MATLAB and on
Octave (since version 4 for the latter), so in most cases that command would do
nothing.

Incidentally, this allows users to enable output pagination should they want
to.

[skip ci]
2023-02-08 11:02:29 -05:00
Sébastien Villemot 65053667cf
New “homotopy_alt_starting_point” option to “perfect_foresight_solver” command 2023-02-07 14:49:00 -05:00
Sébastien Villemot d6370a6d28 Merge branch 'occbin_init_smo' into 'master'
occbin enhancements and bug fixes

See merge request Dynare/dynare!2123
2023-02-07 14:23:14 +00:00
Sébastien Villemot be698d5f98
Perfect foresight + homotopy: add missing newline 2023-02-06 15:14:02 -05:00
Marco Ratto 63a299f64e new error codes introduced and applied for occbin smoother.
- 321 when simulation within occbin smoother fails
- 322 when occbin smoother does not converge.
2023-02-06 14:58:42 +01:00
Marco Ratto f565a0a84a bug fix and avoid missing output arguments and when smoother exits after non convergence of simulation. 2023-02-06 11:39:24 +01:00
Marco Ratto f0aa2fb86f cosmetic change 2023-02-03 14:25:59 +01:00
Marco Ratto b886de92dc trap case when simulation does not converge within smoother 2023-02-03 14:25:32 +01:00
Marco Ratto cdd195576e store binding_indicator_history once it has been set 2023-02-03 14:24:58 +01:00
Marco Ratto 783c237d17 evaluate set_prior only when needed 2023-02-03 14:21:02 +01:00
Marco Ratto 035db8b8c4 bug fixes when using guess regime 2023-02-03 14:20:51 +01:00
Marco Ratto 77e87be48b try with base regime before returning error 2023-02-03 14:20:39 +01:00
Marco Ratto 22e6fb1814 make sure also ALL updated variables in period 1 are reconstructed with smoother_redux. test model changed accordingly. 2023-02-03 14:20:28 +01:00
Marco Ratto 7132cb593e bug fix for init variables to be defined only with occbin PKF 2023-02-03 14:20:16 +01:00
Marco Ratto 50aa20c742 eliminate buggy and useless check for existence of guess regime variable. this may create bugs in running PKF update step! 2023-02-03 14:20:02 +01:00
Marco Ratto e51a30eaf5 Bug fix for the case where no prior is defined for estim params 2023-02-03 14:19:50 +01:00
Marco Ratto a346639020 when filter is NOT diffuse, allow likelihood to handle violation of constraints in period 1. 2023-02-03 14:19:28 +01:00
Marco Ratto 6598d615d1 in some cases, order is not yet set to 1 2023-02-03 14:19:16 +01:00
Marco Ratto a91c36f920 first_period_occbin_update is an index, not a boolean 2023-02-03 14:19:05 +01:00
Marco Ratto 74acb2d1f5 bug fix using index t 2023-02-03 14:18:54 +01:00
Marco Ratto 21c9d59e8c incorporate information about states in period 0 for occbin with smoother_redux 2023-02-03 14:18:32 +01:00
Marco Ratto 0622f01f4e filter out t=1 when storing aalphahat and eetahat 2023-02-03 14:18:21 +01:00
Marco Ratto b90dff1986 retrieve states in period 0 from smoother and deploy this to:
- allow having binding regimes in period 1 with occbin
- further improve recovering of smoothed variables in period 1 under smoother_redux option
2023-02-03 14:18:10 +01:00
Sébastien Villemot 5aca770931
perfect_foresight_with_expectation_errors_{setup,solver}: fix bugs with several exogenous
Closes: #1883
2023-01-24 15:02:07 +01:00
Sébastien Villemot 538f38d269 Merge branch 'occbin_debug' into 'master'
missing_observations_kalman_filter.m: provide debugging information on PKF problems

See merge request Dynare/dynare!2122
2023-01-23 10:39:17 +00:00
Johannes Pfeifer 4307711c60 missing_observations_kalman_filter.m: provide debugging information on PKF problems 2023-01-19 11:57:35 +01:00
Sébastien Villemot cfaf5a685d
Preprocessor: actually obey the “mfs” option for the static model
As a consequence, fix steady state computation when mfs > 0.
2023-01-17 19:08:32 +01:00
Sébastien Villemot 8aabdaee9c
Consolidate functions for solving steady state with block and/or bytecode 2023-01-17 15:25:47 +01:00
Sébastien Villemot 7b6058509f
Drop unused function 2023-01-17 14:48:36 +01:00
Sébastien Villemot 005769210a
Drop unused function 2023-01-17 14:47:52 +01:00
Sébastien Villemot 5342476196
Drop unused function 2023-01-17 14:46:50 +01:00
Sébastien Villemot 023afc7ebb
Drop unused function 2023-01-17 14:46:46 +01:00
Sébastien Villemot 1c5c1639e1
Drop unused function 2023-01-16 14:38:09 +01:00
Sébastien Villemot e5f100b152
Drop unused function 2023-01-16 14:38:06 +01:00
Sébastien Villemot c187d0ead9
Drop unused function
It should probably have been removed in 9c6e219990.
2023-01-16 14:38:03 +01:00
Sébastien Villemot 8f1a4cb363
Drop block-decomposed first-order perturbation solution and kalman filter 2023-01-13 16:57:49 +01:00
Stéphane Adjemian (Ryûk) 91dd917d62
Cosmetic/Efficiency changes.
- Use bsxfun for centering data if possible,
 - Factorise LU decomposition,
 - Remove useless operations during the presampling step.
2023-01-12 17:45:51 +01:00
Sébastien Villemot e250067959
Use sparse representation for block-decomposed perfect foresight and steady state computation
Ref. #1859
2023-01-12 16:28:02 +01:00
Sébastien Villemot 3c55aa57e1
Use sparse representation for evaluating the static model
We also take advantage of the fact that the non-block version is always
available next to the block one, so when we are only interested in the residual
as a whole, we simplify by using the non-block version.
2023-01-10 16:21:44 +01:00
Sébastien Villemot b343f0231d
Ensure that generated sparse MEX files are unloaded before the preprocessor is run
This workaround already existed for the legacy representation.
2023-01-10 16:07:29 +01:00
Johannes Pfeifer 0b0a4ef386 dsge_likelihood.m: flag analytical_derivation as incompatible with endogenous_prior 2023-01-09 17:57:18 +01:00
Sébastien Villemot f84753025d
Bytecode: the block and non-block versions now coexist in parallel
As a consequence, a new “block_decomposed” option of the bytecode MEX has been
introduced to explicitly select the block-decomposed version.

Note that we do not always use the “block_decomposed” option even when the
“block” option has been passed to the user, in situations where the block
decomposition brings nothing (e.g. when evaluating the residuals of the whole
model).
2023-01-09 15:20:46 +01:00
Stéphane Adjemian (Ryûk) b7693c3273
Add routine for conditional likelihood (first order). 2023-01-06 14:57:45 +01:00
Sébastien Villemot f93a7f7192
Merge branch 'disp_aux_4' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2118
2023-01-04 10:59:21 +01:00
Johannes Pfeifer 45450651a2 model_info.m: fix display of block decomposition 2023-01-03 16:17:43 +01:00
Sébastien Villemot ead9023cec Merge branch 'steady_nan' into 'master'
steady state computation: trap cases where parameters are NaN

See merge request Dynare/dynare!2119
2023-01-03 11:24:26 +00:00
Stéphane Adjemian (Guts) 5b72a3041c
Use new unit tests interface. 2023-01-02 22:58:20 +01:00
Johannes Pfeifer 64d61c3268 steady state computation: trap cases where parameters are NaN 2022-12-28 11:48:23 +01:00
Johannes Pfeifer 1866286fb8 subst_auxvar.m: correctly take care of exo leads and lags 2022-12-21 11:16:41 +01:00
Johannes Pfeifer 1219f085e7 disp_dr.m: fix display for type 4 auxiliaries 2022-12-20 13:06:05 +01:00
Stéphane Adjemian (Ryûk) aee541aabe
Update dseries submodule. 2022-12-15 17:25:29 +01:00
Johannes Pfeifer a4634cd1b7 dynare_estimation_init.m: set observable mapping for inversion filter if only smoother is used 2022-12-09 13:19:32 +01:00
Johannes Pfeifer e7ca989b21 prior_posterior_statistics.m: fix logical condition 2022-12-05 14:52:03 +01:00
Johannes Pfeifer 9de0688cfe Make default jscale depend on number of estimated parameters
Related to https://git.dynare.org/Dynare/dynare/-/issues/1849
2022-12-03 16:00:27 +01:00
Sébastien Villemot d574705b4a
Design and performance improvement to solve_algo={12,14}
Use the new time-recursive block decomposition computed by the preprocessor
for:
- the simulation of backward models with “simul_backward”
- the perfect foresight simulation of purely backward/forward/static models

Also note that in this case, the preprocessor now defaults to “mfs=3” (i.e. it
minimizes the set of feedback variables and tries to renormalize equations).

This replaces the previous algorithm based on Dulmage-Mendelsohn (dmperm), plus
an ad hoc identification of some equations that can be evaluated (those with a
LHS equal to a variable, the log of a variable, or the diff-log of a variable).

By the way, the block_trust_region MEX has been modified so that it accepts a
boolean argument to decide whether it performs a Dulmage-Mendelsohn
decomposition (if not, then it performs a simple trust region on the whole
nonlinear system).

This provides a significant performance improvement (of almost an order of
magnitude for solve_algo=14 on a 700 equations model).
2022-11-30 14:47:57 +01:00
Johannes Pfeifer bbdcdc89a2 sim1.m: use operation that preserves sparsity 2022-11-28 16:20:44 +01:00
Sébastien Villemot ba9b0e9829
Merge branch 'occbin_IVF' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2019
2022-11-28 11:05:03 +01:00
Stéphane Adjemian (Charybdis) 3aeb1ff7e3
Fix pac.estimate.iterate_ols.
Was crashing if the auxiliary model contains a constant.

See https://forum.dynare.org/t/iterative-ols-for-pac-equation/21379.
2022-11-24 16:29:49 +01:00
Johannes Pfeifer 26fbc6c56d IVF: improve error handling 2022-11-23 16:46:40 +01:00
Johannes Pfeifer 80f6799c38 IVF: only store smoother results if requested 2022-11-23 16:44:18 +01:00
Johannes Pfeifer 1e2fb88d32 IVF: fix error handling for smoother 2022-11-23 15:37:12 +01:00
Johannes Pfeifer eeecccd29b IVF_core.m: fix header 2022-11-23 15:18:44 +01:00
Johannes Pfeifer 2c879cc64c compute_trend_coefficients.m: fix header 2022-11-18 22:04:07 +01:00
Marco Ratto 178e892e04 big fix for initialization of diffuse filter with correlated observation error covariance matrix 2022-11-18 12:41:15 +01:00
Marco Ratto 81ba952414 big fix in diffuse filter initialization: incorrect mapping of observables when removing zero columns of T 2022-11-18 10:52:37 +01:00
Sébastien Villemot 3184db12f2 Merge branch 'occbin_smoother' into 'master'
OccBin Smoother: do not write non-converged results to oo_

Closes #1863

See merge request Dynare/dynare!2100
2022-11-16 18:40:05 +00:00
Johannes Pfeifer 4d603fb335 OccBin Smoother: do not write non-converged results to oo_
Closes https://git.dynare.org/Dynare/dynare/-/issues/1863
2022-11-16 17:13:08 +01:00
Marco Ratto 03f93c5329 bug fix with steady state when plotting the expand of groups of shocks 2022-11-15 23:10:38 +01:00
Marco Ratto b0ce054c00 missing line that stores info on violation of constraint in expectation (needed to check for periodic solutions) 2022-11-15 23:09:48 +01:00
Sébastien Villemot 7075e05ddf
Merge branch 'cosmetic' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2096
2022-11-07 14:21:26 +01:00
Sébastien Villemot d602453bb6
CI: bump to Octave 7.3.0 2022-11-07 14:11:27 +01:00
Sébastien Villemot 3a5e38f49c CI: bump to Octave 7.3.0 2022-11-07 14:10:57 +01:00
Johannes Pfeifer 5dbbe6d72c compute_Pinf_Pstar.m: fix header 2022-11-07 10:12:34 +01:00
Sébastien Villemot b336fbeb0d
Merge branch 'occbin_features' of git.dynare.org:rattoma/dynare
Ref. !2094
2022-11-04 14:59:06 +01:00
Marco Ratto a1e0c35c1f bug fix when max_check_ahead_periods interacts with curb_retrench 2022-11-04 11:20:52 +01:00
Marco Ratto 2f23604824 new option max_check_ahead_periods (renaming old undocumented option max_periods), that truncates the number of periods for which agents check ahead the regime (a sort of myopic behavior beyond max_check_ahead_periods),
the option is valid for simul, smoother and likelihood.
2022-11-04 11:17:37 +01:00
Sébastien Villemot ee200a03b8
isoctave: performance improvement
Explicitly specify that OCTAVE_VERSION is a builtin. Otherwise the call to
“exists” will look for a file, among other things, which takes a lot of time.
2022-11-02 17:54:58 +01:00
Sébastien Villemot 720de52702
Make get_equation_number_by_tag more robust
The implementation was relying on the fact that in M_.equations_tags, all
equations have a name tag and they appear in the order given by equation
numbers. There is no guarantee that this will always be the case, so use a more
robust approach.

By the way, improve the implementation of get_equation_name_by_number.
2022-10-26 14:18:59 +02:00
Sébastien Villemot 5f6946a1b9
Display equation names in “model_info” command 2022-10-25 18:41:17 +02:00
Sébastien Villemot befc6f59b9
Improve comments
[skip ci]
2022-10-24 18:05:15 +02:00
Marco Ratto e31b313776 cosmetic change 2022-10-20 19:09:52 +02:00
Marco Ratto d0150997f6 accept periodic solution in simulations ONLY IF two regimes differ by one period, to avoid pathological solutions.
We also do not check for periodicity when check ahead periods have been increased endogenously, again to avoid mis-identified periodicity.

Any other type of periodicity, is flagged as non-convergence with error code 313 (infinite loop of solutions).
2022-10-20 16:13:34 +02:00
Marco Ratto 2ccd3d4a0e if max_periods is set to finite number, enforce algorithm to check ahead ONLY until max_periods (i.e. when we want agents to be myopic beyond some future period) 2022-10-20 16:11:01 +02:00
Marco Ratto 3765ef77cd add option reset_check_ahead_periods_in_new_period:
when performing stochastic simulations, check ahead periods may increase endogenously at some point for regimes very long in expectation. such longer check ahead periods may considerably slow down convergence in subsequent periods, so users may want to avoid this.
2022-10-20 16:10:14 +02:00
Marco Ratto f8adfa3fa5 with smoother_redux, factor out definition of nk to reconstruct filtered variables, and use a local variable nk (so options_.nk may remain empty). 2022-10-20 15:30:37 +02:00
Marco Ratto bb9e45d0d0 max size for QMC is 1111 2022-10-20 15:14:39 +02:00
Marco Ratto 1a46c1dc89 impede prior_trunc=0 when doing sensitivity 2022-10-20 15:14:09 +02:00
Marco Ratto eb41618614 trap errors also in univariate update step for occbin 2022-10-20 15:06:36 +02:00
Marco Ratto ce21248e97 set noprint = true when simulating, to avoid crashes; only save info1 file under debug option 2022-10-20 15:06:26 +02:00
Marco Ratto eb6f17e783 check if initial states are empty, and set them to zero. 2022-10-20 15:05:39 +02:00
Johannes Pfeifer cbbbdf4b3d make_y_.m: fix interaction with steady_state_model
closes https://git.dynare.org/Dynare/dynare/-/issues/1866
2022-10-13 16:33:58 +02:00
Johannes Pfeifer fe0606ae06 logarithmic_reduction.m: use positive penalty add-on 2022-10-11 16:13:03 +02:00
Johannes Pfeifer 5226db4b3c logarithmic_reduction.m: add missing error codes 2022-10-11 16:12:03 +02:00
NormannR afb044c23e Fix cycle reduction:
(i) making the norms consistent between cycle_reduction and its test;
(ii) remove hard errors in cycle_reduction Fortran and Matlab routines
2022-10-11 12:11:30 +02:00
NormannR 855887b249 Implements a logarithmic reduction Fortran routine and the associated test 2022-10-11 12:11:06 +02:00
NormannR 3ea0baf21e Matlab logarithmic reduction: making norms and error codes consistent with cyclic reduction codes 2022-10-11 09:51:22 +02:00
Sébastien Villemot e8444c16a7 Merge branch 'kalman_algo_3' into 'master'
kalman_update_algo_3.m: correct options name

See merge request Dynare/dynare!2090
2022-10-10 15:36:03 +00:00
Johannes Pfeifer 95a15815a8 kalman_update_algo_3.m: correct options name 2022-10-08 18:01:05 +02:00
Johannes Pfeifer 7874c302a0 Cycle reduction: account for new error codes 2022-10-03 17:15:20 +02:00
Sébastien Villemot 5b8fee5237
Merge branch 'cycle_reduction_fortran' of git.dynare.org:normann/dynare
Ref. !2085
2022-10-03 14:40:55 +02:00
Normann Rion d17204cc84 Implements a cycle reduction Fortran routine and the associated test.
The Fortran routine replaces the former Matlab code in matlab/cycle_reduction.m
2022-10-03 14:38:12 +02:00
Sébastien Villemot 2ab174aa8c
Merge branch 'cosmetics' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2087
2022-10-03 14:31:35 +02:00
Sébastien Villemot 9938f08790
Merge branch 'occbin_error' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2086
2022-10-03 14:31:02 +02:00
Normann Rion 7af14aaa0d Fix cycle_reduction.m:
- a condition of an if-then-else block is never fulfilled
   - dimensions are inconsistent in the solution-check output message
2022-10-03 11:21:15 +02:00
Johannes Pfeifer d5d3e9060b calibrate_mh_scale_parameter.m: fix typo in error message
[skip CI]
2022-09-30 14:01:34 +02:00
Johannes Pfeifer 5defbdeb92 dsge_likelihood.m: add missing penalty for Occbin 2022-09-30 09:55:00 +02:00
Normann Rion 1b12d9e44b Fixes local_state_space_iteration_3_test: sets a default value for the number of threads local_state_space_iteration_3 may use 2022-09-27 11:03:36 +02:00
Sébastien Villemot 39ac1f7628
Particles submodule update
This should have gone into !2071.
2022-09-26 17:55:36 +02:00
NormannR 4cdb763ea4 Integrates the local_state_space_iteration_3 mex into dynare's bayesian estimation eco-system
Should be merged after the mex MR !2045 and the particles MR !16
2022-09-26 09:14:34 +02:00
Sébastien Villemot 755c5645a6 Merge branch 'irf' into 'master'
Fix posterior IRF generation with loglinear option

See merge request Dynare/dynare!2083
2022-09-21 15:44:11 +00:00
Stéphane Adjemian (Ryûk) 9ea8e17ff2
Update dseries submodule.
Add function returning dummy variable in a dseries object.
2022-09-21 10:56:53 +02:00
Johannes Pfeifer ee8dfb76c4 Fix posterior IRF generation with loglinear
The unlogged steady state was used for both the starting value and the baseline
2022-09-21 10:14:23 +02:00
Johannes Pfeifer 12ec1ec0e6 PosteriorIRF_core1.m: replace function using globals 2022-09-21 09:29:43 +02:00
Johannes Pfeifer be2dd4456d getIrfShocksIndx.m: replace global variables by inputs 2022-09-21 09:27:43 +02:00
Johannes Pfeifer 945379a318 resol.m: use isempty instead of length 2022-09-21 09:25:06 +02:00
Johannes Pfeifer 9506e723c9 ispd.m: filter out Octave incompatibility https://savannah.gnu.org/bugs/?63082 2022-09-20 12:42:04 +02:00
Frédéric Karamé 128eaa2da5
Add SMC samplers.
Ref. !2005
2022-09-19 16:32:28 +02:00
Sébastien Villemot 83836350e0
Merge branch 'stacked' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2079
2022-09-19 16:25:21 +02:00
Sébastien Villemot ef5f25c17a
Merge branch 'model_inversion' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2080
2022-09-19 16:22:42 +02:00
Normann Rion 7721ea041c Amends particle filters to use the local_state_space_iteration_3 mex 2022-09-19 15:43:10 +02:00
Normann Rion 7fac60f5f6 Fix auxiliary_particle_filter.m: strange iteration range `for i=1:size(nodes)`
All hunks depending on this loop amended
2022-09-19 15:16:29 +02:00
Normann Rion ea01f8f22a Fix online_particle_filter.m: wrong condition for pruning in terms of order selection 2022-09-19 06:53:13 +01:00
Johannes Pfeifer cf7b06e96d perfect-foresight-models/solve_stacked_problem.m: restore compatibility with Matlab before auto expansion was introduced 2022-09-16 19:27:23 +02:00
Johannes Pfeifer 43978cada3 mom.optimal_weighting_matrix.m: assure symmetry of W_opt 2022-09-16 11:15:15 +02:00
Sébastien Villemot 2c063175de
CI: bump to MATLAB R2022b 2022-09-15 15:59:32 +02:00
Sébastien Villemot 36a7b019fc
Provisions for MATLAB R2022b 2022-09-15 15:59:32 +02:00
Sébastien Villemot 9540313b93 CI: bump to MATLAB R2022b 2022-09-15 15:43:31 +02:00
Johannes Pfeifer 73ca68e052 model_inversion: Header cosmetics 2022-09-15 10:16:05 +02:00
Sébastien Villemot 68b527f8a7
Merge branch 'sim1' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2076
2022-09-13 17:36:26 +02:00
Sébastien Villemot ac238ce625
dseries: fix bug in @dseries/plot in relation to “hold on” 2022-09-13 17:34:40 +02:00
Johannes Pfeifer 66fa6e6742 sim1_purely_backward.m: fix typo 2022-09-13 13:52:29 +02:00
Sébastien Villemot 9b787d8417 Merge branch 'mcp_steady' into 'master'
Provisions for solving steady state with MCP-tag

See merge request Dynare/dynare!1877
2022-09-13 09:26:08 +00:00
Johannes Pfeifer 3fbab4cbe0 Provisions for solving steady state with MCP-tag 2022-09-12 17:18:16 +02:00
Sébastien Villemot b071e85214
Merge branch 'lmmcp' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2067
2022-09-12 16:58:05 +02:00
Sébastien Villemot 6437fc0fce Merge branch 'model_debug' into 'master'
model_diagnostics.m: use boolean for debug option as block_trust_region expects it

See merge request Dynare/dynare!2066
2022-09-08 15:30:55 +00:00
Sébastien Villemot 27075fa8eb
Merge branch 'path' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2073
2022-09-06 12:29:44 +02:00
Sébastien Villemot d92fa5db17
CI: bump to Octave 7.2.0 2022-09-06 11:20:54 +02:00
Sébastien Villemot 550e48884a CI: bump to Octave 7.2.0 2022-09-06 11:17:59 +02:00
Johannes Pfeifer 0225cb23ac Path solver: trigger lmmcp flag
Solves https://git.dynare.org/Dynare/dynare/-/issues/1720 for PATH solver
2022-09-06 09:34:20 +02:00
Johannes Pfeifer 85a894efde lmmcp: display norm of residuals in homotopy 2022-09-01 13:00:09 +02:00
Stéphane Adjemian 4aa47e521c Merge branch 'Cosmetics' into 'master'
Cosmetic fixes to various functions

See merge request Dynare/dynare!2072
2022-08-31 14:57:16 +00:00
Stéphane Adjemian (Ryûk) ca31a087f8
Fix typo (remove trailing underscore to option variable). 2022-08-31 15:26:09 +02:00
Johannes Pfeifer 6872d8b0d1 Various cosmetic fixes 2022-08-31 14:58:00 +02:00
Stéphane Adjemian d8baeb8f41 Merge branch 'diag' into 'master'
model_diagnostics.m: fix options_-name

See merge request Dynare/dynare!2069
2022-08-31 11:50:25 +00:00
Stéphane Adjemian da1659d844 Merge branch 'cmaes' into 'master'
cmaes.m: allow suppressing warning

See merge request Dynare/dynare!2070
2022-08-31 11:48:56 +00:00
Stéphane Adjemian (Ryûk) 9301024d71
Do not check steady state if nocheck option used in steady command...
In perfect foresight solvers with linear approximation.
2022-08-31 13:12:25 +02:00
Stéphane Adjemian (Ryûk) e5102eeefd
Bug fix for mode_compute=6.
We did not keep track of the first and second order moment when calling gmhmaxlik_core.
2022-08-31 13:06:30 +02:00
Johannes Pfeifer 9e048c2428 cmaes.m: allow suppressing warning 2022-08-29 13:35:35 +02:00
Johannes Pfeifer ba9ca26bf6 model_diagnostics.m: fix options_-name 2022-08-28 13:30:21 +02:00
Johannes Pfeifer 63469057ca model_diagnostics.m: use boolean for debug option as block_trust_region expects it 2022-08-11 09:43:30 +02:00
Stéphane Adjemian 20511495de Merge branch 'load_results_after_load_mh' into 'master'
load_results_after_load_mh: fix location of file

See merge request Dynare/dynare!2065
2022-08-10 15:10:03 +00:00
Johannes Pfeifer 905e7c4344 load_results_after_load_mh: fix location of file 2022-08-10 12:55:00 +02:00
Marco Ratto 3c0f8ec624 bug fixes in error traps in PKF update steps 2022-07-29 16:39:59 +02:00
Johannes Pfeifer df09084a89 posterior_sampler_initialization.m: save missing ProposalCovariance for mh_recover 2022-07-28 11:12:18 +02:00
Johannes Pfeifer 82a2717181 Remove unused metropolis_hastings_initialization.m
Remnant of refactorization in 4445f17e
2022-07-28 11:03:37 +02:00
Sébastien Villemot ca32be2dcb
Merge branch 'model_diag' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2058
2022-07-27 18:07:12 +02:00
Johannes Pfeifer 253c87b894 model_diagnostics.m: allow setting tolerance for singularity checks starting with Matlab 2022a 2022-07-27 13:15:29 +02:00
Sébastien Villemot ad97361f67
Fix bug under MATLAB < R2016b introduced in 906062cfe5
The logic for testing the MATLAB version was incorrect.
2022-07-26 22:36:30 +02:00
Marco Ratto 6d03a65488 bug fix for smoother_redux and state uncertainty with OCCBIN 2022-07-26 18:07:39 +02:00
Sébastien Villemot f7ea4313b5 Merge branch 'smoother' into 'master'
Various fixes to smoother output

See merge request Dynare/dynare!2057
2022-07-26 14:33:42 +00:00
Sébastien Villemot 88a21cc6d1 Merge branch 'occbin_bug' into 'master'
fix bug in ambiguity in the first regime stored, between 01 10 and 11.

See merge request Dynare/dynare!2055
2022-07-26 13:33:36 +00:00
Johannes Pfeifer 2816550290 PKF: get required output if nk=1
Related to https://git.dynare.org/Dynare/dynare/-/issues/1861
2022-07-26 15:07:23 +02:00
Johannes Pfeifer 622f831625 Inversion filter: disable unavailable smoother outputs
Related to https://git.dynare.org/Dynare/dynare/-/issues/1861
2022-07-26 14:43:31 +02:00
Johannes Pfeifer 9bc71dffde dynare_estimation_1.m: fix typo 2022-07-26 14:36:25 +02:00
Johannes Pfeifer 59882e803b store_smoother_results.m: correctly set input arguments 2022-07-26 14:35:36 +02:00
Johannes Pfeifer b5c741998c evaluate_planner_objective.m: fix output for linear-quadratic problems solved at second order
Welfare does not correspond to the steady state in this case
2022-07-26 13:35:55 +02:00
Marco Ratto 906062cfe5 fix bug in ambiguity in the first regime stored, between 01 10 and 11. 2022-07-26 12:44:55 +02:00
Sébastien Villemot f21577bf39
Merge branch 'ident_fix' of git.dynare.org:wmutschl/dynare
Ref. !2054
2022-07-26 11:55:47 +02:00
Sébastien Villemot 7005634eb0
Merge branch 'ident_fix' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2050
2022-07-26 11:55:02 +02:00
Willi Mutschler 30a6d35f5a
🐛 identification do plots and display results only for nonempty objects
fixes #1860
2022-07-26 10:26:13 +02:00
Sébastien Villemot 848c111cf4 Merge branch 'discretion' into 'master'
discretionary_policy_initialization.m: fix logic of check for instruments

See merge request Dynare/dynare!2053
2022-07-25 09:26:50 +00:00
Johannes Pfeifer e9a1902410 discretionary_policy_initialization.m: fix logic of check for instruments
Related to https://git.dynare.org/Dynare/preprocessor/-/issues/101
2022-07-22 21:52:05 +02:00
Sébastien Villemot 13709f6853
Add “fsolve_options” option to “steady” command
Closes: #1856
2022-07-22 14:35:19 +02:00
Sébastien Villemot ceedb4869e
solve_algo=0: move to optimoptions under MATLAB, and to new options names for MATLAB⩾R2016a 2022-07-22 14:21:42 +02:00
Sébastien Villemot 572fed3994
Merge branch 'dyn_forecast' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2051
2022-07-05 17:09:51 +02:00
Sébastien Villemot 84d744ea75
Merge branch 'DM' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2049
2022-07-05 17:09:31 +02:00
Sébastien Villemot 0a9dc0137a
k_order_welfare MEX: fix documentation of output arguments 2022-07-05 11:55:33 +02:00
Johannes Pfeifer 35a25b8fb5 dyn_forecast.m: gracefully exit if decision rules and remove unused output argument 2022-07-04 17:33:20 +02:00
Sébastien Villemot 5d048b998d
Merge branch 'cosmetics' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2047
2022-07-04 15:15:47 +02:00
Sébastien Villemot deb0f8b401
Merge branch 'ramsey_discount' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2046
2022-07-04 15:15:08 +02:00
Johannes Pfeifer 0f64652a73 identification_checks.m: fix comment 2022-06-28 09:44:05 +02:00
Johannes Pfeifer dbde8294cd disp_identification.m: account for non-boolean indicator
Related https://git.dynare.org/Dynare/dynare/-/issues/1860
2022-06-28 09:43:46 +02:00
Johannes Pfeifer 5788f1bc71 dynare_solve: deal with Dulmage-Mendelsohn decomposition returns a non-square block
Related to https://git.dynare.org/Dynare/dynare/-/issues/1851
2022-06-27 15:30:14 +02:00
Johannes Pfeifer 74672bb294 DsgeSmoother.m: delete redundant line 2022-06-27 11:23:19 +02:00
Johannes Pfeifer 77d6782cb4 evaluate_steady_state.m: check whether planner_discount is actually set for ramsey 2022-06-27 11:17:15 +02:00
Stéphane Adjemian (Charybdis) 584e661fff
Ensure that the ordering of the exogenous variables is correct...
in model inversion routines.
2022-06-17 17:48:00 +02:00
Stéphane Adjemian (Charybdis) f19ab66bab
Fix precision issue.
Introduced in patch 8b197bf71c which incidentally reduced the precision to six digits.
2022-06-17 16:48:35 +02:00
Sébastien Villemot 5ccd5f2613
Revert "More explicit message when the Dulmage-Mendelsohn decomposition returns a non-square block"
This reverts commit fa71d4712d.

Ref. #1851
2022-06-16 18:05:14 +02:00
Sébastien Villemot fa71d4712d
More explicit message when the Dulmage-Mendelsohn decomposition returns a non-square block
Closes: #1851
2022-06-16 15:53:45 +02:00
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
Johannes Pfeifer 1b4a4c8778 shock_decomposition.m: correctly pass initial date for plotting 2022-06-08 16:03:36 +02:00
Sébastien Villemot 5423949047
Merge branch 'marco_fixes' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2042
2022-06-07 15:04:28 +02:00
Marco Ratto 3575afdf1d save info1 file only under debugging 2022-06-02 09:52:48 +02:00
Marco Ratto 9304b535f4 port to occbin smoother the same computational improvements done for standard one under smother_redux option. This also require to provide occbin reduced state-space matrices as output argument of missing_DiffuseKalmanSmootherH3_Z.m 2022-06-02 09:52:47 +02:00
Marco Ratto 12c4e03d7b bug fixes in retrieving the k-step ahead predictions and updated variables from occbin simulations 2022-06-02 09:52:47 +02:00
Marco Ratto 16bc2b3e5e plot_shock_decomposition: filter out other forbidden characters (parentheses and dot) for field name 2022-06-02 09:52:21 +02:00
Marco Ratto 61632ef28f marginal_density.m: make computation of log(det(sigma)) robust numerically 2022-06-02 09:51:12 +02:00
Marco Ratto 48ec0a60e8 Trap the case when Q is null matrix 2022-06-02 09:49:38 +02:00
Johannes Pfeifer 8ac72590da PKF: document incompatibilities and throw proper errors if triggered 2022-05-31 17:40:03 +02:00
Sébastien Villemot 09f2541550 Merge branch 'PKF' into 'master'
Bug fixes for PKF

See merge request Dynare/dynare!2038
2022-05-31 08:00:22 +00:00
Sébastien Villemot 5f403e9f62
Merge branch 'solve1' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2035
2022-05-25 18:49:38 +02:00
Johannes Pfeifer c9fd266cbb solve1.m: trap zero Jacobian case 2022-05-25 14:31:12 +02:00
Johannes Pfeifer c91e1f895b trust_region.m: trap case where linear combination with weight 0 on infinite value returns NaN 2022-05-25 14:21:16 +02:00
Johannes Pfeifer cf548b467d dsge_likelihood.m: distinguish PKF problems with singularity in other KFs 2022-05-25 14:15:29 +02:00
Johannes Pfeifer c623696b4b kalman_update_algo_1.m: properly set array dimensions 2022-05-25 14:15:18 +02:00
Johannes Pfeifer 93ae4849b7 missing_observations_kalman_filter.m: remove unused output whose dimensions grow over time 2022-05-25 12:55:05 +02:00
Marco Ratto 2279529851 fixed bug in sampling in the neighborhood of a critical point 2022-05-24 15:08:50 +02:00
Stéphane Adjemian (Ryûk) 45c0e82f3b
Fix bug introduced in fdb1daad. 2022-05-20 10:29:44 +02:00
Stéphane Adjemian (Ryûk) fdb1daadc9
Deactivate third unit test (local_state_space_iteration_2). 2022-05-20 08:44:28 +02:00
Stéphane Adjemian (Ryûk) 0df38369a7
Fix typo. 2022-05-20 08:31:03 +02:00
Sébastien Villemot 5138d41ac6
Merge branch 'kalman_update' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2032
2022-05-19 14:55:45 +02:00
Sébastien Villemot a83570e1f4
Merge branch 'foresight_resids' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2031
2022-05-19 14:55:08 +02:00
Sébastien Villemot 3496c26699
Merge branch 'evaluate_planner' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2030
2022-05-19 14:54:28 +02:00
Sébastien Villemot 962d66807c
Merge branch 'gsa' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2025
2022-05-19 14:53:35 +02:00
Johannes Pfeifer 0f333f29eb kalman_update_algo_1.m: introduce error handling
Closes https://git.dynare.org/Dynare/dynare/-/issues/1854
2022-05-19 11:56:42 +02:00
Johannes Pfeifer 74dc4f81f0 perfect_foresight_solver.m: loop over dynamic file when mex cannot be used
Closes https://git.dynare.org/Dynare/dynare/-/issues/1850
2022-05-18 08:59:39 +02:00
Johannes Pfeifer b037bc9438 GSA sampling from prior range: replace infinity by huge number to avoid NaN 2022-05-17 18:29:42 +02:00
Johannes Pfeifer 9f265c5b5b stab_map_.m: remove redundant and commented out code to make file readable 2022-05-17 18:29:05 +02:00
Sébastien Villemot 05ab494d6c
Merge branch 'dyn_ramsey' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2029
2022-05-17 18:23:57 +02:00
Sébastien Villemot 1f2e22712f
Merge branch 'tolx' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2028
2022-05-17 18:23:37 +02:00
Johannes Pfeifer 26db005e61 evaluate_planner_objective.m: add warning if planner discount is not smaller than 1 2022-05-17 18:10:56 +02:00
Johannes Pfeifer 9b45886526 dyn_ramsey_static.m: remove unnecessary piece of code 2022-05-17 15:31:19 +02:00
Johannes Pfeifer 31ea784a5c dynare_solve.m: honor tolx in fsolve 2022-05-17 15:27:21 +02:00
Sébastien Villemot 40871519fc
Merge branch 'mom_SE' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2024
2022-05-16 19:10:52 +02:00
Stéphane Adjemian (Ryûk) c033a08cec
Remove third unit test in local_state_space_iteration_2. 2022-05-13 22:14:07 +02:00
Stéphane Adjemian (Ryûk) 2ff705f15c
Change second unit test for local_state_space_iteration_2...
To something closer to what we actually do when we estimate a model.
2022-05-13 22:12:09 +02:00
Stéphane Adjemian (Ryûk) cd76bdff9e
Fix and update unit tests for local_state_space_iteration_2.
Add mat file with git lfs.
2022-05-13 12:13:46 +02:00
Stéphane Adjemian (Ryûk) c17728da83
Make sure matlab routine is used in first unit test. 2022-05-12 13:02:41 +02:00
Stéphane Adjemian (Ryûk) 49727cf7a0
Remove %$ in unit tests. 2022-05-12 13:00:44 +02:00
Stéphane Adjemian (Ryûk) 68887b36e6
Cosmetic change. 2022-05-12 13:00:02 +02:00
Stéphane Adjemian (Ryûk) 8edc6538bf
Rewrite header doc. 2022-05-12 12:58:32 +02:00
Stéphane Adjemian (Ryûk) c492ce7b73
Remove unused routines. 2022-05-12 10:33:48 +02:00
Stéphane Adjemian (Ryûk) 4e90a47521
Throw an error if some parameters are not initialised. 2022-05-12 10:33:48 +02:00
Johannes Pfeifer 0bc9a163b2 mom.standard_errors.m: provide more informative error message when hitting bounds during finite difference step 2022-05-12 09:51:21 +02:00
Sébastien Villemot a2a90c7e37
Merge branch 'model_diag' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2023
2022-05-05 18:41:34 +02:00
Johannes Pfeifer 737524d182 model_diagnostics.m: add check for potential naming conflict 2022-05-04 13:05:27 +02:00
Sébastien Villemot 63a116fb28
New += and *= syntaxes in “endval(learnt_in=…)” blocks 2022-05-03 17:46:59 +02:00
Sébastien Villemot 0b32ad5b51
Merge branch 'ramsey_steady' of git.dynare.org:JohannesPfeifer/dynare
Ref. !2022
2022-04-29 17:44:28 +02:00
Sébastien Villemot b084c2e931
Perfect foresight with expectation errors: move computation of terminal steady states to the setup command
This is more logical, since those values are constraints from the point of view
of the solver.

Also, this allows to have maxit and tolf options for the steady state solver,
at the level of the setup command, without a clash with the same option names
for the deterministic solver at the level of the solver command.
2022-04-29 15:56:11 +02:00
Sébastien Villemot 418a8ebb5f
Drop steady_.m which is only a thin wrapper around evaluate_steady_state
As a consequence, move the sanity checks inside evaluate_steady_state, where
they make more sense.
2022-04-29 15:14:43 +02:00
Johannes Pfeifer 21004adf03 evaluate_steady_state.m: correctly account for presence of auxiliary variables potentially depending on Lagrange multipliers
Otherwise error message due to NaN may be thrown out due to them non having been set. Closes https://git.dynare.org/Dynare/preprocessor/-/issues/94
2022-04-28 21:49:05 +02:00
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 542e30d417 CI: bump to Octave 7.1.0 2022-04-15 14:29:20 +02:00
Sébastien Villemot eb6becfa82 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 must therefore avoid to reenable all warnings after having disabled a
problematic one.
2022-04-15 14:17:34 +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 8a0dba1f88 Use Unicode copyright symbol (in UTF-8 encoding) in all source files
It is now supported by the MATLAB editor (as of R2022a).
2022-04-13 14:47:52 +02:00
Sébastien Villemot 90484edb0e Use Unicode copyright symbol (in UTF-8 encoding) in all source files
It is now supported by the MATLAB editor (as of R2022a).

[skip ci]
2022-04-13 13:24:51 +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
Sébastien Villemot 62ff3f3194 CI: bump to MATLAB R2022a 2022-03-24 17:21:26 +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
Frédéric Karamé 773cbd2f38 Routines moved out of the submodule. 2022-03-09 17:21:02 +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
Sébastien Villemot 84562f3568 Update calling sequence of local_state_space_iteration_k for new Fortran version 2022-02-04 11:49:38 +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
Stéphane Adjemian (Ryûk) fca5b99a03
Fix bug (missing condition).
The cherrypick was failing if the selected equations were not about a PAC equation (e.g. a VAR expectation
model), because the code was assuming the existence of the pac field in M_.
2022-01-27 10:49:19 +01:00
Sébastien Villemot df185cf19b Merge branch 'mom_field' into 'master'
mom: fix error message if matched_moments-block is missing

See merge request Dynare/dynare!1997
2022-01-26 14:39:24 +00:00
Johannes Pfeifer 4ef4b929d5 mom: fix error message if matched_moments-block is missing 2022-01-25 16:26:12 +01:00
Sébastien Villemot 9c79b0d73f
Octave: better workaround for bug 46282 2022-01-25 11:32:08 +01:00
Stéphane Adjemian (Ryûk) f5f47cd834
Add new option last_simulation_period to initval_file command.
Also adjust the periods in Simulated_time_series (output of the perfect
foresight solver in the workspace). Note that this dseries object contains the
observations for the initial condition (M_.orig_maximum_lag observations) and
for the terminal condition (M_.orig_maximum_lead observations).

See #1838.

Fix testsuite (wrong file name)
2022-01-21 17:39:47 +01:00
Stéphane Adjemian (Charybdis) 38e1cd5d4e
Do not include auxiliaries in Simulated_time_series...
And add paths for the exogenous variables.
2022-01-21 16:50:42 +01:00
Stéphane Adjemian (Ryûk) a08de9e661
Partial fix for #1837. 2022-01-19 09:20:22 +01:00
Sébastien Villemot 1edb8ba7ba Merge branch 'planner_check' into 'master'
evaluate_planner_objective.m: fix check for NaN moments

See merge request Dynare/dynare!1996
2022-01-18 16:45:06 +00:00
Johannes Pfeifer b5d129de1f evaluate_planner_objective.m: fix check for NaN moments 2022-01-18 16:12:20 +01:00
Stéphane Adjemian (Charybdis) 1fd4904ccc
Fix evaluate routine if PAC's growth option is constant. 2022-01-17 16:56:58 +01:00
Stéphane Adjemian (Charybdis) e1d0ce28d2
Remove aux variables from evaluate routine.
Auxiliary variables were still present in the growth neutrality correction. This
commit remove the auxiliaries, so that the user doesn't need to update the
database with the auxiliary variable definitions.

Also adds integration test.

TODO Check that it works with log unary op
TODO Complete tests by checking that the written evaluate routine works
2022-01-14 20:45:46 +01:00
Johannes Pfeifer 3b59253416 occbin: fix bug if there is only a surprise shock in the first period 2022-01-14 08:47:37 +01:00
Johannes Pfeifer 958dcf7b48 online auxiliary filter: add option to set termination condition of loop 2022-01-13 18:42:55 +01:00
Johannes Pfeifer 43dc073192 online_auxiliary_filter.m: fix infinite loop 2022-01-12 10:54:16 +01:00
Sébastien Villemot ca4601bd1c
dyntable: fix column width calculation in case of minus sign
By the same token, improve the logical expression for determining whether all
values are infinite (it was nevertheless giving the right result, because an
“all()” is implicit when an array of booleans is passed to an “if” statement).
2022-01-11 17:44:24 +01:00
Sébastien Villemot 6f83afbf42
Octave: fix some warning ids
Those warning ids were renamed in Octave 3.8.
2022-01-11 17:22:58 +01:00
Marco Ratto 9305cd1ef1 fixed header of occbin solver 2022-01-06 15:02:43 +01:00