Skip to content
Snippets Groups Projects
Commit 3c7b1cf2 authored by MichelJuillard's avatar MichelJuillard
Browse files

changed calling sequence for sim1; use local variable names without _;

sim1 honors options_.nodisplay
parent 21f009a5
No related branches found
No related tags found
No related merge requests found
......@@ -39,7 +39,7 @@ else
oo_ = sim1_purely_forward(options_, M_, oo_);
else % General case
if options_.stack_solve_algo == 0
oo_ = sim1(options_, M_, oo_);
oo_ = sim1(M_, options_, oo_);
elseif options_.stack_solve_algo == 6
oo_ = sim1_lbj(options_, M_, oo_);
elseif options_.stack_solve_algo == 7
......
function oo_ = sim1(options_, M_, oo_)
function oo_ = sim1(M, options, oo)
% function sim1
% Performs deterministic simulations with lead or lag on one period.
% Uses sparse matrices.
......@@ -31,7 +31,7 @@ function oo_ = sim1(options_, M_, oo_)
% along with Dynare. If not, see <http://www.gnu.org/licenses/>.
verbose = options_.no_homotopy;
verbose = options.no_homotopy && ~ options.nodisplay;
endogenous_terminal_period = options.endogenous_terminal_period;
vperiods = options.periods*ones(1,options.simul.maxit);
......@@ -170,11 +170,11 @@ end
if stop
if any(isnan(res)) || any(isinf(res)) || any(isnan(Y)) || any(isinf(Y)) || ~isreal(res) || ~isreal(Y)
oo_.deterministic_simulation.status = false;% NaN or Inf occurred
oo_.deterministic_simulation.error = err;
oo_.deterministic_simulation.iterations = iter;
oo_.deterministic_simulation.periods = vperiods(1:iter);
oo_.endo_simul = reshape(Y,ny,periods+maximum_lag+M_.maximum_lead);
oo.deterministic_simulation.status = false;% NaN or Inf occurred
oo.deterministic_simulation.error = err;
oo.deterministic_simulation.iterations = iter;
oo.deterministic_simulation.periods = vperiods(1:iter);
oo.endo_simul = reshape(Y,ny,periods+maximum_lag+M.maximum_lead);
if verbose
skipline();
fprintf('\nSimulation terminated after %d iterations.\n',iter);
......@@ -194,11 +194,11 @@ if stop
fprintf('Max. Abs. Error : %16.13f\n',err);
fprintf('Convergency obtained!\n');
end
oo_.deterministic_simulation.status = true;% Convergency obtained.
oo_.deterministic_simulation.error = err;
oo_.deterministic_simulation.iterations = iter;
oo_.deterministic_simulation.periods = vperiods(1:iter);
oo_.endo_simul = reshape(Y,ny,periods+maximum_lag+M_.maximum_lead);
oo.deterministic_simulation.status = true;% Convergency obtained.
oo.deterministic_simulation.error = err;
oo.deterministic_simulation.iterations = iter;
oo.deterministic_simulation.periods = vperiods(1:iter);
oo.endo_simul = reshape(Y,ny,periods+maximum_lag+M.maximum_lead);
end
elseif ~stop
if verbose
......@@ -208,10 +208,10 @@ elseif ~stop
fprintf('Max. Abs. Error : %16.13f\n',err);
fprintf('WARNING : maximum number of iterations is reached (modify option maxit).\n') ;
end
oo_.deterministic_simulation.status = false;% more iterations are needed.
oo_.deterministic_simulation.error = err;
oo_.deterministic_simulation.periods = vperiods(1:iter);
oo_.deterministic_simulation.iterations = options_.simul.maxit;
oo.deterministic_simulation.status = false;% more iterations are needed.
oo.deterministic_simulation.error = err;
oo.deterministic_simulation.periods = vperiods(1:iter);
oo.deterministic_simulation.iterations = options.simul.maxit;
end
if verbose
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment