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