Removed options_ and oo_ globals from *all* generated dynamic model
routines (with block option) and adapted some routines to reflect this change.time-shift
parent
d3275db830
commit
a894357655
|
@ -72,7 +72,7 @@ end;
|
|||
if (options_.bytecode)
|
||||
[chck, zz, data]= bytecode('dynamic','evaluate', z, zx, M_.params, dr.ys, 1, data);
|
||||
else
|
||||
[r, data] = feval([M_.fname '_dynamic'], z', zx, M_.params, dr.ys, M_.maximum_lag+1, data);
|
||||
[r, data] = feval([M_.fname '_dynamic'], options_, M_, oo_, z', zx, M_.params, dr.ys, M_.maximum_lag+1, data);
|
||||
chck = 0;
|
||||
end;
|
||||
mexErrCheck('bytecode', chck);
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
function ra = lnsrch1_wrapper_two_boundaries(ya, fname, y, y_index, x, ...
|
||||
params, steady_state, periods, y_kmin, y_size)
|
||||
params, steady_state, periods, y_kmin, y_size,Periods)
|
||||
% wrapper for solve_one_boundary m-file when it is used with a dynamic
|
||||
% model
|
||||
%
|
||||
|
@ -45,5 +45,5 @@ function ra = lnsrch1_wrapper_two_boundaries(ya, fname, y, y_index, x, ...
|
|||
|
||||
%reshape the input arguments of the dynamic function
|
||||
y(y_kmin+1:y_kmin+periods, y_index) = reshape(ya',length(y_index),periods)';
|
||||
[r, y, g1, g2, g3, b]=feval(fname, y, x, params, steady_state, periods, 0, y_kmin, y_size);
|
||||
[r, y, g1, g2, g3, b]=feval(fname, y, x, params, steady_state, periods, 0, y_kmin, y_size, Periods);
|
||||
ra = reshape(r(:, y_kmin+1:periods+y_kmin),periods*y_size, 1);
|
||||
|
|
|
@ -15,7 +15,7 @@ if options_.block
|
|||
end
|
||||
mexErrCheck('bytecode', info);
|
||||
else
|
||||
eval([M_.fname '_dynamic']);
|
||||
oo_ = feval([M_.fname '_dynamic'], options_, M_, oo_);
|
||||
end
|
||||
else
|
||||
if options_.bytecode
|
||||
|
|
|
@ -298,8 +298,7 @@ while ~(cvg==1 || iter>maxit_),
|
|||
g = (ra'*g1a)';
|
||||
f = 0.5*ra'*ra;
|
||||
p = -g1a\ra;
|
||||
[yn,f,ra,check]=lnsrch1(ya,f,g,p,stpmax, ...
|
||||
'lnsrch1_wrapper_two_boundaries',nn,nn, fname, y, y_index, x, params, steady_state, periods, y_kmin, Blck_size);
|
||||
[yn,f,ra,check]=lnsrch1(ya,f,g,p,stpmax,'lnsrch1_wrapper_two_boundaries',nn,nn, fname, y, y_index,x, params, steady_state, periods, y_kmin, Blck_size,options.periods);
|
||||
dx = ya - yn;
|
||||
y(1+y_kmin:periods+y_kmin,y_index)=reshape(yn',length(y_index),periods)';
|
||||
end
|
||||
|
|
|
@ -1788,8 +1788,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
|
|||
int Nb_SGE = 0;
|
||||
bool open_par = false;
|
||||
|
||||
mDynamicModelFile << "function [varargout] = " << dynamic_basename << "(varargin)\n";
|
||||
mDynamicModelFile << " global oo_ options_ M_ ;\n";
|
||||
mDynamicModelFile << "function [varargout] = " << dynamic_basename << "(options_, M_, oo_, varargin)\n";
|
||||
mDynamicModelFile << " g2=[];g3=[];\n";
|
||||
//Temporary variables declaration
|
||||
OK = true;
|
||||
|
@ -1804,7 +1803,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
|
|||
(*it)->writeOutput(tmp_output, oMatlabStaticModelSparse, temporary_terms);
|
||||
}
|
||||
if (tmp_output.str().length() > 0)
|
||||
mDynamicModelFile << " global " << tmp_output.str() << " M_ ;\n";
|
||||
mDynamicModelFile << " global " << tmp_output.str() << ";\n";
|
||||
|
||||
mDynamicModelFile << " T_init=zeros(1,options_.periods+M_.maximum_lag+M_.maximum_lead);\n";
|
||||
tmp_output.str("");
|
||||
|
@ -2076,6 +2075,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri
|
|||
mDynamicModelFile << " end;\n";
|
||||
open_par = false;
|
||||
mDynamicModelFile << " oo_.endo_simul = y';\n";
|
||||
mDynamicModelFile << " varargout{1} = oo_;\n";
|
||||
mDynamicModelFile << "return;\n";
|
||||
mDynamicModelFile << "end" << endl;
|
||||
|
||||
|
|
Loading…
Reference in New Issue