From 4b4c3db3b94f801391a707ea634da1f7e8538f31 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Adjemian=28Charybdis=29?=
 <stephane.adjemian@univ-lemans.fr>
Date: Sat, 14 Oct 2017 16:35:01 +0200
Subject: [PATCH] Allow shocks over multiple periods in backward model routine.

---
 matlab/backward/backward_model_irf.m | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/matlab/backward/backward_model_irf.m b/matlab/backward/backward_model_irf.m
index 47753d6c5..79251ade8 100644
--- a/matlab/backward/backward_model_irf.m
+++ b/matlab/backward/backward_model_irf.m
@@ -85,9 +85,6 @@ else
             if initialconditionperiod>=shock.dates(1)
                 error('In experiment n°%s, the shock period must follow %s!', string(initialconditionperiod))
             end
-            if shock.nobs>1
-                error('Shocks over multiple periods not implemented yet!')
-            end
         end
     end
 end
@@ -160,10 +157,12 @@ for i=1:length(listofshocks)
     % Add the shock.
     if deterministicshockflag
         shock = listofshocks{i};
-        timid = shock.dates(1)-initialconditionperiod;
+        timid = shock.dates-initialconditionperiod;
         for j=1:shock.vobs
             k = find(strcmp(shock.name{i}, exonames));
-            innovations(timid,k) = innovations(timid,k) + shock.data(1,j);
+            for l=1:length(timid)
+                innovations(timid(l),k) = innovations(timid(l),k) + shock.data(l,j);
+            end
         end
     else
         j = find(strcmp(listofshocks{i}, exonames));
-- 
GitLab