From 87e4125fa47e2e0e9a829f80e305295f62e942ec Mon Sep 17 00:00:00 2001
From: Michel Juillard <michel.juillard@mjui.fr>
Date: Mon, 14 Mar 2011 11:40:40 +0100
Subject: [PATCH] put *_params_derivs.m and identification code in conformity
 with additional steady state argument in *_dynamics.m

---
 matlab/dynare_identification.m | 4 +++-
 matlab/getH.m                  | 9 ++++++---
 preprocessor/DynamicModel.cc   | 5 +----
 3 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/matlab/dynare_identification.m b/matlab/dynare_identification.m
index ea0047abfe..e48b7c1c67 100644
--- a/matlab/dynare_identification.m
+++ b/matlab/dynare_identification.m
@@ -178,7 +178,9 @@ if iload <=0,
             oo0=oo_;
             tau=[oo_.dr.ys(oo_.dr.order_var); vec(A); dyn_vech(B*M_.Sigma_e*B')];
             yy0=oo_.dr.ys(I);    
-            [residual, g1 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', M_.params,1);    
+            [residual, g1 ] = feval([M_.fname,'_dynamic'],yy0, ...
+                                    oo_.exo_steady_state', M_.params, ...
+                                    oo_.dr.ys, 1);    
 
             if burnin_iteration<BurninSampleSize,
                 burnin_iteration = burnin_iteration + 1;
diff --git a/matlab/getH.m b/matlab/getH.m
index 05b163a019..58d514c77a 100644
--- a/matlab/getH.m
+++ b/matlab/getH.m
@@ -30,10 +30,13 @@ yy0=oo_.dr.ys(I);
 % for j=1:size(M_.lead_lag_incidence,1);
 %     yy0 = [ yy0; oo_.dr.ys(find(M_.lead_lag_incidence(j,:)))];
 % end
-[df, gp] = feval([M_.fname,'_params_derivs'],yy0, oo_.exo_steady_state', M_.params, 1);
-[residual, g1 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', M_.params,1);
+[df, gp] = feval([M_.fname,'_params_derivs'],yy0, oo_.exo_steady_state', ...
+                 M_.params, oo_.dr.ys, 1);
+[residual, g1 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', ...
+                        M_.params, oo_.dr.ys, 1);
 
-[residual, g1, g2 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', M_.params,1);
+[residual, g1, g2 ] = feval([M_.fname,'_dynamic'],yy0, oo_.exo_steady_state', ...
+                            M_.params, oo_.dr.ys, 1);
 [residual, gg1] = feval([M_.fname,'_static'],oo_.dr.ys, oo_.exo_steady_state', M_.params);
 % df = feval([M_.fname,'_model_derivs'],yy0, oo_.exo_steady_state', M_.params, 1);
 dyssdtheta = -gg1\df;
diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc
index ef3773d789..47cec105d0 100644
--- a/preprocessor/DynamicModel.cc
+++ b/preprocessor/DynamicModel.cc
@@ -3333,14 +3333,11 @@ DynamicModel::writeParamsDerivativesFile(const string &basename) const
       cerr << "ERROR: Can't open file " << filename << " for writing" << endl;
       exit(EXIT_FAILURE);
     }
-  paramsDerivsFile << "function [rp, gp, rpp, gpp, hp] = " << basename << "_params_derivs(y, x, params, it_, ss_param_deriv, ss_param_2nd_deriv)" << endl
+  paramsDerivsFile << "function [rp, gp, rpp, gpp, hp] = " << basename << "_params_derivs(y, x, params, steady_state, it_, ss_param_deriv, ss_param_2nd_deriv)" << endl
                    << "%" << endl
                    << "% Warning : this file is generated automatically by Dynare" << endl
                    << "%           from model file (.mod)" << endl << endl;
 
-  if (isUnaryOpUsed(oSteadyState))
-    paramsDerivsFile << "global oo_;" << endl << endl;
-
   writeModelLocalVariables(paramsDerivsFile, oMatlabDynamicModel);
 
   writeTemporaryTerms(params_derivs_temporary_terms, paramsDerivsFile, oMatlabDynamicModel);
-- 
GitLab