From ddb2ef910f57cdf2f002504241fa3bc992334271 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?D=C3=B3ra=20Kocsis?= <dora@dynare.org>
Date: Thu, 20 Feb 2020 16:54:49 +0100
Subject: [PATCH] fix bug in estimation/mcmc_jumping_covariance

---
 .../dynare_command_options_estimation.m       | 21 ++++++++++++-------
 src/+gui_auxiliary/set_command_option.m       | 16 +++++++++++++-
 src/gui_define_comm_options.m                 |  4 +++-
 3 files changed, 31 insertions(+), 10 deletions(-)

diff --git a/src/+gui_auxiliary/dynare_command_options_estimation.m b/src/+gui_auxiliary/dynare_command_options_estimation.m
index 45c8cc7..bdcc007 100644
--- a/src/+gui_auxiliary/dynare_command_options_estimation.m
+++ b/src/+gui_auxiliary/dynare_command_options_estimation.m
@@ -14,7 +14,7 @@ function dynare_command_options_estimation()
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2003-2019 Dynare Team
+% Copyright (C) 2003-2020 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -242,6 +242,18 @@ dynare_gui_.estimation.solver{num,4} = 'Value used to test if a generalized eige
 
 %% Group 4: MH_options
 num = 1;
+dynare_gui_.estimation.MH_options{num,1} = 'mcmc_jumping_covariance';
+dynare_gui_.estimation.MH_options{num,2} = 'hessian';
+dynare_gui_.estimation.MH_options{num,3} = {'hessian','prior_variance','identity_matrix','FILENAME'};    %special
+dynare_gui_.estimation.MH_options{num,4} = 'Tells Dynare which covariance to use for the proposal density of the MCMC sampler. mcmc_jumping_covariance can be one of the following: hessian,prior_variance,identity_matrix or FILENAME. Default value is hessian.';
+
+num = num+1;
+dynare_gui_.estimation.MH_options{num,1} = 'mcmc_jumping_covariance_file';
+dynare_gui_.estimation.MH_options{num,2} = '';
+dynare_gui_.estimation.MH_options{num,3} = 'FILENAME';
+dynare_gui_.estimation.MH_options{num,4} = 'Tells Dynare which file with a jumping covariance matrix to use. Stored in a .mat file. Should be specified if mcmc_jumping_covariance=FILENAME';
+
+num = num+1;
 dynare_gui_.estimation.MH_options{num,1} = 'mh_conf_sig';
 dynare_gui_.estimation.MH_options{num,2} = '0.9';
 dynare_gui_.estimation.MH_options{num,3} = 'DOUBLE';
@@ -307,13 +319,6 @@ dynare_gui_.estimation.MH_options{num,2} = 0;
 dynare_gui_.estimation.MH_options{num,3} = 'check_option';
 dynare_gui_.estimation.MH_options{num,4} = 'Tells Dynare to add to previous Metropolis-Hastings simulations instead of starting from scratch. Shouldn’t be used together with mh_recover.';
 
-num = num+1;
-dynare_gui_.estimation.MH_options{num,1} = 'mcmc_jumping_covariance';
-dynare_gui_.estimation.MH_options{num,2} = 'hessian';
-dynare_gui_.estimation.MH_options{num,3} = {'hessian','prior_variance','identity_matrix','FILENAME'};    %special
-dynare_gui_.estimation.MH_options{num,4} = 'Tells Dynare which covariance to use for the proposal density of the MCMC sampler. mcmc_jumping_covariance can be one of the following: hessian,prior_variance,identity_matrix or FILENAME. Default value is hessian.';
-
-
 num = num+1;
 dynare_gui_.estimation.MH_options{num,1} = 'nodiagnostic';
 dynare_gui_.estimation.MH_options{num,2} = 0;
diff --git a/src/+gui_auxiliary/set_command_option.m b/src/+gui_auxiliary/set_command_option.m
index 3bb1444..2a71003 100644
--- a/src/+gui_auxiliary/set_command_option.m
+++ b/src/+gui_auxiliary/set_command_option.m
@@ -12,7 +12,7 @@ function status = set_command_option(name, value)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2003-2018 Dynare Team
+% Copyright (C) 2003-2020 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -93,6 +93,20 @@ try
         case 'filter_step_ahead'
             options_.filter_step_ahead = eval(value);
             
+        case 'mcmc_jumping_covariance'
+            if value == 2
+                options_.(gui_auxiliary.command_option_mapping(name)) = 'prior_variance';
+            elseif value == 3
+                options_.(gui_auxiliary.command_option_mapping(name)) = 'identity_matrix';
+            elseif value == 4
+                options_.(gui_auxiliary.command_option_mapping(name)) = 'FILENAME';
+            end
+            
+        case 'mcmc_jumping_covariance_file'
+            if ~isempty(value) && strcmp(options_.MCMC_jumping_covariance, 'FILENAME')
+                options_.MCMC_jumping_covariance = strrep(value, '.mat', '');
+            end
+            
         otherwise
             options_.(gui_auxiliary.command_option_mapping(name)) = value;
     end
diff --git a/src/gui_define_comm_options.m b/src/gui_define_comm_options.m
index 7427686..4246f52 100644
--- a/src/gui_define_comm_options.m
+++ b/src/gui_define_comm_options.m
@@ -13,7 +13,7 @@ function fHandle= gui_define_comm_options(comm, comm_name)
 % SPECIAL REQUIREMENTS
 %   none
 
-% Copyright (C) 2003-2019 Dynare Team
+% Copyright (C) 2003-2020 Dynare Team
 %
 % This file is part of Dynare.
 %
@@ -321,6 +321,8 @@ handles.pushbuttonReset = uicontrol( ...
                         file_types = {'*.m';'*.mat';'*.xls';'*.xlsx';'*.csv'};
                     case 'mode_file'
                         file_types = {'*.mat'};
+                    case 'mcmc_jumping_covariance_file'
+                        file_types = {'*.mat'};
                 end
 
                 [fileName,pathName] = uigetfile(file_types,sprintf('Select %s ...', option_name));
-- 
GitLab