diff --git a/matlab/perfect-foresight-models/sim1_linear.m b/matlab/perfect-foresight-models/sim1_linear.m index 0cf316034b34e255ef5aa21cb9c4afc25279472c..5136f94015b2dbe5c41ce6a06d934fc12968a935 100644 --- a/matlab/perfect-foresight-models/sim1_linear.m +++ b/matlab/perfect-foresight-models/sim1_linear.m @@ -239,7 +239,7 @@ end if any(isnan(res)) || any(isinf(res)) || any(isnan(Y)) || any(isinf(Y)) || ~isreal(res) || ~isreal(Y) success = false; % NaN or Inf occurred - endogenousvariables = reshape(Y, ny, periods+maximum_lag+M_.maximum_lead); + endogenousvariables = bsxfun(@plus, reshape(Y, ny, periods+maximum_lag+M_.maximum_lead), steadystate_y); if verbose skipline() if ~isreal(res) || ~isreal(Y) diff --git a/tests/deterministic_simulations/linear_approximation/sw.mod b/tests/deterministic_simulations/linear_approximation/sw.mod index 949d427267a11f585f9621878ffaa10869e4d1ff..a4767a8b00d611138789add269ad1ed0b2411f01 100644 --- a/tests/deterministic_simulations/linear_approximation/sw.mod +++ b/tests/deterministic_simulations/linear_approximation/sw.mod @@ -133,3 +133,15 @@ end if max(abs(endo_simul_0(:)-endo_simul_1(:)))>.01*options_.dynatol.f error('Something is wrong!') end + +// Test stack_solve_algo=0+linear_approximation, which uses a different codepath than stack_solve_algo=7 +perfect_foresight_setup(periods=300); +perfect_foresight_solver(linear_approximation, stack_solve_algo=0); +endo_simul_2 = oo_.endo_simul; +if ~oo_.deterministic_simulation.status + error('Perfect foresight simulation failed') +end + +if max(abs(endo_simul_0(:)-endo_simul_2(:)))>.01*options_.dynatol.f + error('Something is wrong!') +end