dynare issueshttps://git.dynare.org/Dynare/dynare/-/issues2024-03-27T14:03:31Zhttps://git.dynare.org/Dynare/dynare/-/issues/1927oo_ used but undefined in +occbin/kalman_update_algo_3.m2024-03-27T14:03:31ZSébastien Villemotoo_ used but undefined in +occbin/kalman_update_algo_3.mLine 259 of `matlab/+occbin/kalman_update_algo_3.m` reads:
```
[~, out, ss] = occbin.solver(M_,oo_,options_);
```
But `oo_` is undefined in that file.
I encountered this error when running `calib_smoother` after `oc...Line 259 of `matlab/+occbin/kalman_update_algo_3.m` reads:
```
[~, out, ss] = occbin.solver(M_,oo_,options_);
```
But `oo_` is undefined in that file.
I encountered this error when running `calib_smoother` after `occbin_setup`.https://git.dynare.org/Dynare/dynare/-/issues/1926No dates in Matlab plot when plotting2024-03-19T13:02:54ZRaphaël MARTINNo dates in Matlab plot when plottingDear Dynare Team,
I hope this message finds you well. I am reaching out to discuss an observation regarding the plot() function as described in the Dynare documentation. It is mentioned that the function "overloads MATLAB/Octave’s `plot...Dear Dynare Team,
I hope this message finds you well. I am reaching out to discuss an observation regarding the plot() function as described in the Dynare documentation. It is mentioned that the function "overloads MATLAB/Octave’s `plot` function for `dseries` objects. Returns a MATLAB/Octave plot handle, that can be used to modify the properties of the plotted time series. If only one `dseries` object, `A`, is passed as argument, **then the plot function will put the associated dates on the x-abscissa**". However, in practice, when plotting a simple dseries, the x-axis displays the periods numerically (e.g., 1, 2, 3, etc.) rather than showing the specific dates as intended.
I've managed to devise a workaround for this issue and am sharing it here, hoping it might benefit others facing the same problem.
```
A=dseries([1;2;3],'2020Y','toto');
% This plot doesn't show dates
plot(A)
% Dates for the plot's legend
DsDates = firstobservedperiod(A):lastobservedperiod(A);
x_Labels= cell(1,length(DsDates));
% Transforms dseries dates into characters
for i = 1:length(DsDates)
x_Labels{i} = char(DsDates(i));
end
% This one does
figure()
hold on
xticks(1:length(DsDates));
xticklabels(x_Labels);
plot(A)
```https://git.dynare.org/Dynare/dynare/-/issues/1925Issues when modifying values of dseries on a loop2024-03-12T10:40:40ZRaphaël MARTINIssues when modifying values of dseries on a loopDear Dynare Team,
As a new user of Dynare, I'm reaching out to report a potential bug I've encountered while working with dseries objects in Matlab, specifically using the latest unstable version of Dynare. This is my first time reporti...Dear Dynare Team,
As a new user of Dynare, I'm reaching out to report a potential bug I've encountered while working with dseries objects in Matlab, specifically using the latest unstable version of Dynare. This is my first time reporting an issue, so please excuse any inadvertent mistakes in my submission. I've noticed an issue where modifying the value of a second dseries object (which was initially set to be equal to a first dseries object) inadvertently alters the values of the first dseries object as well. This behavior is unexpected and seems to occur when the modifications are made within a loop. Here is a quick code snippet illustrating this bug :
```
addpath 'C:\Produits\dynare\dynare-7-unstable-2024-03-04-1703-7d332dee'
dynare_config;
A=dseries([0;0;0],'2020Y','toto');
B=A;
for i=1:length(B.dates)
B(B.dates(i))=B(B.dates(i))+1;
end
disp(A)
disp(B)
```https://git.dynare.org/Dynare/dynare/-/issues/1924[New feature] Add Taylor projection method of Levintal2024-03-04T15:13:48ZWilli Mutschlerwilli@mutschler.eu[New feature] Add Taylor projection method of LevintalI am working on a project with rare disaster models and am looking into the Taylor Projection solution method. I think it is general enough to also incorporate into Dynare, might be a nice new feature for 7.0.I am working on a project with rare disaster models and am looking into the Taylor Projection solution method. I think it is general enough to also incorporate into Dynare, might be a nice new feature for 7.0.7.xWilli Mutschlerwilli@mutschler.euWilli Mutschlerwilli@mutschler.euhttps://git.dynare.org/Dynare/dynare/-/issues/1923Dynare 6.x incorrectly assumes Suites-Parse lives in the same directory as Oc...2024-03-06T18:56:06ZSean MolenaarDynare 6.x incorrectly assumes Suites-Parse lives in the same directory as OctaveThe Meson build seems to search for umfpack relative to the octave directory,
but that might not be the place it is installed.
The Homebrew team ran into this in: https://github.com/Homebrew/homebrew-core/pull/164010
I believe this sea...The Meson build seems to search for umfpack relative to the octave directory,
but that might not be the place it is installed.
The Homebrew team ran into this in: https://github.com/Homebrew/homebrew-core/pull/164010
I believe this search should either come through pkg-config or search the whole include path.https://git.dynare.org/Dynare/dynare/-/issues/1922Create GitLab CI to build, test and deploy docker containers2024-02-22T10:22:30ZWilli Mutschlerwilli@mutschler.euCreate GitLab CI to build, test and deploy docker containersIt would be beneficial to have a workflow with GitLab to build, test and deploy the docker containers.It would be beneficial to have a workflow with GitLab to build, test and deploy the docker containers.Willi Mutschlerwilli@mutschler.euWilli Mutschlerwilli@mutschler.euhttps://git.dynare.org/Dynare/dynare/-/issues/1921Rebase docker containers on Debian2024-02-16T09:37:44ZWilli Mutschlerwilli@mutschler.euRebase docker containers on DebianCurrently the Docker images are based on images that MATHWORKs provides and maintains. This has some benefits:
- easier to maintain
- user-friendly ways to interact with the container
- no hassle with the MATLAB license, and if so, we ca...Currently the Docker images are based on images that MATHWORKs provides and maintains. This has some benefits:
- easier to maintain
- user-friendly ways to interact with the container
- no hassle with the MATLAB license, and if so, we can easily direct users towards the MATLAB support
- sponsored MATLAB licenses (e.g. on GitHub) work
But also some disadvantages:
- we are not in full control of the image
- image size is somewhat large
- Octave version is too old in Ubuntu 22.04
- Octave compatibility is not great (the testsuite for Octave typically does not pass for some system-related reason)
- requires additional hacking to improve compatibility with Dynare
- MATLAB does change things from time-to-time and we (or I) need to keep track of the corresponding GitHub repositories
A natural alternative would be to create a vanilla image along the lines we set up the runners that are based on Debian. We would then need to provide similar ways to interact with the container (e.g. [noVNC](https://novnc.com)) and check whether sponsored licenses still work. We would probably loose some user-friendliness here, but then again those who are using Docker might not really need those interactive features.
So, I would like to open this issue to discuss how we should proceed in the future? I'm leaning towards keeping it based on MATHWORK's containers as this is probably easier to maintain; but I have no problem to investigate time and resources towards the Debian option.Willi Mutschlerwilli@mutschler.euWilli Mutschlerwilli@mutschler.euhttps://git.dynare.org/Dynare/dynare/-/issues/1920Provide dr_cycle_reduction_maxiter option2024-02-07T15:09:33ZJohannes PfeiferProvide dr_cycle_reduction_maxiter optionCurrrently, `max_it` in https://git.dynare.org/Dynare/dynare/-/blob/master/mex/sources/cycle_reduction/mexFunction.f08?ref_type=heads is hard-coded to 300. It should be an option as in https://git.dynare.org/Dynare/dynare/-/tree/master/m...Currrently, `max_it` in https://git.dynare.org/Dynare/dynare/-/blob/master/mex/sources/cycle_reduction/mexFunction.f08?ref_type=heads is hard-coded to 300. It should be an option as in https://git.dynare.org/Dynare/dynare/-/tree/master/mex/sources/logarithmic_reduction?ref_type=heads7.xhttps://git.dynare.org/Dynare/dynare/-/issues/1919bug in annualized shock decomposition2024-01-30T10:18:34ZMarco Rattobug in annualized shock decompositionwhen removing unused output args in commit 735bd66d4dea2f244918687fa0fa57051df59673, we created a bug in annualized_shock_decomposition.
there, the second unised argument is actually necessary to trigger the behavior in plot_shock_decomp...when removing unused output args in commit 735bd66d4dea2f244918687fa0fa57051df59673, we created a bug in annualized_shock_decomposition.
there, the second unised argument is actually necessary to trigger the behavior in plot_shock_decomposition that depends on nargout inline 535 .[https://git.dynare.org/Dynare/dynare/-/blob/master/matlab/shock_decomposition/plot_shock_decomposition.m?ref_type=heads#L535](url)
Admittedly, this is a very obscure feature...https://git.dynare.org/Dynare/dynare/-/issues/1918Preprocessor issue with mensual dates with month > 9 passed to daynre into ma...2024-01-29T11:17:26ZUgo DuboisPreprocessor issue with mensual dates with month > 9 passed to daynre into macrovariablesI think I just stumbled into an interesting bug while passing macrovariables containing mensual dates to dynare.
In a very simple mod: [SimpleMod.mod](/uploads/c460c03b98abd0f7acee934530394df5/SimpleMod.mod)
I have (a dummy model) and ...I think I just stumbled into an interesting bug while passing macrovariables containing mensual dates to dynare.
In a very simple mod: [SimpleMod.mod](/uploads/c460c03b98abd0f7acee934530394df5/SimpleMod.mod)
I have (a dummy model) and the instruction: `Toto = @{MensualDate};`
I call this .mod with dynare as follows: `dynare('SimpleMod.mod', '-DMensualDate="2005M10"');`
And get an 'invalid expression' error on `SimpleMod.driver` because what gets written in the driver for the `Toto = @{MensualDate};` instruction is : `Toto = dates('2005M1')0;`
2005M9 works, 2005M11 results into `Toto = dates('2005M1')1;` and 2005M12 results into `Toto = dates('2005M1')2;`Sébastien VillemotSébastien Villemothttps://git.dynare.org/Dynare/dynare/-/issues/1917macOS: drop ld_classic workaround2023-12-21T12:16:41ZWilli Mutschlerwilli@mutschler.eumacOS: drop ld_classic workaround~~Xcode CLT 15.1 fixed this [issue](https://github.com/mesonbuild/meson/issues/12282), the `ld_classic` workaround in the native file is not necessary anymore, so we can remove it once the runner is updated. Either way the workaround con...~~Xcode CLT 15.1 fixed this [issue](https://github.com/mesonbuild/meson/issues/12282), the `ld_classic` workaround in the native file is not necessary anymore, so we can remove it once the runner is updated. Either way the workaround continues to work.~~
Nope, 15.1 did not fix this.https://git.dynare.org/Dynare/dynare/-/issues/1916Create testfile for parallel2023-12-19T22:23:20ZWilli Mutschlerwilli@mutschler.euCreate testfile for parallelCurrently the tests in the parallel folder are only for manual testing. It would be good to also test the parallel capabilities in the testsuite.Currently the tests in the parallel folder are only for manual testing. It would be good to also test the parallel capabilities in the testsuite.Willi Mutschlerwilli@mutschler.euWilli Mutschlerwilli@mutschler.euhttps://git.dynare.org/Dynare/dynare/-/issues/1915Unknow index in parallel/closeSlave.m2023-12-21T13:05:00ZStéphane Adjemianstepan@adjemian.euUnknow index in parallel/closeSlave.mLine 77 we have:
```matlab
isempty(dynareParallelDir(['P_slave_',int2str(j),'End.txt'],TmpFolder,Parallel))
```
under a `if` statement, but index `j` is not defined. Matlab interprets j as a complex number and `int2str(j)` evaluates to `...Line 77 we have:
```matlab
isempty(dynareParallelDir(['P_slave_',int2str(j),'End.txt'],TmpFolder,Parallel))
```
under a `if` statement, but index `j` is not defined. Matlab interprets j as a complex number and `int2str(j)` evaluates to `'0'`.https://git.dynare.org/Dynare/dynare/-/issues/1914Fix saving of _mh_mode after integration of SMC2023-12-15T13:59:45ZJohannes PfeiferFix saving of _mh_mode after integration of SMC60c0ed01 changed the behavior of `compute_mh_covariance_matrix` to not save the `_mh_mode.mat` file. That is now done in `compute_posterior_covariance_matrix`. This breaks backward compatibility as e.g. `fs2000.mod` now does not save the...60c0ed01 changed the behavior of `compute_mh_covariance_matrix` to not save the `_mh_mode.mat` file. That is now done in `compute_posterior_covariance_matrix`. This breaks backward compatibility as e.g. `fs2000.mod` now does not save the `_mh_mode.mat` anymore via the call to `marginal_density.m`.Stéphane Adjemianstepan@adjemian.euStéphane Adjemianstepan@adjemian.euhttps://git.dynare.org/Dynare/dynare/-/issues/1913Fix handling of squeezing in plot_shock_decomposition2023-12-21T13:18:07ZJohannes PfeiferFix handling of squeezing in plot_shock_decompositionThe original bug in https://forum.dynare.org/t/init2shocks-does-not-work/24591 was addressed via a4e6531420c7f41168eae99b6b924cfc9640e7ef
We still need to address how to deal with squeezing of results that is currently addressed in `plo...The original bug in https://forum.dynare.org/t/init2shocks-does-not-work/24591 was addressed via a4e6531420c7f41168eae99b6b924cfc9640e7ef
We still need to address how to deal with squeezing of results that is currently addressed in `plot_shock_decomposition` via
```
try
[i_var,nvar,index_uniques] = varlist_indices(varlist,M_.endo_names);
catch ME
if isfield(oo_.shock_decomposition_info,'i_var')
warning('shock decomp results for some input variable was not stored: I recompute all decompositions')
M_ = evalin('base','M_');
```
Particularly loading `M_` when it is an input if problematic.Marco RattoMarco Rattohttps://git.dynare.org/Dynare/dynare/-/issues/1912Implement conditional forecasting of Banbura et al. (2015)2023-11-24T13:29:27ZJohannes PfeiferImplement conditional forecasting of Banbura et al. (2015)Allows having more shocks than controlled variables.
https://www.sciencedirect.com/science/article/abs/pii/S0169207014001423Allows having more shocks than controlled variables.
https://www.sciencedirect.com/science/article/abs/pii/S0169207014001423https://git.dynare.org/Dynare/dynare/-/issues/1911Investigate premature xtol termination in trust_solve.m2024-02-01T20:47:43ZJohannes PfeiferInvestigate premature xtol termination in trust_solve.mCommit https://git.dynare.org/Dynare/dynare/-/commit/aa8439d4ccbfcf3761c7e168a8423adc8cfce204 introduced the additional termination criterion
```
% Tests for termination and stringent tolerances.
if max(.1*delta, pnorm)<=10*eps(xn...Commit https://git.dynare.org/Dynare/dynare/-/commit/aa8439d4ccbfcf3761c7e168a8423adc8cfce204 introduced the additional termination criterion
```
% Tests for termination and stringent tolerances.
if max(.1*delta, pnorm)<=10*eps(xnorm)*xnorm
% xtol is too small. no further improvement in
% the approximate solution x is possible.
info = 5;
x(:) = inf;
errorflag = true;
continue
end
```
This causes steady-state finding to fail in master where it worked in `5.x`. An example is the attache file.
[Bench.zip](/uploads/47415753cad27448ffdd1ed71d64ea76/Bench.zip)7.xStéphane Adjemianstepan@adjemian.euStéphane Adjemianstepan@adjemian.euhttps://git.dynare.org/Dynare/dynare/-/issues/1910Investigate MATLAB new desktop2023-10-26T20:53:27ZWilli Mutschlerwilli@mutschler.euInvestigate MATLAB new desktopSo far MATLAB's new desktop starts to be on par except for the performance. MATHWORKS will switch to it as the default in the near future, so we should investigate which issues occur.
#### Printing speed
For us the printing speed is pro...So far MATLAB's new desktop starts to be on par except for the performance. MATHWORKS will switch to it as the default in the near future, so we should investigate which issues occur.
#### Printing speed
For us the printing speed is problematic, because there is an event coalescing problem where text is sent to often. Workaround after discussing this with Eduard from MATHWORKS: vectorize “fprintf” calls to get back the old speed (maybe with a tiny delay due to the actual technology difference).7.xWilli Mutschlerwilli@mutschler.euWilli Mutschlerwilli@mutschler.euhttps://git.dynare.org/Dynare/dynare/-/issues/1909macOS distribution: pkg installer vs homebrew2023-10-02T11:57:33ZWilli Mutschlerwilli@mutschler.eumacOS distribution: pkg installer vs homebrew1) Dynare for Octave is distributed already via Homebrew in this [dynare.rb](https://github.com/Homebrew/homebrew-core/blob/d01b7db772f9fa2df063db360ca3dd884f0a1047/Formula/d/dynare.rb). We should probably also try to get Dynare with MAT...1) Dynare for Octave is distributed already via Homebrew in this [dynare.rb](https://github.com/Homebrew/homebrew-core/blob/d01b7db772f9fa2df063db360ca3dd884f0a1047/Formula/d/dynare.rb). We should probably also try to get Dynare with MATLAB available with brew as well, similar to how we package on Debian.
2) Additionally, or alternatively, we should also add the Octave files in the pkg installer that we distribute.
3) Lastly, we should decide whether we keep the pkg installer, go solely the homebrew way, or do both.Willi Mutschlerwilli@mutschler.euWilli Mutschlerwilli@mutschler.euhttps://git.dynare.org/Dynare/dynare/-/issues/1908Port pruning to local_state_space iteration routines used for nonlinear estim...2023-10-02T15:41:09ZJohannes PfeiferPort pruning to local_state_space iteration routines used for nonlinear estimation