Skip to content
This repository has been archived by the owner. It is now read-only.
Permalink
Browse files

histval: use now the same treatment for exogenous and exogenous det

variables as for endogenous ones. Closes issue #617.
  • Loading branch information...
MichelJuillard committed Jul 29, 2015
1 parent f265515 commit 7d11ed764263a71aec6efe76ad96e7d02f317610
@@ -491,6 +491,8 @@ function global_initialization()

M_.params = [];
M_.endo_histval = [];
M_.exo_histval = [];
M_.exo_det_histval = [];
M_.Correlation_matrix = [];
M_.Correlation_matrix_ME = [];

@@ -39,15 +39,27 @@ function make_ex_()
end

% Initialize oo_.exo_simul
if isempty(ex0_)
oo_.exo_simul = repmat(oo_.exo_steady_state',M_.maximum_lag+options_.periods+M_.maximum_lead,1);
if isempty(M_.exo_histval)
if isempty(ex0_)
oo_.exo_simul = repmat(oo_.exo_steady_state',M_.maximum_lag+options_.periods+M_.maximum_lead,1);
else
oo_.exo_simul = [ repmat(ex0_',M_.maximum_lag,1) ; repmat(oo_.exo_steady_state',options_.periods+M_.maximum_lead,1) ];
end
else
oo_.exo_simul = [ repmat(ex0_',M_.maximum_lag,1) ; repmat(oo_.exo_steady_state',options_.periods+M_.maximum_lead,1) ];
end
if isempty(ex0_)
oo_.exo_simul = [M_.exo_histval'; repmat(oo_.exo_steady_state',options_.periods+M_.maximum_lead,1)];
else
error('histval and endval cannot be used simultaneously')
end
end

% Initialize oo_.exo_det_simul
if M_.exo_det_nbr > 0
oo_.exo_det_simul = [ones(M_.maximum_lag+options_.periods+M_.maximum_lead,1)*oo_.exo_det_steady_state'];
if isempty(M_.exo_det_histval)
oo_.exo_det_simul = repmat(oo_.exo_det_steady_state',M_.maximum_lag+options_.periods+M_.maximum_lead,1);
else
oo_.exo_det_simul = [M_.exo_det_histval'; repmat(oo_.exo_det_steady_state',options_.periods+M_.maximum_lead,1)];
end
end

% Add temporary shocks
@@ -274,7 +274,9 @@ HistValStatement::writeOutput(ostream &output, const string &basename, bool mini
output << "%" << endl
<< "% HISTVAL instructions" << endl
<< "%" << endl
<< "M_.endo_histval = zeros(M_.endo_nbr,M_.maximum_lag);" << endl;
<< "M_.endo_histval = zeros(M_.endo_nbr,M_.maximum_lag);" << endl
<< "M_.exo_histval = zeros(M_.exo_nbr,M_.maximum_lag);" << endl
<< "M_.exo_det_histval = zeros(M_.exo_det_nbr,M_.maximum_lag);" << endl;

for (hist_values_t::const_iterator it = hist_values.begin();
it != hist_values.end(); it++)
@@ -312,9 +314,9 @@ HistValStatement::writeOutput(ostream &output, const string &basename, bool mini
if (type == eEndogenous)
output << "M_.endo_histval( " << tsid << ", M_.maximum_lag + " << lag << ") = ";
else if (type == eExogenous)
output << "oo_.exo_simul( M_.maximum_lag + " << lag << ", " << tsid << " ) = ";
else if (type != eExogenousDet)
output << "oo_.exo_det_simul( M_.maximum_lag + " << lag << ", " << tsid << " ) = ";
output << "M_.exo_histval( " << tsid << ", M_.maximum_lag + " << lag << ") = ";
else if (type == eExogenousDet)
output << "M_.exo_det_histval( " << tsid << ", M_.maximum_lag + " << lag << ") = ";

expression->writeOutput(output);
output << ";" << endl;

0 comments on commit 7d11ed7

Please sign in to comment.
You can’t perform that action at this time.