diff --git a/matlab/DsgeSmoother.m b/matlab/DsgeSmoother.m index 51dab6569eb88bf4d801378e3dc6190cfa95bf51..e8e76f97e02015bf064a2959463cbadbe7df9b2b 100644 --- a/matlab/DsgeSmoother.m +++ b/matlab/DsgeSmoother.m @@ -74,7 +74,7 @@ bayestopt_.mf = bayestopt_.smoother_mf; if options_.noconstant constant = zeros(nobs,1); else - if options_.loglinear == 1 + if options_.loglinear constant = log(SteadyState(bayestopt_.mfys)); else constant = SteadyState(bayestopt_.mfys); diff --git a/matlab/PosteriorFilterSmootherAndForecast.m b/matlab/PosteriorFilterSmootherAndForecast.m index d39d67d35d28ebe7b273e89e16a34f1c166f40eb..0b3bd1e35075aa96e2c8dbd3ad62d516dbbe540c 100644 --- a/matlab/PosteriorFilterSmootherAndForecast.m +++ b/matlab/PosteriorFilterSmootherAndForecast.m @@ -170,19 +170,19 @@ for b=1:B horizon+maxlag,1); end yf(:,IdObs) = yf(:,IdObs)+(gend+[1-maxlag:horizon]')*trend_coeff'; - if options_.loglinear == 1 + if options_.loglinear yf = yf+repmat(log(SteadyState'),horizon+maxlag,1); else yf = yf+repmat(SteadyState',horizon+maxlag,1); end yf1 = forcst2(yyyy,horizon,dr,1); - if options_.prefilter == 1 + if options_.prefilter yf1(:,IdObs,:) = yf1(:,IdObs,:)+ ... repmat(bayestopt_.mean_varobs',[horizon+maxlag,1,1]); end yf1(:,IdObs,:) = yf1(:,IdObs,:)+repmat((gend+[1-maxlag:horizon]')* ... trend_coeff',[1,1,1]); - if options_.loglinear == 1 + if options_.loglinear yf1 = yf1 + repmat(log(SteadyState'),[horizon+maxlag,1,1]); else yf1 = yf1 + repmat(SteadyState',[horizon+maxlag,1,1]); diff --git a/matlab/dr_block.m b/matlab/dr_block.m index 6a707f45b8c02e993658b44743d1e87d214f1790..1878d572cea27887fd110f942cd485b6acf8cdce 100644 --- a/matlab/dr_block.m +++ b/matlab/dr_block.m @@ -628,7 +628,7 @@ for i = 1:Size; - if options_.loglinear == 1 + if options_.loglinear error('log linear option is for the moment not supported in first order approximation for a block decomposed mode'); % k = find(dr.kstate(:,2) <= M_.maximum_endo_lag+1); % klag = dr.kstate(k,[1 2]); diff --git a/matlab/dynare_sensitivity.m b/matlab/dynare_sensitivity.m index e4df56984ca3fe29568c7119d06437391275dac3..4b106f2efac49ce0b1c42a423e957e0ac3c0b581 100644 --- a/matlab/dynare_sensitivity.m +++ b/matlab/dynare_sensitivity.m @@ -388,7 +388,7 @@ if options_gsa.glue, gend = options_.nobs; rawdata = read_variables(options_.datafile,options_.varobs,[],options_.xls_sheet,options_.xls_range); rawdata = rawdata(options_.first_obs:options_.first_obs+gend-1,:); - if options_.loglinear == 1 + if options_.loglinear rawdata = log(rawdata); end if options_.prefilter == 1 diff --git a/matlab/k_order_pert.m b/matlab/k_order_pert.m index 315c4494a8d999fc9c3b4c1d8b1a41706862edfc..db1ef91f48587ba727b132f73f37c53128f49c8d 100644 --- a/matlab/k_order_pert.m +++ b/matlab/k_order_pert.m @@ -97,11 +97,10 @@ else dr.ghx = dr.g_1(:,1:nspred); dr.ghu = dr.g_1(:,nspred+1:end); - if options.loglinear == 1 + if options.loglinear k = find(dr.kstate(:,2) <= M.maximum_endo_lag+1); klag = dr.kstate(k,[1 2]); k1 = dr.order_var; - dr.ghx = repmat(1./dr.ys(k1),1,size(dr.ghx,2)).*dr.ghx.* ... repmat(dr.ys(k1(klag(:,1)))',size(dr.ghx,1),1); dr.ghu = repmat(1./dr.ys(k1),1,size(dr.ghu,2)).*dr.ghu; diff --git a/matlab/prior_posterior_statistics_core.m b/matlab/prior_posterior_statistics_core.m index f7eaa6f28ee2eb1d1e8cb06ec32d8ec9e6f7e980..41b5b6d33f579d4d8b342999e162083e371b2076 100644 --- a/matlab/prior_posterior_statistics_core.m +++ b/matlab/prior_posterior_statistics_core.m @@ -195,12 +195,12 @@ for b=fpar:B if horizon yyyy = alphahat(iendo,i_last_obs); yf = forcst2a(yyyy,dr,zeros(horizon,exo_nbr)); - if options_.prefilter == 1 + if options_.prefilter yf(:,IdObs) = yf(:,IdObs)+repmat(bayestopt_.mean_varobs', ... horizon+maxlag,1); end yf(:,IdObs) = yf(:,IdObs)+(gend+[1-maxlag:horizon]')*trend_coeff'; - if options_.loglinear == 1 + if options_.loglinear yf = yf+repmat(log(SteadyState'),horizon+maxlag,1); else yf = yf+repmat(SteadyState',horizon+maxlag,1); @@ -212,7 +212,7 @@ for b=fpar:B end yf1(:,IdObs,:) = yf1(:,IdObs,:)+repmat((gend+[1-maxlag:horizon]')* ... trend_coeff',[1,1,1]); - if options_.loglinear == 1 + if options_.loglinear yf1 = yf1 + repmat(log(SteadyState'),[horizon+maxlag,1,1]); else yf1 = yf1 + repmat(SteadyState',[horizon+maxlag,1,1]); diff --git a/matlab/stochastic_solvers.m b/matlab/stochastic_solvers.m index 0d4827c33130ded547258a18b1d2b945644ae3b7..dd835e2ba611eb90ff732f71e1ccafd0e8406723 100644 --- a/matlab/stochastic_solvers.m +++ b/matlab/stochastic_solvers.m @@ -297,22 +297,20 @@ if M_.exo_det_nbr > 0 kron(hudi,Eud)+dr.ghxud{i-1}(kf,:)* ... kron(hudj,Eud)+dr.ghxx(kf,:)*kron(hudj,hudi))-M1*R2; end - end end end -if options_.loglinear == 1 +if options_.loglinear % this needs to be extended for order=2,3 k = find(dr.kstate(:,2) <= M_.maximum_endo_lag+1); klag = dr.kstate(k,[1 2]); k1 = dr.order_var; - dr.ghx = repmat(1./dr.ys(k1),1,size(dr.ghx,2)).*dr.ghx.* ... repmat(dr.ys(k1(klag(:,1)))',size(dr.ghx,1),1); dr.ghu = repmat(1./dr.ys(k1),1,size(dr.ghu,2)).*dr.ghu; if options_.order>1 - error('Loglinear options currently only works at order 1') + error('Loglinear options currently only works at order 1') end end