From ebc0b7ecb2a00b242639e0dcfed24f63b03c4302 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= Date: Fri, 19 Jun 2020 17:44:31 +0200 Subject: [PATCH] Block decomposition: move logic for Jacobians in stochastic mode outside the dynamic file --- matlab/dr_block.m | 12 +++++++++--- preprocessor | 2 +- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/matlab/dr_block.m b/matlab/dr_block.m index 24243c27c..ce28abdb6 100644 --- a/matlab/dr_block.m +++ b/matlab/dr_block.m @@ -70,10 +70,16 @@ else data = M_; Size = 1; end -if (options_.bytecode) - [zz, data]= bytecode('dynamic','evaluate', z, zx, M_.params, dr.ys, 1, data); +if options_.bytecode + [~, data]= bytecode('dynamic','evaluate', z, zx, M_.params, dr.ys, 1, data); else - [r, data] = feval([M_.fname '.dynamic'], options_, M_, oo_, dynvars_from_endo_simul(z, M_.maximum_lag+1, M_), zx, M_.params, dr.ys, M_.maximum_lag+1, data); + T=NaN(M_.block_structure.dyn_tmp_nbr, 1); + it_=M_.maximum_lag+1; + y=dynvars_from_endo_simul(z, it_, M_); + for blk = 1:length(M_.block_structure.block) + funcname = sprintf('%s.block.dynamic_%d', M_.fname, blk); + [~, T, data(blk).g1, data(blk).g1_x, data(blk).g1_xd, data(blk).g1_o]=feval(funcname, y, zx, M_.params, dr.ys, T, it_, true); + end end dr.full_rank = 1; dr.eigval = []; diff --git a/preprocessor b/preprocessor index 92aff9106..f4d2ce70d 160000 --- a/preprocessor +++ b/preprocessor @@ -1 +1 @@ -Subproject commit 92aff91066315b7975f5de60542a255b912278f3 +Subproject commit f4d2ce70dafd1331791b2fd96f3468b3f6c103da