diff --git a/matlab/dynare_solve_block_or_bytecode.m b/matlab/dynare_solve_block_or_bytecode.m index 301d3aa26615a8e8dbb9617a19eefd38199d7ea8..ce82bc5dfd547748e854c0ce22598781bd27e62e 100644 --- a/matlab/dynare_solve_block_or_bytecode.m +++ b/matlab/dynare_solve_block_or_bytecode.m @@ -37,7 +37,7 @@ if options.block && ~options.bytecode else n = length(M.block_structure_stat.block(b).variable); [ss, check] = solve_one_boundary([M.fname '_static_' int2str(b)], ss, exo, ... - params, [], M.block_structure_stat.block(b).variable, n, 1, 0, b, 0, options.maxit_, ... + params, [], M.block_structure_stat.block(b).variable, n, 1, 0, b, 0, options.simul.maxit, ... options.solve_tolf, ... options.slowc, 0, options.solve_algo, 1, 0, 0,M,options); if check diff --git a/matlab/ep/extended_path.m b/matlab/ep/extended_path.m index 981d84706871fab7521690f270ae942ba02cf04a..c0bdaa3a614be67fa2fef33bd69164d64f0c2817 100644 --- a/matlab/ep/extended_path.m +++ b/matlab/ep/extended_path.m @@ -50,7 +50,7 @@ if isempty(initial_conditions) end % Set maximum number of iterations for the deterministic solver. -options_.maxit_ = options_.ep.maxit; +options_.simul.maxit = options_.ep.maxit; % Set the number of periods for the perfect foresight model periods = options_.ep.periods; diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model.m b/matlab/ep/solve_stochastic_perfect_foresight_model.m index 12b8b37cf9d0f27772f5e4ddde39485d59a0b7fd..683a6cec6d216d295c7adce1c60713d3f2ec8ae2 100644 --- a/matlab/ep/solve_stochastic_perfect_foresight_model.m +++ b/matlab/ep/solve_stochastic_perfect_foresight_model.m @@ -224,7 +224,7 @@ function [flag,endo_simul,err] = solve_stochastic_perfect_foresight_model(endo_s fprintf('\n') ; disp([' Total time of simulation :' num2str(etime(clock,h1))]) ; fprintf('\n') ; - disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ; + disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ; fprintf('\n') ; end flag = 1;% more iterations are needed. diff --git a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m index f732792e5d3be1ed8a9bc93a62c3dde039daf9f6..01d7bcaccf4cf7ce8afb530055ba82ad1187ab83 100644 --- a/matlab/ep/solve_stochastic_perfect_foresight_model_1.m +++ b/matlab/ep/solve_stochastic_perfect_foresight_model_1.m @@ -274,7 +274,7 @@ function [flag,endo_simul,err] = solve_stochastic_perfect_foresight_model_1(endo fprintf('\n') ; disp([' Total time of simulation :' num2str(etime(clock,h1))]) ; fprintf('\n') ; - disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ; + disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ; fprintf('\n') ; end flag = 1;% more iterations are needed. diff --git a/matlab/perfect_foresight_simulation.m b/matlab/perfect_foresight_simulation.m index 17d253a91901cb474a508e9410eddd33e3db1086..ffef743edff31a71a08448c6025eab55086b76b3 100644 --- a/matlab/perfect_foresight_simulation.m +++ b/matlab/perfect_foresight_simulation.m @@ -93,14 +93,14 @@ it_init = M_.maximum_lag+1; info.convergence = 1; info.time = 0; info.error = 0; -info.iterations.time = zeros(options_.maxit_,1); +info.iterations.time = zeros(options_.simul.maxit,1); info.iterations.error = info.iterations.time; -last_line = options_.maxit_; +last_line = options_.simul.maxit; error_growth = 0; h1 = clock; -for iter = 1:options_.maxit_ +for iter = 1:options_.simul.maxit h2 = clock; if options_.terminal_condition c = zeros(ny*(periods+1),nrc); diff --git a/matlab/setup_stochastic_perfect_foresight_model_solver.m b/matlab/setup_stochastic_perfect_foresight_model_solver.m index 616281783afb5df12f4d2b0435835c85b6880dd9..42cba7c8a8f50392b44963c5b937ee701ac02268 100644 --- a/matlab/setup_stochastic_perfect_foresight_model_solver.m +++ b/matlab/setup_stochastic_perfect_foresight_model_solver.m @@ -66,7 +66,7 @@ pfm.i_cols_j = 1:pfm.nd; pfm.i_upd = pfm.ny+(1:pfm.periods*pfm.ny); pfm.dynamic_model = str2func([DynareModel.fname,'_dynamic']); pfm.verbose = DynareOptions.ep.verbosity; -pfm.maxit_ = DynareOptions.maxit_; +pfm.maxit_ = DynareOptions.simul.maxit; pfm.tolerance = DynareOptions.dynatol.f; if nargin>3 && DynareOptions.ep.stochastic.order diff --git a/matlab/sim1.m b/matlab/sim1.m index f3ca28205fae77d03fd35bb090ae36057e1d2ee6..677bf07d992ae7ee8f25c5f22b9f22c36c29b9f2 100644 --- a/matlab/sim1.m +++ b/matlab/sim1.m @@ -82,7 +82,7 @@ res = zeros(periods*ny,1); h1 = clock ; -for iter = 1:options_.maxit_ +for iter = 1:options_.simul.maxit h2 = clock ; i_rows = 1:ny; @@ -156,11 +156,11 @@ elseif ~stop skipline(); fprintf('\nSimulation terminated after %d iterations.\n',iter); fprintf('Total time of simulation : %10.3f\n',etime(clock,h1)); - fprintf('WARNING : maximum number of iterations is reached (modify options_.maxit_).\n') ; + fprintf('WARNING : maximum number of iterations is reached (modify options_.simul.maxit).\n') ; oo_.deterministic_simulation.status = 0;% more iterations are needed. oo_.deterministic_simulation.error = err; %oo_.deterministic_simulation.errors = c/abs(err) - oo_.deterministic_simulation.iterations = options_.maxit_; + oo_.deterministic_simulation.iterations = options_.simul.maxit; end disp (['-----------------------------------------------------']) ; skipline(); diff --git a/matlab/sim1_lbj.m b/matlab/sim1_lbj.m index 8222ae4de6ddd00fad537fcc6de1ccbae926f4d6..e2039cc1a9fba9b17774a0e3caf17f26d6c51e4a 100644 --- a/matlab/sim1_lbj.m +++ b/matlab/sim1_lbj.m @@ -58,7 +58,7 @@ fprintf('\n') ; it_init = M_.maximum_lag+1 ; h1 = clock ; -for iter = 1:options_.maxit_ +for iter = 1:options_.simul.maxit h2 = clock ; if options_.terminal_condition == 0 @@ -121,12 +121,12 @@ if ~stop fprintf('\n') ; disp([' Total time of simulation :' num2str(etime(clock,h1))]) ; fprintf('\n') ; - disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ; + disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ; fprintf('\n') ; oo_.deterministic_simulation.status = 0;% more iterations are needed. oo_.deterministic_simulation.error = err; oo_.deterministic_simulation.errors = c/abs(err); - oo_.deterministic_simulation.iterations = options_.maxit_; + oo_.deterministic_simulation.iterations = options_.simul.maxit; end disp (['-----------------------------------------------------']) ; diff --git a/matlab/solve_one_boundary.m b/matlab/solve_one_boundary.m index 3e882557571ca4d677a8940c3959a7f335bffd7c..21227076a73c9e98b115813bc4da7e98e05372e7 100644 --- a/matlab/solve_one_boundary.m +++ b/matlab/solve_one_boundary.m @@ -192,9 +192,9 @@ for it_=start:incr:finish continue; else if(cutoff == 0) - fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_".\n',Block_Num, it_, iter); + fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit".\n',Block_Num, it_, iter); else - fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, it_, iter); + fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, it_, iter); end; if(is_dynamic) oo_.deterministic_simulation.status = 0; @@ -397,9 +397,9 @@ for it_=start:incr:finish end if cvg==0 if(cutoff == 0) - fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_\".\n',Block_Num, it_,iter); + fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit\".\n',Block_Num, it_,iter); else - fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, it_,iter); + fprintf('Error in simul: Convergence not achieved in block %d, at time %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, it_,iter); end; if(is_dynamic) oo_.deterministic_simulation.status = 0; diff --git a/matlab/solve_perfect_foresight_model.m b/matlab/solve_perfect_foresight_model.m index 1f4795b00f7c54d1dd2e2798fa754c7cf55ab6a8..4a6464089ea78a35fa8744e8a87c3fa7272a40df 100644 --- a/matlab/solve_perfect_foresight_model.m +++ b/matlab/solve_perfect_foresight_model.m @@ -96,7 +96,7 @@ function [flag,endo_simul,err] = solve_perfect_foresight_model(endo_simul,exo_si fprintf('\n') ; disp([' Total time of simulation :' num2str(etime(clock,h1))]) ; fprintf('\n') ; - disp(['WARNING : maximum number of iterations is reached (modify options_.maxit_).']) ; + disp(['WARNING : maximum number of iterations is reached (modify options_.simul.maxit).']) ; fprintf('\n') ; end flag = 1;% more iterations are needed. diff --git a/matlab/solve_two_boundaries.m b/matlab/solve_two_boundaries.m index 5e570687ffb50f091760f8bcbe7f9b7b625c0775..5883a8906556a0baa262dd0d5f3ebfb89f0f8c4b 100644 --- a/matlab/solve_two_boundaries.m +++ b/matlab/solve_two_boundaries.m @@ -133,9 +133,9 @@ while ~(cvg==1 || iter>maxit_), continue; else if(cutoff == 0) - fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.maxit_".\n',Block_Num, iter); + fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.simul.maxit".\n',Block_Num, iter); else - fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.maxit_" or set "cutoff=0" in model options.\n',Block_Num, iter); + fprintf('Error in simul: Convergence not achieved in block %d, after %d iterations.\n Increase "options_.simul.maxit" or set "cutoff=0" in model options.\n',Block_Num, iter); end; oo.deterministic_simulation.status = 0; oo.deterministic_simulation.error = max_res; diff --git a/mex/sources/bytecode/bytecode.cc b/mex/sources/bytecode/bytecode.cc index 018a384b5d8a6b2a3b840abe67ddc39a06d7d30c..0dd0eaf15ea88c061bcd0531fa33dd390151d79d 100644 --- a/mex/sources/bytecode/bytecode.cc +++ b/mex/sources/bytecode/bytecode.cc @@ -707,9 +707,9 @@ main(int nrhs, const char *prhs[]) DYN_MEX_FUNC_ERR_MSG_TXT("verbosity is not a field of options_"); if (verbose) print_it = true; - field = mxGetFieldNumber(options_, "maxit_"); + field = mxGetFieldNumber(options_, "simul.maxit");// Not sure of that... if (field < 0) - DYN_MEX_FUNC_ERR_MSG_TXT("maxit_ is not a field of options_"); + DYN_MEX_FUNC_ERR_MSG_TXT("simul.maxit is not a field of options_"); int maxit_ = int (floor(*(mxGetPr(mxGetFieldByNumber(options_, 0, field))))); field = mxGetFieldNumber(options_, "slowc"); if (field < 0) diff --git a/mex/sources/bytecode/testing/simulate_debug.m b/mex/sources/bytecode/testing/simulate_debug.m index 396a558e05db9605230f84e3885c959bdc6bc8db..9384eb7fe9daf8ea26986203162fec8cf1212fb0 100644 --- a/mex/sources/bytecode/testing/simulate_debug.m +++ b/mex/sources/bytecode/testing/simulate_debug.m @@ -4,7 +4,7 @@ fid = fopen([M_.fname '_options.txt'],'wt'); if steady_state~=1 fprintf(fid,'%d\n',options_.periods); end; -fprintf(fid,'%d\n',options_.maxit_); +fprintf(fid,'%d\n',options_.simul.maxit); fprintf(fid,'%6.20f\n',options_.slowc); fprintf(fid,'%6.20f\n',options_.markowitz); fprintf(fid,'%6.20f\n',options_.dynatol.f); diff --git a/preprocessor/DynamicModel.cc b/preprocessor/DynamicModel.cc index 52eabbede46659a2e60f61460d0670a4295b94a7..d19727fa4678ed89fee5dd8f47b22a9c9e13da70 100644 --- a/preprocessor/DynamicModel.cc +++ b/preprocessor/DynamicModel.cc @@ -1889,7 +1889,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri << " disp (['MODEL SIMULATION: (method=' mthd ')']) ;" << endl << " fprintf('\\n') ;" << endl << " periods=options_.periods;" << endl - << " maxit_=options_.maxit_;" << endl + << " maxit_=options_.simul.maxit;" << endl << " solve_tolf=options_.solve_tolf;" << endl << " y=oo_.endo_simul';" << endl << " x=oo_.exo_simul;" << endl; @@ -1988,7 +1988,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri mDynamicModelFile << " y = solve_one_boundary('" << dynamic_basename << "_" << block + 1 << "'" <<", y, x, params, steady_state, y_index, " << nze <<", options_.periods, " << blocks_linear[block] - <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n"; + <<", blck_num, y_kmin, options_.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n"; mDynamicModelFile << " tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n"; mDynamicModelFile << " if any(isnan(tmp) | isinf(tmp))\n"; mDynamicModelFile << " disp(['Inf or Nan value during the resolution of block " << block <<"']);\n"; @@ -2018,7 +2018,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri mDynamicModelFile << " y = solve_one_boundary('" << dynamic_basename << "_" << block + 1 << "'" <<", y, x, params, steady_state, y_index, " << nze <<", options_.periods, " << blocks_linear[block] - <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n"; + <<", blck_num, y_kmin, options.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo, 1, 1, 0);\n"; mDynamicModelFile << " tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n"; mDynamicModelFile << " if any(isnan(tmp) | isinf(tmp))\n"; mDynamicModelFile << " disp(['Inf or Nan value during the resolution of block " << block <<"']);\n"; @@ -2048,7 +2048,7 @@ DynamicModel::writeSparseDynamicMFile(const string &dynamic_basename, const stri <<", options_.periods, " << max_leadlag_block[block].first <<", " << max_leadlag_block[block].second <<", " << blocks_linear[block] - <<", blck_num, y_kmin, options_.maxit_, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo);\n"; + <<", blck_num, y_kmin, options_.simul.maxit, options_.solve_tolf, options_.slowc, " << cutoff << ", options_.stack_solve_algo);\n"; mDynamicModelFile << " tmp = y(:,M_.block_structure.block(" << block + 1 << ").variable);\n"; mDynamicModelFile << " if any(isnan(tmp) | isinf(tmp))\n"; mDynamicModelFile << " disp(['Inf or Nan value during the resolution of block " << block <<"']);\n"; diff --git a/tests/block_bytecode/ireland.mod b/tests/block_bytecode/ireland.mod index b36f2452cc6bafca3b8c5b0f35c25cbc45521bb6..9404fc11782193a708ab54890a0f8abe85620679 100644 --- a/tests/block_bytecode/ireland.mod +++ b/tests/block_bytecode/ireland.mod @@ -60,7 +60,7 @@ k=k+0.000001; end; options_.dynatol.f=1e-12; -options_.maxit_=5; +options_.simul.maxit=5; options_.slowc=1; steady(solve_algo=2); @@ -72,7 +72,7 @@ periods 1; values 0.02; end; -options_.maxit_=20; +options_.simul.maxit=20; model_info; simul(periods=2000, stack_solve_algo = 0); diff --git a/tests/block_bytecode/ls2003.mod b/tests/block_bytecode/ls2003.mod index e756932cbb1a2316f3bca0ca6e4600dd0f3e89aa..f4fbe7b582a2a006480e5de0d64d978edf8110c7 100644 --- a/tests/block_bytecode/ls2003.mod +++ b/tests/block_bytecode/ls2003.mod @@ -63,7 +63,7 @@ var e_ys = 1.89; var e_pies = 1.89; end; -options_.maxit_=100; +options_.simul.maxit=100; steady(solve_algo = @{solve_algo}); @#if block diff --git a/tests/ep/burnside.mod b/tests/ep/burnside.mod index f6f1fb14d099f247421e39e9e3b237692f6ef74e..0bad36d87bcdca847b8e568f9f2d554f8713930d 100644 --- a/tests/ep/burnside.mod +++ b/tests/ep/burnside.mod @@ -43,7 +43,7 @@ set_dynare_seed('default'); stoch_simul(order=2,pruning,irf=0,periods=5000); y_perturbation_2_pruning = oo_.endo_simul(1,:)'; -options_.maxit_ = 100; +options_.simul.maxit = 100; options_.ep.verbosity = 0; options_.ep.stochastic.order = 0; options_.ep.stochastic.nodes = 2; diff --git a/tests/ep/linear.mod b/tests/ep/linear.mod index afc64ca4c38570d98e9ff07e604ed59d9d3f0d15..5cf8a7a310938d6cf45467d5a6520d2724670899 100644 --- a/tests/ep/linear.mod +++ b/tests/ep/linear.mod @@ -26,7 +26,7 @@ end; steady; -options_.maxit_ = 100; +options_.simul.maxit = 100; options_.ep.verbosity = 0; options_.ep.stochastic.status = 0; options_.ep.order = 0; @@ -42,4 +42,4 @@ sts = extended_path([],100); if max(max(abs(ts-sts))) > 1e-12 error('extended path algorithm fails in ./tests/ep/linear.mod') -end \ No newline at end of file +end diff --git a/tests/ep/rbcii.mod b/tests/ep/rbcii.mod index 881ab03577a1245ddd922daafd0f3b8ec21c7533..02c7cb712f5812f1e7d7237223719ee02dc37682 100644 --- a/tests/ep/rbcii.mod +++ b/tests/ep/rbcii.mod @@ -68,7 +68,7 @@ copyfile('rbcii_steady_state.m','rbcii_steadystate2.m'); steady(nocheck); - options_.maxit_ = 100; + options_.simul.maxit = 100; options_.ep.verbosity = 0; options_.ep.stochastic.order = 0; options_.ep.stochastic.nodes = 2; @@ -91,7 +91,7 @@ copyfile('rbcii_steady_state.m','rbcii_steadystate2.m'); steady;//(nocheck); - options_.maxit_ = 100; + options_.simul.maxit = 100; simul(periods=4000);