From bf856146684c02cd7a4fd58260727920774b5b1b Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 7 Jul 2011 15:15:44 +0200 Subject: [PATCH 1/3] fix typo --- preprocessor/ParsingDriver.cc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/preprocessor/ParsingDriver.cc b/preprocessor/ParsingDriver.cc index ddf7ed901..a44937086 100644 --- a/preprocessor/ParsingDriver.cc +++ b/preprocessor/ParsingDriver.cc @@ -934,7 +934,7 @@ ParsingDriver::option_symbol_list(const string &name_option) for (vector::const_iterator it = shocks.begin(); it != shocks.end(); it++) if (mod_file->symbol_table.getType(*it) != eExogenous) - error("Variables passed to irf_for must be exogenous. Caused by: " + *it); + error("Variables passed to irf_shocks must be exogenous. Caused by: " + *it); } options_list.symbol_list_options[name_option] = symbol_list; From 9b9eb4e078b81fea98252f429a683c84acf885e7 Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 7 Jul 2011 15:31:46 +0200 Subject: [PATCH 2/3] irf_shocks bug fix in stoch_simul (Thanks to J. Pfeifer for pointing this out) --- matlab/getIrfShocksIndx.m | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/matlab/getIrfShocksIndx.m b/matlab/getIrfShocksIndx.m index 0974bcedc..715a530bc 100644 --- a/matlab/getIrfShocksIndx.m +++ b/matlab/getIrfShocksIndx.m @@ -24,6 +24,6 @@ if (isfield(options_,'irf_shocks')==0) else irf_shocks_indx = zeros(1,size(options_.irf_shocks,1)); for i=1:size(options_.irf_shocks,1) - irf_shocks_indx(i) = find(M_.exo_names==options_.irf_shocks(i)); + irf_shocks_indx(i) = find(strcmp(deblank(options_.irf_shocks(i,:)), cellstr(M_.exo_names))); end -end \ No newline at end of file +end From e20b1dd27c7edc3430c55d658508ad1887ee3744 Mon Sep 17 00:00:00 2001 From: Houtan Bastani Date: Thu, 7 Jul 2011 16:05:18 +0200 Subject: [PATCH 3/3] test for irf_shocks --- tests/Makefile.am | 1 + tests/example1_irf_shocks.mod | 46 +++++++++++++++++++++++++++++++++++ 2 files changed, 47 insertions(+) create mode 100644 tests/example1_irf_shocks.mod diff --git a/tests/Makefile.am b/tests/Makefile.am index dcfef72b1..7e4e0a32c 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -7,6 +7,7 @@ MODFILES = \ example2.mod \ example1_use_dll.mod \ example1_with_tags.mod \ + example1_irf_shocks.mod \ t_sgu_ex1.mod \ osr_example.mod \ optimal_policy/ramsey.mod \ diff --git a/tests/example1_irf_shocks.mod b/tests/example1_irf_shocks.mod new file mode 100644 index 000000000..661f0984d --- /dev/null +++ b/tests/example1_irf_shocks.mod @@ -0,0 +1,46 @@ +// Example 1 from Collard's guide to Dynare +var y, c, k, a, h, b; +varexo e, u, eps; + +parameters beta, rho, alpha, delta, theta, psi, tau; + +alpha = 0.36; +rho = 0.95; +tau = 0.025; +beta = 0.99; +delta = 0.025; +psi = 0; +theta = 2.95; + +phi = 0.1; + +model; +c*theta*h^(1+psi)=(1-alpha)*y; +k = beta*(((exp(b)*c)/(exp(b(+1))*c(+1))) + *(exp(b(+1))*alpha*y(+1)+(1-delta)*k)); +y = exp(a)*(k(-1)^alpha)*(h^(1-alpha)); +k = exp(b)*(y-c)+(1-delta)*k(-1); +a = rho*a(-1)+tau*b(-1) + e; +b = tau*a(-1)+rho*b(-1) + u + eps; +end; + +initval; +y = 1.08068253095672; +c = 0.80359242014163; +h = 0.29175631001732; +k = 11.08360443260358; +a = 0; +b = 0; +e = 0; +u = 0; +eps = 0; +end; + +shocks; +var e; stderr 0.009; +var u; stderr 0.009; +var eps; stderr 0.009; +var e, u = phi*0.009*0.009; +end; + +stoch_simul(irf_shocks=(eps,u));