diff --git a/.gitmodules b/.gitmodules index 2cc13d27ea15221701b4f6fa32ee74a9dc23eec8..6617cc261ba3855d9a15bcd89f94cbc07caa7e88 100644 --- a/.gitmodules +++ b/.gitmodules @@ -25,4 +25,4 @@ url = https://github.com/fangq/jsonlab.git [submodule "preprocessor"] path = preprocessor - url = ../../Dynare/preprocessor.git + url = ../../JohannesPfeifer/preprocessor.git diff --git a/matlab/PosteriorIRF.m b/matlab/PosteriorIRF.m index 5f02c486734b3b571328a427754d07c0c969163c..007fb89f5c3f7d18aef20cdad1ee1b3e4a2c0446 100644 --- a/matlab/PosteriorIRF.m +++ b/matlab/PosteriorIRF.m @@ -288,7 +288,7 @@ if options_.TeX end fprintf('Estimation::mcmc: Posterior (dsge) IRFs...\n'); -tit(M_.exo_names_orig_ord) = M_.exo_names; +tit = M_.exo_names; kdx = 0; for file = 1:NumberOfIRFfiles_dsge @@ -328,7 +328,7 @@ if MAX_nirfs_dsgevar DistribIRFdsgevar = zeros(options_.irf,9,nvar,M_.exo_nbr); HPDIRFdsgevar = zeros(options_.irf,2,nvar,M_.exo_nbr); fprintf('Estimation::mcmc: Posterior (bvar-dsge) IRFs...\n'); - tit(M_.exo_names_orig_ord) = M_.exo_names; + tit = M_.exo_names; kdx = 0; for file = 1:NumberOfIRFfiles_dsgevar load([MhDirectoryName filesep M_.fname '_IRF_BVARDSGEs' int2str(file) '.mat']); @@ -391,14 +391,13 @@ if ~options_.nograph && ~options_.no_graph.posterior % The files .TeX are genereted in sequential way always! - subplotnum = 0; - titTeX(M_.exo_names_orig_ord) = M_.exo_names_tex; if options_.TeX && any(strcmp('eps',cellstr(options_.graph_format))) + subplotnum = 0; fidTeX = fopen([DirectoryName filesep M_.fname '_BayesianIRF.tex'],'w'); fprintf(fidTeX,'%% TeX eps-loader file generated by PosteriorIRF.m (Dynare).\n'); fprintf(fidTeX,['%% ' datestr(now,0) '\n']); fprintf(fidTeX,' \n'); - titTeX(M_.exo_names_orig_ord) = M_.exo_names_tex; + titTeX = M_.exo_names_tex; for ii=irf_shocks_indx figunumber = 0; diff --git a/matlab/PosteriorIRF_core1.m b/matlab/PosteriorIRF_core1.m index 9b5122d14b496dcc09f2d621276f67737f1fd6e7..15d9fd2388ae82d9e7af63f8f396c017324b9639 100644 --- a/matlab/PosteriorIRF_core1.m +++ b/matlab/PosteriorIRF_core1.m @@ -177,15 +177,15 @@ while fpar<B error(['PosteriorIRF :: Dynare is unable to solve the model (' errordef ') with sample ' type]) end end - SS(M_.exo_names_orig_ord,M_.exo_names_orig_ord) = M_.Sigma_e+1e-14*eye(M_.exo_nbr); + SS = M_.Sigma_e+1e-14*eye(M_.exo_nbr); SS = transpose(chol(SS)); irf_shocks_indx = getIrfShocksIndx(M_, options_); for i=irf_shocks_indx if SS(i,i) > 1e-13 if options_.order>1 && options_.relative_irf % normalize shock to 0.01 before IRF generation for GIRFs; multiply with 100 later - y=irf(M_,options_,dr,SS(M_.exo_names_orig_ord,i)./SS(i,i)/100, options_.irf, options_.drop,options_.replic,options_.order); + y=irf(M_,options_,dr,SS(:,i)./SS(i,i)/100, options_.irf, options_.drop,options_.replic,options_.order); else - y=irf(M_,options_,dr,SS(M_.exo_names_orig_ord,i), options_.irf, options_.drop,options_.replic,options_.order); + y=irf(M_,options_,dr,SS(:,i), options_.irf, options_.drop,options_.replic,options_.order); end if options_.relative_irf && options_.order==1 %multiply with 100 for backward compatibility y = 100*y/SS(i,i); @@ -219,7 +219,7 @@ while fpar<B mu = zeros(1,dataset_.vobs); % Get rotation if dsge_prior_weight > 0 - Atheta(oo_.dr.order_var,M_.exo_names_orig_ord) = oo_.dr.ghu*sqrt(M_.Sigma_e); + Atheta(oo_.dr.order_var,:) = oo_.dr.ghu*sqrt(M_.Sigma_e); A0 = Atheta(bayestopt_.mfys,:); OMEGAstar = qr2(A0'); end diff --git a/matlab/compute_moments_varendo.m b/matlab/compute_moments_varendo.m index 22ffa8ad792d12edf18c5251fcebe9497c5d09bc..dc869fdf829be35c617de6bc281dc7047ee5f4c4 100644 --- a/matlab/compute_moments_varendo.m +++ b/matlab/compute_moments_varendo.m @@ -153,7 +153,6 @@ if options_.order==1 end title=add_filter_subtitle(title, options_); headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; headers = vertcat(' ', headers); lh = cellofchararraymaxlength(var_list_)+2; dyntable(options_, title, headers, var_list_, 100*temp, lh, 8, 2); @@ -197,7 +196,6 @@ if options_.order==1 end title=add_filter_subtitle(title, options_); headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; headers = vertcat(' ', headers, 'ME'); lh = cellofchararraymaxlength(var_list_)+2; dyntable(options_, title, headers, observable_name_requested_vars,100*temp,lh,8,2); @@ -236,7 +234,6 @@ if options_.order==1 for step_iter=1:length(Steps) title_print=[title, ' Period ' int2str(Steps(step_iter))]; headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; headers = vertcat(' ', headers); lh = cellofchararraymaxlength(var_list_)+2; dyntable(options_,title_print,headers, var_list_,100* ... @@ -280,7 +277,6 @@ if options_.order==1 for step_iter=1:length(Steps) title_print = [title, ' Period ' int2str(Steps(step_iter))]; headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; headers = vertcat(' ', headers, 'ME'); lh = cellofchararraymaxlength(var_list_)+2; dyntable(options_, title_print, headers, observable_name_requested_vars, 100*temp(:,:,step_iter), lh, 8, 2); diff --git a/matlab/disp_moments.m b/matlab/disp_moments.m index 8d3f5b394d2bc36f7b998792c3b198faa90f14d4..0dd5953269a402d4650b0c851188c4e1c4c18579 100644 --- a/matlab/disp_moments.m +++ b/matlab/disp_moments.m @@ -196,7 +196,6 @@ if ~options_.nodecomposition title='VARIANCE DECOMPOSITION SIMULATING ONE SHOCK AT A TIME (in percent)'; title=add_filter_subtitle(title,options_); headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; headers = vertcat(' ', headers); lh = cellofchararraymaxlength(M_.endo_names(ivar))+2; dyntable(options_, title, vertcat(headers, 'Tot. lin. contr.'), ... diff --git a/matlab/disp_th_moments.m b/matlab/disp_th_moments.m index 42114c85fec6c2629e4e0981f4e7221bbee8aab6..46a05223f9c7bd8670118ed03af3036006c7c4dd 100644 --- a/matlab/disp_th_moments.m +++ b/matlab/disp_th_moments.m @@ -96,7 +96,6 @@ if size(stationary_vars, 1) > 0 end title = add_filter_subtitle(title, options_); headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; headers = vertcat(' ', headers); labels=get_labels_transformed_vars(M_.endo_names,ivar(stationary_vars),options_,false); lh = cellofchararraymaxlength(labels)+2; diff --git a/matlab/display_conditional_variance_decomposition.m b/matlab/display_conditional_variance_decomposition.m index 0d56ecda049f7deb3ed2bbc3056041caa8271098..2ff1abe951dc0e12db227961768af4a97ee33a2b 100644 --- a/matlab/display_conditional_variance_decomposition.m +++ b/matlab/display_conditional_variance_decomposition.m @@ -33,7 +33,6 @@ function display_conditional_variance_decomposition(conditional_decomposition_ar if size(conditional_decomposition_array,3)==M_.exo_nbr %no ME input shock_number=M_.exo_nbr; headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; if options_.TeX headers_TeX = vertcat(' ', M_.exo_names_tex); end @@ -41,7 +40,6 @@ if size(conditional_decomposition_array,3)==M_.exo_nbr %no ME input elseif size(conditional_decomposition_array,3)==M_.exo_nbr+1 %ME input shock_number=M_.exo_nbr+1; headers = M_.exo_names; - headers(M_.exo_names_orig_ord) = headers; headers = vertcat(headers, 'ME'); if options_.TeX headers_TeX = vertcat(M_.exo_names_tex, 'ME'); diff --git a/matlab/dynare_sensitivity.m b/matlab/dynare_sensitivity.m index 3db43732a64b22411b203ecbb564834416d21a1a..07e440e810f7c21200c4c2c94f25ea33caa0dabc 100644 --- a/matlab/dynare_sensitivity.m +++ b/matlab/dynare_sensitivity.m @@ -534,7 +534,7 @@ if options_gsa.glue Out1(jsmoo).ini = 'yes'; end end - tit(M_.exo_names_orig_ord) = M_.exo_names; + tit = M_.exo_names; for j=1:M_.exo_nbr Exo(j).name = tit{j}; end diff --git a/matlab/getIrfShocksIndx.m b/matlab/getIrfShocksIndx.m index 5686b228c2c74b432e6c64092eaa191cdf1ecd48..571dd439ed726bb6639ba5ca6536a49b5ca5ffb7 100644 --- a/matlab/getIrfShocksIndx.m +++ b/matlab/getIrfShocksIndx.m @@ -27,7 +27,7 @@ function irf_shocks_indx=getIrfShocksIndx(M_, options_) % along with Dynare. If not, see <https://www.gnu.org/licenses/>. if (isfield(options_,'irf_shocks')==0) - irf_shocks_indx = M_.exo_names_orig_ord; + irf_shocks_indx = 1:M_.exo_nbr; else irf_shocks_indx = zeros(1,size(options_.irf_shocks,1)); for i=1:size(options_.irf_shocks,1) diff --git a/matlab/partial_information/PCL_Part_info_irf.m b/matlab/partial_information/PCL_Part_info_irf.m index d6a756b7635614264f02735171339ac579f5e44b..41f21b57448e3e26d082e57acf59c1ebbdc9e194 100644 --- a/matlab/partial_information/PCL_Part_info_irf.m +++ b/matlab/partial_information/PCL_Part_info_irf.m @@ -116,7 +116,7 @@ rr=DD*QQ*DD'+RR; ZSIG0=disc_riccati_fast(ff,DD,rr,hh); PP=ZSIG0 +QQ; -exo_names=M_.exo_names(M_.exo_names_orig_ord); +exo_names=M_.exo_names; DPDR=DD*PP*DD'+RR; I_DPDR=inv(DPDR); diff --git a/matlab/partial_information/PCL_Part_info_moments.m b/matlab/partial_information/PCL_Part_info_moments.m index 1fc7de1270f6d641398c1dc9990da8e6bbf51824..60f4a9bc9a50f68adb07ceb3f8e1b01f02ea3384 100644 --- a/matlab/partial_information/PCL_Part_info_moments.m +++ b/matlab/partial_information/PCL_Part_info_moments.m @@ -129,7 +129,7 @@ rr=DD*QQ*DD'+RR; ZSIG0=disc_riccati_fast(ff,DD,rr,hh); PP=ZSIG0 +QQ; -exo_names = M_.exo_names(M_.exo_names_orig_ord); +exo_names = M_.exo_names; DPDR=DD*PP*DD'+RR; I_DPDR=inv(DPDR); diff --git a/matlab/stoch_simul.m b/matlab/stoch_simul.m index ad26585d884d028576533475ff6803ca1c8c871f..f4dbdb731bcebba2efaca65b422298dea2762c92 100644 --- a/matlab/stoch_simul.m +++ b/matlab/stoch_simul.m @@ -231,11 +231,11 @@ if options_.irf fprintf(fidTeX,['%% ' datestr(now,0) '\n']); fprintf(fidTeX,' \n'); end - SS(M_.exo_names_orig_ord,M_.exo_names_orig_ord)=M_.Sigma_e+1e-14*eye(M_.exo_nbr); + SS=M_.Sigma_e+1e-14*eye(M_.exo_nbr); cs = transpose(chol(SS)); - tit(M_.exo_names_orig_ord) = M_.exo_names; + tit = M_.exo_names; if TeX - titTeX(M_.exo_names_orig_ord) = M_.exo_names_tex; + titTeX = M_.exo_names_tex; end irf_shocks_indx = getIrfShocksIndx(M_, options_); for i=irf_shocks_indx @@ -244,10 +244,10 @@ if options_.irf y=PCL_Part_info_irf (0, PCL_varobs, i_var, M_, oo_.dr, options_.irf, i); else if options_.order>1 && options_.relative_irf % normalize shock to 0.01 before IRF generation for GIRFs; multiply with 100 later - y=irf(M_, options_, oo_.dr,cs(M_.exo_names_orig_ord,i)./cs(i,i)/100, options_.irf, options_.drop, ... + y=irf(M_, options_, oo_.dr,cs(:,i)./cs(i,i)/100, options_.irf, options_.drop, ... options_.replic, options_.order); else %for linear model, rescaling is done later - y=irf(M_, options_, oo_.dr,cs(M_.exo_names_orig_ord,i), options_.irf, options_.drop, ... + y=irf(M_, options_, oo_.dr,cs(:,i), options_.irf, options_.drop, ... options_.replic, options_.order); end end diff --git a/matlab/th_autocovariances.m b/matlab/th_autocovariances.m index 3a01d9be40fc26d4b65a1156b4e3655fa60c4c31..57f9781948c4cb0f44c030bf588efffbf4dfbac4 100644 --- a/matlab/th_autocovariances.m +++ b/matlab/th_autocovariances.m @@ -73,7 +73,6 @@ if local_order~=1 && M_.hessian_eq_zero end endo_nbr = M_.endo_nbr; -exo_names_orig_ord = M_.exo_names_orig_ord; if isoctave warning('off', 'Octave:divide-by-zero') else @@ -173,11 +172,11 @@ if options_.hp_filter == 0 && ~options_.bandpass.indicator Gamma_y{nar+2} = ones(nvar,1); else Gamma_y{nar+2} = NaN(nvar,M_.exo_nbr); - SS(exo_names_orig_ord,exo_names_orig_ord)=M_.Sigma_e+1e-14*eye(M_.exo_nbr); + SS=M_.Sigma_e+1e-14*eye(M_.exo_nbr); cs = chol(SS)'; - b1(:,exo_names_orig_ord) = ghu1; + b1 = ghu1; b1 = b1*cs; - b2(:,exo_names_orig_ord) = ghu(iky,:); + b2 = ghu(iky,:); b2 = b2*cs; vx = lyapunov_symm(A,b1*b1',options_.lyapunov_fixed_point_tol,options_.qz_criterium,options_.lyapunov_complex_threshold,1,options_.debug); vv = diag(aa*vx*aa'+b2*b2'); @@ -251,11 +250,11 @@ else% ==> Theoretical filters. Gamma_y{nar+2} = ones(nvar,1); else Gamma_y{nar+2} = zeros(nvar,M_.exo_nbr); - SS(exo_names_orig_ord,exo_names_orig_ord) = M_.Sigma_e+1e-14*eye(M_.exo_nbr); %make sure Covariance matrix is positive definite + SS = M_.Sigma_e+1e-14*eye(M_.exo_nbr); %make sure Covariance matrix is positive definite cs = chol(SS)'; SS = cs*cs'; - b1(:,exo_names_orig_ord) = ghu1; - b2(:,exo_names_orig_ord) = ghu(iky,:); + b1 = ghu1; + b2 = ghu(iky,:); mathp_col = NaN(ngrid,length(ivar)^2); IA = eye(size(A,1)); IE = eye(M_.exo_nbr); diff --git a/preprocessor b/preprocessor index 1b0e5581378bc98cf73b090c9a849d0e578a895d..0990492e2fe10d06e1955ae5072fda94fe51f8d2 160000 --- a/preprocessor +++ b/preprocessor @@ -1 +1 @@ -Subproject commit 1b0e5581378bc98cf73b090c9a849d0e578a895d +Subproject commit 0990492e2fe10d06e1955ae5072fda94fe51f8d2