diff --git a/matlab/DsgeLikelihood.m b/matlab/DsgeLikelihood.m index 23dfffcd7c66b8671fa01643b6a2d2aeff323fe4..07593f2cded3d65743050973094293149423f1da 100644 --- a/matlab/DsgeLikelihood.m +++ b/matlab/DsgeLikelihood.m @@ -124,9 +124,8 @@ M_.H = H; %------------------------------------------------------------------------------ % 2. call model setup & reduction program %------------------------------------------------------------------------------ -[T,R,SteadyState,info] = dynare_resolve(bayestopt_.restrict_var_list,... - bayestopt_.restrict_columns,... - bayestopt_.restrict_aux); +[T,R,SteadyState,info] = dynare_resolve('restrict'); + if info(1) == 1 || info(1) == 2 || info(1) == 5 fval = bayestopt_.penalty+1; cost_flag = 0; diff --git a/matlab/DsgeLikelihood_hh.m b/matlab/DsgeLikelihood_hh.m index 5535ec3069430fe848f9abdfcc4b751c63b8aeb1..d6d2d147367348f4c2ecd9436e1a2d6ec0744629 100644 --- a/matlab/DsgeLikelihood_hh.m +++ b/matlab/DsgeLikelihood_hh.m @@ -125,9 +125,7 @@ function [fval,llik,cost_flag,ys,trend_coeff,info] = DsgeLikelihood(xparam1,gend %------------------------------------------------------------------------------ % 2. call model setup & reduction program %------------------------------------------------------------------------------ - [T,R,SteadyState,info] = dynare_resolve(bayestopt_.restrict_var_list,... - bayestopt_.restrict_columns,... - bayestopt_.restrict_aux); + [T,R,SteadyState,info] = dynare_resolve('restrict'); if info(1) == 1 || info(1) == 2 || info(1) == 5 fval = bayestopt_.penalty+1; cost_flag = 0; diff --git a/matlab/DsgeSmoother.m b/matlab/DsgeSmoother.m index 784eecb6fe9a1cd248d4e4c78f370d3bfd5b15a9..e522d34e0c46d9d57724a205fab2e3791954312f 100644 --- a/matlab/DsgeSmoother.m +++ b/matlab/DsgeSmoother.m @@ -67,8 +67,10 @@ set_all_parameters(xparam1); %------------------------------------------------------------------------------ % 2. call model setup & reduction program %------------------------------------------------------------------------------ -[T,R,SteadyState] = dynare_resolve(bayestopt_.smoother_var_list,... - bayestopt_.smoother_restrict_columns,[]); +oo_.dr.restrict_var_list = bayestopt_.smoother_var_list; +oo_.dr.restrict_columns = bayestopt_.smoother_restrict_columns; +[T,R,SteadyState] = dynare_resolve('restrict'); + bayestopt_.mf = bayestopt_.smoother_mf; if options_.noconstant constant = zeros(nobs,1); diff --git a/matlab/DsgeVarLikelihood.m b/matlab/DsgeVarLikelihood.m index 0a25e445bf96ac4518c8db8091d4ab1d992c7ba7..18c6475fba2983290b791c36031cc16ab58b4ee3 100644 --- a/matlab/DsgeVarLikelihood.m +++ b/matlab/DsgeVarLikelihood.m @@ -106,9 +106,8 @@ end %------------------------------------------------------------------------------ % 2. call model setup & reduction program %------------------------------------------------------------------------------ -[T,R,SteadyState,info] = dynare_resolve(bayestopt_.restrict_var_list,... - bayestopt_.restrict_columns,... - bayestopt_.restrict_aux); +[T,R,SteadyState,info] = dynare_resolve('restrict'); + if info(1) == 1 || info(1) == 2 || info(1) == 5 fval = bayestopt_.penalty+1; cost_flag = 0; diff --git a/matlab/dsge_posterior_kernel.m b/matlab/dsge_posterior_kernel.m index 0b7f190a70455ff28becc2e8c1ba06bd735c70a5..2a5232786127db7c4f240c8d1529f9e1c81a4314 100644 --- a/matlab/dsge_posterior_kernel.m +++ b/matlab/dsge_posterior_kernel.m @@ -124,9 +124,7 @@ M_.H = H; %------------------------------------------------------------------------------ % 2. call model setup & reduction program %------------------------------------------------------------------------------ -[T,R,SteadyState,info] = dynare_resolve(bayestopt_.restrict_var_list,... - bayestopt_.restrict_columns,... - bayestopt_.restrict_aux); +[T,R,SteadyState,info] = dynare_resolve('restrict'); if info(1) == 1 | info(1) == 2 | info(1) == 5 fval = bayestopt_.penalty+1; cost_flag = 0; diff --git a/matlab/dynare_resolve.m b/matlab/dynare_resolve.m index d6bca093712275f7112030e3730f8c3df7420e53..c3b6de9d7c1113d386aacd56d9726fa8520f0db2 100644 --- a/matlab/dynare_resolve.m +++ b/matlab/dynare_resolve.m @@ -1,12 +1,10 @@ -function [A,B,ys,info] = dynare_resolve(iv,ic,aux) -% function [A,B,ys,info] = dynare_resolve(iv,ic,aux) +function [A,B,ys,info] = dynare_resolve(mode) +% function [A,B,ys,info] = dynare_resolve(mode) % Computes the linear approximation and the matrices A and B of the % transition equation % % INPUTS -% iv: selected variables (observed and state variables) -% ic: state variables position in the transition matrix columns -% aux: indices for auxiliary equations +% mode: string 'restrict' returns restricted transition matrices % % OUTPUTS % A: matrix of predetermined variables effects in linear solution (ghx) @@ -61,16 +59,15 @@ if nargin == 0 npred = oo_.dr.npred; iv = (1:endo_nbr)'; ic = [ nstatic+(1:npred) endo_nbr+(1:size(oo_.dr.ghx,2)-npred) ]'; - aux = oo_.dr.transition_auxiliary_variables; - k = find(aux(:,2) > npred); - aux(:,2) = aux(:,2) + nstatic; - aux(k,2) = aux(k,2) + oo_.dr.nfwrd; +else + iv = oo_.dr.restrict_var_list; + ic = oo_.dr.restrict_columns; end if nargout==1 - A = kalman_transition_matrix(oo_.dr,iv,ic,aux,M_.exo_nbr); + A = kalman_transition_matrix(oo_.dr,iv,ic,M_.exo_nbr); return end -[A,B] = kalman_transition_matrix(oo_.dr,iv,ic,aux,M_.exo_nbr); +[A,B] = kalman_transition_matrix(oo_.dr,iv,ic,M_.exo_nbr); ys = oo_.dr.ys; \ No newline at end of file