Fix stack_solve_algo=1 without bytecode, on solve two boundaries simple/complete blocks

The result for the last simulation period was wrong.
trustregion
Sébastien Villemot 2022-02-25 16:32:16 +01:00
parent c9825c803a
commit 0147faad5f
No known key found for this signature in database
GPG Key ID: 2CECE9350ECEBE4A
1 changed files with 3 additions and 2 deletions

View File

@ -47,7 +47,7 @@ function [y, T, oo]= solve_two_boundaries(fname, y, x, params, steady_state, T,
% none.
%
% Copyright (C) 1996-2020 Dynare Team
% Copyright (C) 1996-2022 Dynare Team
%
% This file is part of Dynare.
%
@ -187,8 +187,8 @@ while ~(cvg==1 || iter>maxit_)
B1_inv = inv(g1a(Elem, Elem));
if (t < periods)
S1 = B1_inv * g1a(Elem, Elem_1);
g1a(Elem, Elem_1) = S1;
end
g1a(Elem, Elem_1) = S1;
b(Elem) = B1_inv * b(Elem);
g1a(Elem, Elem) = ones(Blck_size, Blck_size);
if t<periods
@ -203,6 +203,7 @@ while ~(cvg==1 || iter>maxit_)
dx = ya;
dx(y_Elem) = za - ya(y_Elem);
ya(y_Elem) = ya(y_Elem) + lambda*dx(y_Elem);
y(y_index, y_kmin + periods) = ya(y_Elem);
for t=periods-1:-1:1
first_elem = (t-1)*Blck_size+1;
last_elem = t*Blck_size;