diff --git a/doc/dynare.texi b/doc/dynare.texi
index 4b5ffbb6a..3ce0fb5f8 100644
--- a/doc/dynare.texi
+++ b/doc/dynare.texi
@@ -743,6 +743,13 @@ Activate console mode. In addition to the behavior of
@code{nodisplay}, Dynare will not use graphical waitbars for long
computations.
+@item nograph
+Activate the @code{nograph} option (@xref{nograph}), so that Dynare will not produce any
+graph
+
+@item nointeractive
+Instructs Dynare to not request user input
+
@item cygwin
Tells Dynare that your MATLAB is configured for compiling MEX files with
Cygwin (@pxref{Software requirements}). This option is only available
diff --git a/matlab/CutSample.m b/matlab/CutSample.m
index 5a3e94019..e0a2b16ec 100644
--- a/matlab/CutSample.m
+++ b/matlab/CutSample.m
@@ -67,4 +67,4 @@ fprintf('MH: Total number of generated MH files: %d.\n',TotalNumberOfMhFiles);
fprintf('MH: I''ll use mh-files %d to %d.\n',FirstMhFile,TotalNumberOfMhFiles);
fprintf('MH: In MH-file number %d I''ll start at line %d.\n',FirstMhFile,FirstLine);
fprintf('MH: Finally I keep %d draws.\n',TotalNumberOfMhDraws-FirstDraw);
-disp(' ');
+skipline()
diff --git a/matlab/GetPosteriorParametersStatistics.m b/matlab/GetPosteriorParametersStatistics.m
index cb6ba4219..04ca6c86c 100644
--- a/matlab/GetPosteriorParametersStatistics.m
+++ b/matlab/GetPosteriorParametersStatistics.m
@@ -62,7 +62,10 @@ header_width = row_header_width(M_,estim_params_,bayestopt_);
tit2 = sprintf('%-*s %10s %10s %16s %6s %10s\n',header_width+2,' ','prior mean','post. mean','conf. interval','prior','pstdev');
pformat = '%-*s %10.3f %10.4f %10.4f %8.4f %6s %10.4f';
-disp(' ');disp(' ');disp('ESTIMATION RESULTS');disp(' ');
+skipline(2)
+disp('ESTIMATION RESULTS')
+skipline()
+
try
disp(sprintf('Log data density is %f.',oo_.MarginalDensity.ModifiedHarmonicMean))
catch
@@ -74,7 +77,7 @@ if np
if TeX
fid = TeXBegin(OutputDirectoryName,M_.fname,1,type);
end
- disp(' ')
+ skipline()
disp(type)
disp(tit2)
ip = nvx+nvn+ncx+ncn+1;
@@ -120,7 +123,7 @@ if nvx
fid = TeXBegin(OutputDirectoryName,M_.fname,2,'standard deviation of structural shocks');
end
ip = 1;
- disp(' ')
+ skipline()
disp('standard deviation of shocks')
disp(tit2)
for i=1:nvx
@@ -165,7 +168,7 @@ if nvn
if TeX
fid = TeXBegin(OutputDirectoryName,M_.fname,3,'standard deviation of measurement errors');
end
- disp(' ')
+ skipline()
disp('standard deviation of measurement errors')
disp(tit2)
ip = nvx+1;
@@ -207,7 +210,7 @@ if ncx
if TeX
fid = TeXBegin(OutputDirectoryName,M_.fname,4,'correlation of structural shocks');
end
- disp(' ')
+ skipline()
disp('correlation of shocks')
disp(tit2)
ip = nvx+nvn+1;
@@ -261,7 +264,7 @@ if ncn
if TeX
fid = TeXBegin(OutputDirectoryName,M_.fname,5,'correlation of measurement errors');
end
- disp(' ')
+ skipline()
disp('correlation of measurement errors')
disp(tit2)
ip = nvx+nvn+ncx+1;
diff --git a/matlab/McMCDiagnostics.m b/matlab/McMCDiagnostics.m
index 7e9023eb2..d4a26cb8c 100644
--- a/matlab/McMCDiagnostics.m
+++ b/matlab/McMCDiagnostics.m
@@ -131,7 +131,7 @@ else
end
UDIAG(:,[2 4 6],:) = UDIAG(:,[2 4 6],:)/nblck;
-disp(' ')
+skipline()
clear pmet temp moyenne CSUP CINF csup cinf n linea iter tmp;
pages = floor(npar/3);
k = 0;
diff --git a/matlab/bvar_density.m b/matlab/bvar_density.m
index 6d58fad4b..665a9dae5 100644
--- a/matlab/bvar_density.m
+++ b/matlab/bvar_density.m
@@ -39,10 +39,10 @@ for nlags = 1:maxnlags
log_dnsty = posterior_int - prior_int - 0.5*ny*lik_nobs*log(2*pi);
- disp(' ')
+ skipline()
fprintf('The marginal log density of the BVAR(%g) model is equal to %10.4f\n', ...
nlags, log_dnsty);
- disp(' ')
+ skipline()
end
diff --git a/matlab/bvar_forecast.m b/matlab/bvar_forecast.m
index 3ee4aad95..03100c053 100644
--- a/matlab/bvar_forecast.m
+++ b/matlab/bvar_forecast.m
@@ -94,10 +94,10 @@ while d <= options_.bvar_replic
end
if p > 0
- disp(' ')
+ skipline()
disp(['Some of the VAR models sampled from the posterior distribution'])
disp(['were found to be explosive (' num2str(p/options_.bvar_replic) ' percent).'])
- disp(' ')
+ skipline()
end
% Plot graphs
diff --git a/matlab/bvar_irf.m b/matlab/bvar_irf.m
index b46799f6a..d742915d7 100644
--- a/matlab/bvar_irf.m
+++ b/matlab/bvar_irf.m
@@ -92,10 +92,10 @@ for draw=1:options_.bvar_replic
end
if p > 0
- disp(' ')
+ skipline()
disp(['Some of the VAR models sampled from the posterior distribution'])
disp(['were found to be explosive (' int2str(p) ' samples).'])
- disp(' ')
+ skipline()
end
posterior_mean_irfs = mean(sampled_irfs,4);
diff --git a/matlab/check.m b/matlab/check.m
index 8c7ad94ff..a2afc7b9f 100644
--- a/matlab/check.m
+++ b/matlab/check.m
@@ -96,18 +96,18 @@ if (nyf == n_explod) && (dr.full_rank)
end
if options.noprint == 0
- disp(' ')
+ skipline()
disp('EIGENVALUES:')
disp(sprintf('%16s %16s %16s\n','Modulus','Real','Imaginary'))
z=[m_lambda real(eigenvalues_(i)) imag(eigenvalues_(i))]';
disp(sprintf('%16.4g %16.4g %16.4g\n',z))
disp(sprintf('\nThere are %d eigenvalue(s) larger than 1 in modulus ', n_explod));
disp(sprintf('for %d forward-looking variable(s)',nyf));
- disp(' ')
+ skipline()
if result
disp('The rank condition is verified.')
else
disp('The rank conditions ISN''T verified!')
end
- disp(' ')
+ skipline()
end
diff --git a/matlab/check_list_of_variables.m b/matlab/check_list_of_variables.m
index 4b1b69384..415e8759e 100644
--- a/matlab/check_list_of_variables.m
+++ b/matlab/check_list_of_variables.m
@@ -45,9 +45,9 @@ if options_.dsge_var && options_.bayesian_irf
msg = 1;
end
if msg
- disp(' ')
+ skipline()
disp('Posterior IRFs will be computed for all observed variables.')
- disp(' ')
+ skipline()
end
end
varlist = options_.varobs;
@@ -55,7 +55,7 @@ if options_.dsge_var && options_.bayesian_irf
end
if isempty(varlist)
- disp(' ')
+ skipline()
disp(['You did not declare endogenous variables after the estimation/calib_smoother command.'])
cas = [];
if options_.bayesian_irf
@@ -93,37 +93,41 @@ if isempty(varlist)
string = [ cas , ' will be computed for the ' num2str(M_.endo_nbr) ' endogenous variables'];
string = [ string ' of your model, this can be very long....'];
format_text(string, 10)
- choice = [];
- while isempty(choice)
- disp(' ')
- disp(' ')
- disp('Choose one of the following options:')
- disp(' ')
- disp(' [1] Consider all the endogenous variables.')
- disp(' [2] Consider all the observed endogenous variables.')
- disp(' [3] Stop Dynare and change the mod file.')
- disp(' ')
- choice = input('options [default is 1] = ');
- if isempty(choice)
- choice=1;
- end
- if choice==1
- varlist = M_.endo_names(1:M_.orig_endo_nbr, :);
- elseif choice==2
- varlist = options_.varobs;
- elseif choice==3
- varlist = NaN;
- else
- disp('')
- disp('YOU HAVE TO ANSWER 1, 2 or 3!')
- disp('')
+ if options_.nointeractive
+ % Default behaviour is to consider all the endogenous variables.
+ varlist = M_.endo_names(1:M_.orig_endo_nbr, :);
+ else
+ choice = [];
+ while isempty(choice)
+ skipline(2)
+ disp('Choose one of the following options:')
+ skipline()
+ disp(' [1] Consider all the endogenous variables.')
+ disp(' [2] Consider all the observed endogenous variables.')
+ disp(' [3] Stop Dynare and change the mod file.')
+ skipline()
+ choice = input('options [default is 1] = ');
+ if isempty(choice)
+ choice=1;
+ end
+ if choice==1
+ varlist = M_.endo_names(1:M_.orig_endo_nbr, :);
+ elseif choice==2
+ varlist = options_.varobs;
+ elseif choice==3
+ varlist = NaN;
+ else
+ skipline()
+ disp('YOU HAVE TO ANSWER 1, 2 or 3!')
+ skipline()
+ end
end
end
end
if isnan(varlist)
edit([M_.fname '.mod'])
end
- disp('')
+ skipline()
end
diff --git a/matlab/disp_identification.m b/matlab/disp_identification.m
index 0badae976..5bdb3e8e5 100644
--- a/matlab/disp_identification.m
+++ b/matlab/disp_identification.m
@@ -91,7 +91,7 @@ if any(idemodel.ino),
else
disp(['The rank of H (model) is deficient!' ]),
end
- disp(' ')
+ skipline()
for j=1:npar,
if any(idemodel.ind0(:,j)==0),
pno = 100*length(find(idemodel.ind0(:,j)==0))/SampleSize;
@@ -106,7 +106,7 @@ if any(idemodel.ino),
npairs=size(idemodel.jweak_pair,2);
jmap_pair=dyn_unvech(1:npairs);
jstore=[];
- disp(' ')
+ skipline()
for j=1:npairs,
iweak = length(find(idemodel.jweak_pair(:,j)));
if iweak,
@@ -120,7 +120,7 @@ if any(idemodel.ino),
end
end
- disp(' ')
+ skipline()
for j=1:npar,
iweak = length(find(idemodel.jweak(:,j)));
if iweak && ~ismember(j,jstore),
@@ -154,11 +154,11 @@ end
if ~any(idemodel.ino) && ~any(any(idemodel.ind0==0))
disp(['All parameters are identified in the model (rank of H).' ]),
- disp(' ')
+ skipline()
end
if any(idemoments.ino),
- disp(' ')
+ skipline()
disp('WARNING !!!')
if SampleSize > 1,
disp(['The rank of J (moments) is deficient for ', num2str(length(find(idemoments.ino))),' out of ',int2str(SampleSize),' MC runs!' ]),
@@ -172,7 +172,7 @@ if any(idemoments.ino),
% freqno = mean(indno)*100;
% ifreq=find(freqno);
% disp('MOMENT RANK FAILURE DUE TO COLLINEARITY OF PARAMETERS:');
- disp(' ')
+ skipline()
for j=1:npar,
if any(idemoments.ind0(:,j)==0),
pno = 100*length(find(idemoments.ind0(:,j)==0))/SampleSize;
@@ -184,7 +184,7 @@ if any(idemoments.ino),
disp([' [dJ/d(',name{j},')=0 for all J moments!]' ])
end
end
- disp(' ')
+ skipline()
npairs=size(idemoments.jweak_pair,2);
jmap_pair=dyn_unvech(1:npairs);
jstore=[];
@@ -201,7 +201,7 @@ if any(idemoments.ino),
end
end
- disp(' ')
+ skipline()
for j=1:npar,
iweak = length(find(idemoments.jweak(:,j)));
if iweak && ~ismember(j,jstore),
@@ -235,9 +235,9 @@ if any(idemoments.ino),
% end
end
if ~any(idemoments.ino) && ~any(any(idemoments.ind0==0))
- disp(' ')
+ skipline()
disp(['All parameters are identified by J moments (rank of J)' ]),
- disp(' ')
+ skipline()
end
% if ~ options_.noprint && advanced,
@@ -267,7 +267,7 @@ end
% identificaton patterns
if SampleSize==1 && advanced,
- disp(' ')
+ skipline()
disp('Press ENTER to print advanced diagnostics'), pause(5),
for j=1:size(idemoments.cosnJ,2),
pax=NaN(npar,npar);
diff --git a/matlab/disp_model_summary.m b/matlab/disp_model_summary.m
index 57b170602..8bd5d2b0e 100644
--- a/matlab/disp_model_summary.m
+++ b/matlab/disp_model_summary.m
@@ -24,9 +24,9 @@ function disp_model_summary(M,dr)
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see .
-disp(' ')
+skipline()
disp('MODEL SUMMARY')
-disp(' ')
+skipline()
disp([' Number of variables: ' int2str(M.endo_nbr)])
disp([' Number of stochastic shocks: ' int2str(M.exo_nbr)])
disp([' Number of state variables: ' ...
diff --git a/matlab/disp_steady_state.m b/matlab/disp_steady_state.m
index b8eecd35a..354b0f6a4 100644
--- a/matlab/disp_steady_state.m
+++ b/matlab/disp_steady_state.m
@@ -29,9 +29,9 @@ function disp_steady_state(M,oo)
% You should have received a copy of the GNU General Public License
% along with Dynare. If not, see .
-disp(' ')
+skipline()
disp('STEADY-STATE RESULTS:')
-disp(' ')
+skipline()
endo_names = M.endo_names;
steady_state = oo.steady_state;
for i=1:M.orig_endo_nbr
diff --git a/matlab/disp_th_moments.m b/matlab/disp_th_moments.m
index 6db80e839..d1a4876a2 100644
--- a/matlab/disp_th_moments.m
+++ b/matlab/disp_th_moments.m
@@ -64,7 +64,7 @@ if ~options_.noprint %options_.nomoments == 0
lh = size(labels,2)+2;
dyntable(title,headers,labels,z,lh,11,4);
if M_.exo_nbr > 1 && size(stationary_vars, 1) > 0
- disp(' ')
+ skipline()
if options_.order == 2
title='APPROXIMATED VARIANCE DECOMPOSITION (in percent)';
else
@@ -91,16 +91,16 @@ if ~options_.noprint %options_.nomoments == 0
end
if length(i1) == 0
- disp(' ')
+ skipline()
disp('All endogenous are constant or non stationary, not displaying correlations and auto-correlations')
- disp(' ')
- return;
+ skipline()
+ return
end
if options_.nocorr == 0 && size(stationary_vars, 1) > 0
corr = oo_.gamma_y{1}(i1,i1)./(sd(i1)*sd(i1)');
if ~options_.noprint,
- disp(' ')
+ skipline()
if options_.order == 2
title='APPROXIMATED MATRIX OF CORRELATIONS';
else
@@ -122,7 +122,7 @@ if options_.ar > 0 && size(stationary_vars, 1) > 0
z(:,i) = diag(oo_.gamma_y{i+1}(i1,i1));
end
if ~options_.noprint,
- disp(' ')
+ skipline()
if options_.order == 2
title='APPROXIMATED COEFFICIENTS OF AUTOCORRELATION';
else
diff --git a/matlab/display_conditional_variance_decomposition.m b/matlab/display_conditional_variance_decomposition.m
index d0b2e6536..7ce71478c 100644
--- a/matlab/display_conditional_variance_decomposition.m
+++ b/matlab/display_conditional_variance_decomposition.m
@@ -50,10 +50,10 @@ conditional_decomposition_array = conditional_variance_decomposition(StateSpaceM
if options_.noprint == 0
if options_.order == 2
- disp(' ')
+ skipline()
disp('APPROXIMATED CONDITIONAL VARIANCE DECOMPOSITION (in percent)')
else
- disp(' ')
+ skipline()
disp('CONDITIONAL VARIANCE DECOMPOSITION (in percent)')
end
end
diff --git a/matlab/display_estimation_results_table.m b/matlab/display_estimation_results_table.m
index 8ae45c01f..1cfcd9d3f 100644
--- a/matlab/display_estimation_results_table.m
+++ b/matlab/display_estimation_results_table.m
@@ -44,7 +44,7 @@ ncn = estim_params_.ncn; % Covariance of the measurement innovations (number of
np = estim_params_.np ; % Number of deep parameters.
nx = nvx+nvn+ncx+ncn+np; % Total number of parameters to be estimated.
-disp(' ')
+skipline()
disp(['RESULTS FROM ' upper(table_title) ' ESTIMATION'])
LaTeXtitle=strrep(table_title,' ','_');
tstath = abs(xparam1)./stdh;
@@ -76,7 +76,7 @@ if np
eval(['oo_.' field_name '_std.parameters.' name ' = stdh(ip);']);
ip = ip+1;
end
- disp(' ')
+ skipline()
end
if nvx
ip = 1;
@@ -98,7 +98,7 @@ if nvx
eval(['oo_.' field_name '_std.shocks_std.' name ' = stdh(ip);']);
ip = ip+1;
end
- disp(' ')
+ skipline()
end
if nvn
disp('standard deviation of measurement errors')
@@ -119,7 +119,7 @@ if nvx
eval(['oo_.' field_name '_std.measurement_errors_std.' name ' = stdh(ip);']);
ip = ip+1;
end
- disp(' ')
+ skipline()
end
if ncx
@@ -144,7 +144,7 @@ if ncx
eval(['oo_.' field_name '_std.shocks_corr.' NAME ' = stdh(ip);']);
ip = ip+1;
end
- disp(' ')
+ skipline()
end
if ncn
@@ -167,7 +167,7 @@ if ncn
eval(['oo_.' field_name '_std.measurement_errors_corr.' NAME ' = stdh(ip);']);
ip = ip+1;
end
- disp(' ')
+ skipline()
end
OutputDirectoryName = CheckPath('Output',M_.dname);
diff --git a/matlab/dyn_risky_steadystate_solver.m b/matlab/dyn_risky_steadystate_solver.m
index 114e2c1b0..5557c98ad 100644
--- a/matlab/dyn_risky_steadystate_solver.m
+++ b/matlab/dyn_risky_steadystate_solver.m
@@ -182,7 +182,7 @@ function [resid,dr] = risky_residuals(ys,pm,M,dr,options,oo)
pm = model_structure(M,options);
[dr,info] = dyn_first_order_solver(d1,M,dr,options,0);
if info
- print_info();
+ print_info(info,options.noprint,options);
end
dr = dyn_second_order_solver(d1,d2,dr,M,...
options.threads.kronecker.A_times_B_kronecker_C,...
diff --git a/matlab/dynare.m b/matlab/dynare.m
index fb6800c74..06d81f699 100644
--- a/matlab/dynare.m
+++ b/matlab/dynare.m
@@ -34,11 +34,11 @@ function dynare(fname, varargin)
% along with Dynare. If not, see .
if strcmpi(fname,'help')
- disp(' ')
+ skipline()
disp(['This is dynare version ' dynare_version() '.'])
- disp(' ')
+ skipline()
disp('USAGE: dynare FILENAME[.mod,.dyn] [OPTIONS]')
- disp(' ')
+ skipline()
disp('dynare executes instruction included in FILENAME.mod.')
disp('See the reference manual for the available options.')
return
diff --git a/matlab/dynare_config.m b/matlab/dynare_config.m
index 473b9e1fa..2cd7b7487 100644
--- a/matlab/dynare_config.m
+++ b/matlab/dynare_config.m
@@ -220,7 +220,7 @@ end
%% Test if valid mex files are available, if a mex file is not available
%% a matlab version of the routine is included in the path.
if verbose
- disp(' ')
+ skipline()
disp('Configuring Dynare ...')
end
@@ -285,7 +285,7 @@ else
end
if verbose
disp([ message 'Markov Switching SBVAR.' ])
- disp(' ')
+ skipline()
end
cd(origin);
diff --git a/matlab/dynare_estimation_1.m b/matlab/dynare_estimation_1.m
index b0e14d585..01ad20056 100644
--- a/matlab/dynare_estimation_1.m
+++ b/matlab/dynare_estimation_1.m
@@ -34,9 +34,31 @@ global M_ options_ oo_ estim_params_ bayestopt_ dataset_
% Set particle filter flag.
if options_.order > 1
if options_.particle.status && options_.order==2
- disp(' ')
+ skipline()
disp('Estimation using a non linear filter!')
- disp(' ')
+ skipline()
+ if ~options_.nointeractive && ismember(options_.mode_compute,[1,3,4]) % Known gradient-based optimizers
+ disp('You are using a gradient-based mode-finder. Particle filtering introduces discontinuities in the')
+ disp('objective function w.r.t the parameters. Thus, should use a non-gradient based optimizer.')
+ fprintf('\nPlease choose a mode-finder:\n')
+ fprintf('\t 0 - Continue using gradient-based method (it is most likely that you will no get any sensible result).\n')
+ fprintf('\t 6 - Monte Carlo based algorithm\n')
+ fprintf('\t 7 - Nelder-Mead simplex based optimization routine (Matlab optimization toolbox required)\n')
+ fprintf('\t 8 - Nelder-Mead simplex based optimization routine (Dynare''s implementation)\n')
+ fprintf('\t 9 - CMA-ES (Covariance Matrix Adaptation Evolution Strategy) algorithm\n')
+ choice = [];
+ while isempty(choice)
+ choice = input('Please enter your choice: ');
+ if isnumeric(choice) && isint(choice) && ismember(choice,[0 6 7 8 9])
+ if choice
+ options_.mode_compute = choice;
+ end
+ else
+ fprintf('\nThis is an invalid choice (you have to choose between 0, 6, 7, 8 and 9).\n')
+ choice = [];
+ end
+ end
+ end
elseif options_.particle.status && options_.order>2
error(['Non linear filter are not implemented with order ' int2str(options_.order) ' approximation of the model!'])
elseif ~options_.particle.status && options_.order==2
@@ -335,7 +357,7 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
fval = feval(objective_function,xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
options_.mh_jscale = Scale;
mouvement = max(max(abs(PostVar-OldPostVar)));
- disp(' ')
+ skipline()
disp('========================================================== ')
disp([' Change in the covariance matrix = ' num2str(mouvement) '.'])
disp([' Mode improvement = ' num2str(abs(OldMode-fval))])
@@ -356,7 +378,7 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
options_.mh_jscale = Scale;
mouvement = max(max(abs(PostVar-OldPostVar)));
fval = feval(objective_function,xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
- disp(' ')
+ skipline()
disp('========================================================== ')
disp([' Change in the covariance matrix = ' num2str(mouvement) '.'])
disp([' Mode improvement = ' num2str(abs(OldMode-fval))])
@@ -369,11 +391,11 @@ if ~isequal(options_.mode_compute,0) && ~options_.mh_posterior_mode_estimation
save([M_.fname '_optimal_mh_scale_parameter.mat'],'Scale');
bayestopt_.jscale = ones(length(xparam1),1)*Scale;
end
- disp(' ')
+ skipline()
disp(['Optimal value of the scale parameter = ' num2str(Scale)])
- disp(' ')
+ skipline()
disp(['Final value of the log posterior (or likelihood): ' num2str(fval)])
- disp(' ')
+ skipline()
parameter_names = bayestopt_.name;
save([M_.fname '_mode.mat'],'xparam1','hh','parameter_names');
case 7
@@ -485,7 +507,7 @@ if ~options_.mh_posterior_mode_estimation && options_.cova_compute
try
chol(hh);
catch
- disp(' ')
+ skipline()
disp('POSTERIOR KERNEL OPTIMIZATION PROBLEM!')
disp(' (minus) the hessian matrix at the "mode" is not positive definite!')
disp('=> posterior variance of the estimated parameters are not positive.')
@@ -534,9 +556,9 @@ if any(bayestopt_.pshape > 0) && ~options_.mh_posterior_mode_estimation
log_det_invhess = -estim_params_nbr*log(scale_factor)+log(det(scale_factor*invhess));
likelihood = feval(objective_function,xparam1,dataset_,options_,M_,estim_params_,bayestopt_,oo_);
oo_.MarginalDensity.LaplaceApproximation = .5*estim_params_nbr*log(2*pi) + .5*log_det_invhess - likelihood;
- disp(' ')
+ skipline()
disp(sprintf('Log data density [Laplace approximation] is %f.',oo_.MarginalDensity.LaplaceApproximation))
- disp(' ')
+ skipline()
end
elseif ~any(bayestopt_.pshape > 0) && ~options_.mh_posterior_mode_estimation
oo_=display_estimation_results_table(xparam1,stdh,M_,options_,estim_params_,bayestopt_,oo_,pnames,'Maximum Likelihood','mle');
diff --git a/matlab/dynare_estimation_init.m b/matlab/dynare_estimation_init.m
index e99b73bb6..9626306e7 100644
--- a/matlab/dynare_estimation_init.m
+++ b/matlab/dynare_estimation_init.m
@@ -53,7 +53,7 @@ for i = 1:size(M_.endo_names,1)
tmp = strmatch(deblank(M_.endo_names(i,:)),options_.varobs,'exact');
if ~isempty(tmp)
if length(tmp)>1
- disp(' ')
+ skipline()
error(['Multiple declarations of ' deblank(M_.endo_names(i,:)) ' as an observed variable is not allowed!'])
end
options_.lgyidx2varobs(i) = tmp;
diff --git a/matlab/dynare_identification.m b/matlab/dynare_identification.m
index 47d6133fa..0f22ad9e2 100644
--- a/matlab/dynare_identification.m
+++ b/matlab/dynare_identification.m
@@ -213,9 +213,9 @@ options_ident.max_dim_cova_group = min([options_ident.max_dim_cova_group,nparam-
MaxNumberOfBytes=options_.MaxNumberOfBytes;
store_options_ident = options_ident;
-disp(' ')
+skipline()
disp(['==== Identification analysis ====' ]),
-disp(' ')
+skipline()
if iload <=0,
@@ -272,11 +272,11 @@ if iload <=0,
[idehess_point, idemoments_point, idemodel_point, idelre_point, derivatives_info_point, info] = ...
identification_analysis(params,indx,indexo,options_ident,dataset_, prior_exist, name_tex,1);
if info(1)~=0,
- disp(' ')
+ skipline()
disp('----------- ')
disp('Parameter error:')
disp(['The model does not solve for ', parameters, ' with error code info = ', int2str(info(1))]),
- disp(' ')
+ skipline()
if info(1)==1,
disp('info==1 %! The model doesn''t determine the current variables uniquely.')
elseif info(1)==2,
@@ -305,7 +305,7 @@ if iload <=0,
disp('info==30 %! Ergodic variance can''t be computed. ')
end
disp('----------- ')
- disp(' ')
+ skipline()
if any(bayestopt_.pshape)
disp('Try sampling up to 50 parameter sets from the prior.')
kk=0;
@@ -317,15 +317,15 @@ if iload <=0,
end
end
if info(1)
- disp(' ')
+ skipline()
disp('----------- ')
disp('Identification stopped:')
if any(bayestopt_.pshape)
disp('The model did not solve for any of 50 attempts of random samples from the prior')
end
disp('----------- ')
- disp(' ')
- return,
+ skipline()
+ return
end
else
idehess_point.params=params;
@@ -343,7 +343,7 @@ if iload <=0,
end
if SampleSize > 1,
- disp(' ')
+ skipline()
disp('Monte Carlo Testing')
h = dyn_waitbar(0,'Monte Carlo identification checks ...');
iteration = 0;
@@ -587,7 +587,6 @@ else
warning on,
end
-disp(' ')
+skipline()
disp(['==== Identification analysis completed ====' ]),
-disp(' ')
-disp(' ')
+skipline(2)
diff --git a/matlab/dynare_sensitivity.m b/matlab/dynare_sensitivity.m
index 719cbf02b..14df1e83b 100644
--- a/matlab/dynare_sensitivity.m
+++ b/matlab/dynare_sensitivity.m
@@ -215,7 +215,7 @@ if (options_gsa.load_stab || options_gsa.load_rmse || options_gsa.load_redform)
any(bayestopt_.p4(~isnan(bayestopt_.p4))~=bkpprior.p4(~isnan(bkpprior.p4))),
disp('WARNING!')
disp('The saved sample has different priors w.r.t. to current ones!!')
- disp('')
+ skipline()
disp('Press ENTER to continue')
pause;
end
@@ -226,7 +226,7 @@ end
if options_gsa.stab && ~options_gsa.ppost,
x0 = stab_map_(OutputDirectoryName,options_gsa);
if isempty(x0),
- disp(' ')
+ skipline()
disp('Sensitivity computations stopped: no parameter set provided a unique solution')
return
end
diff --git a/matlab/evaluate_planner_objective.m b/matlab/evaluate_planner_objective.m
index e0a7fb747..3067414af 100644
--- a/matlab/evaluate_planner_objective.m
+++ b/matlab/evaluate_planner_objective.m
@@ -137,11 +137,11 @@ if options.ramsey_policy
end
if ~options.noprint
- disp(' ')
+ skipline()
disp('Approximated value of planner objective function')
disp([' - with initial Lagrange multipliers set to 0: ' ...
num2str(planner_objective_value(2)) ])
disp([' - with initial Lagrange multipliers set to steady state: ' ...
num2str(planner_objective_value(1)) ])
- disp(' ')
+ skipline()
end
diff --git a/matlab/forcst_unc.m b/matlab/forcst_unc.m
index a402837da..139b09f91 100644
--- a/matlab/forcst_unc.m
+++ b/matlab/forcst_unc.m
@@ -91,13 +91,11 @@ end
oo_.forecast.accept_rate = (replic-m1)/replic;
if options_.noprint == 0 && m1 < replic
- disp(' ')
- disp(' ')
+ skipline(2)
disp('FORECASTING WITH PARAMETER UNCERTAINTY:')
disp(sprintf(['The model couldn''t be solved for %f%% of the parameter' ...
' values'],100*oo_.forecast.accept_rate))
- disp(' ')
- disp(' ')
+ skipline(2)
end
% compute moments
diff --git a/matlab/get_prior_info.m b/matlab/get_prior_info.m
index c8bd8fddd..cbae72ed1 100644
--- a/matlab/get_prior_info.m
+++ b/matlab/get_prior_info.m
@@ -167,18 +167,17 @@ if info==2% Prior optimization.
bayestopt_.p3, ...
bayestopt_.p4,options_,M_,estim_params_,oo_);
% Display the results.
- disp(' ')
- disp(' ')
+ skipline(2)
disp('------------------')
disp('PRIOR OPTIMIZATION')
disp('------------------')
- disp(' ')
+ skipline()
for i = 1:length(xparams)
disp(['deep parameter ' int2str(i) ': ' get_the_name(i,0,M_,estim_params_,options_) '.'])
disp([' Initial condition ....... ' num2str(xinit(i)) '.'])
disp([' Prior mode .............. ' num2str(bayestopt_.p5(i)) '.'])
disp([' Optimized prior mode .... ' num2str(xparams(i)) '.'])
- disp(' ')
+ skipline()
end
end
diff --git a/matlab/global_initialization.m b/matlab/global_initialization.m
index 3b497efb2..dae49c300 100644
--- a/matlab/global_initialization.m
+++ b/matlab/global_initialization.m
@@ -107,6 +107,9 @@ gmhmaxlik.nclimb = 200000;
gmhmaxlik.nscale = 200000;
options_.gmhmaxlik = gmhmaxlik;
+% Request user input.
+options_.nointeractive = 0;
+
% Graphics
options_.graphics.nrows = 3;
options_.graphics.ncols = 3;
diff --git a/matlab/gsa/Morris_Measure_Groups.m b/matlab/gsa/Morris_Measure_Groups.m
index a807b8085..5b6c30720 100644
--- a/matlab/gsa/Morris_Measure_Groups.m
+++ b/matlab/gsa/Morris_Measure_Groups.m
@@ -40,7 +40,7 @@ function [SAmeas, OutMatrix] = Morris_Measure_Groups(NumFact, Sample, Output, p,
% along with Dynare. If not, see .
if nargin==0,
- disp(' ')
+ skipline()
disp('[SAmeas, OutMatrix] = Morris_Measure_Groups(NumFact, Sample, Output, p, Group);')
return
end
diff --git a/matlab/gsa/filt_mc_.m b/matlab/gsa/filt_mc_.m
index 5ced8be59..53bf376db 100644
--- a/matlab/gsa/filt_mc_.m
+++ b/matlab/gsa/filt_mc_.m
@@ -50,11 +50,10 @@ fname_ = M_.fname;
lgy_ = M_.endo_names;
dr_ = oo_.dr;
-disp(' ')
-disp(' ')
+skipline(2)
disp('Starting sensitivity analysis')
disp('for the fit of EACH observed series ...')
-disp(' ')
+skipline()
disp('Deleting old SA figures...')
a=dir([OutDir,filesep,'*.*']);
tmp1='0';
@@ -149,7 +148,7 @@ if ~loadSA,
nruns=size(x,1);
nfilt=floor(pfilt*nruns);
if options_.opt_gsa.ppost || (options_.opt_gsa.ppost==0 && options_.opt_gsa.lik_only==0)
- disp(' ')
+ skipline()
disp('Computing RMSE''s...')
fobs = options_.first_obs;
nobs=options_.nobs;
@@ -408,7 +407,7 @@ else
end
param_names=param_names(2:end,:);
- disp(' ')
+ skipline()
disp('RMSE over the MC sample:')
disp(' min yr RMSE max yr RMSE')
for j=1:size(vvarvecm,1),
@@ -416,8 +415,7 @@ else
end
invar = find( std(rmse_MC)./mean(rmse_MC)<=0.0001 );
if ~isempty(invar)
- disp(' ')
- disp(' ')
+ skipline(2)
disp('RMSE is not varying significantly over the MC sample for the following variables:')
disp(vvarvecm(invar,:))
disp('These variables are excluded from SA')
@@ -427,7 +425,7 @@ else
vvarvecm=vvarvecm(ivar,:);
rmse_MC=rmse_MC(:,ivar);
- disp(' ')
+ skipline()
% if options_.opt_gsa.ppost==0 && options_.opt_gsa.pprior,
disp(['Sample filtered the ',num2str(pfilt*100),'% best RMSE''s for each observed series ...' ])
% else
@@ -437,8 +435,7 @@ else
% set(gca,'xticklabel',vvarvecm)
% saveas(gcf,[fname_,'_SA_RMSE'])
- disp(' ')
- disp(' ')
+ skipline(2)
disp('RMSE ranges after filtering:')
if options_.opt_gsa.ppost==0 && options_.opt_gsa.pprior,
disp([' best ',num2str(pfilt*100),'% filtered remaining 90%'])
@@ -461,7 +458,7 @@ else
%%%%% R2 table
- disp(' ')
+ skipline()
disp('R2 over the MC sample:')
disp(' min yr R2 max yr R2')
for j=1:size(vvarvecm,1),
@@ -469,11 +466,10 @@ else
end
r2_MC=r2_MC(:,ivar);
- disp(' ')
+ skipline()
disp(['Sample filtered the ',num2str(pfilt*100),'% best R2''s for each observed series ...' ])
- disp(' ')
- disp(' ')
+ skipline()
disp('R2 ranges after filtering:')
if options_.opt_gsa.ppost==0 && options_.opt_gsa.pprior,
disp([' best ',num2str(pfilt*100),'% filtered remaining 90%'])
@@ -511,14 +507,13 @@ else
% snam=bayestopt_.name(find(nsp>0));
nsnam=(find(nsp>1));
- disp(' ')
- disp(' ')
+ skipline(2
disp('These parameters do not affect significantly the fit of ANY observed series:')
disp(snam0)
- disp(' ')
+ skipline()
disp('These parameters affect ONE single observed series:')
disp(snam1)
- disp(' ')
+ skipline()
disp('These parameters affect MORE THAN ONE observed series: trade off exists!')
disp(snam2)
@@ -594,8 +589,7 @@ else
nsx(j)=length(find(SP(:,j)));
end
- disp(' ')
- disp(' ')
+ skipline(2
disp('Sensitivity table (significance and direction):')
vav=char(zeros(1, size(param_names,2)+3 ));
ibl = 12-size(vvarvecm,2);
@@ -610,8 +604,7 @@ else
end
- disp(' ')
- disp(' ')
+ skipline()
disp('Starting bivariate analysis:')
for i=1:size(vvarvecm,1)
diff --git a/matlab/gsa/gsa_speed.m b/matlab/gsa/gsa_speed.m
index bd3358410..d0845c57f 100644
--- a/matlab/gsa/gsa_speed.m
+++ b/matlab/gsa/gsa_speed.m
@@ -56,6 +56,6 @@ for i=1:nrun,
end
dyn_waitbar(i/nrun,h)
end
-disp(' ')
+skipline()
disp('.. done !')
dyn_waitbar_close(h)
diff --git a/matlab/gsa/mc_moments.m b/matlab/gsa/mc_moments.m
index 22838d9ce..31fd3bce6 100644
--- a/matlab/gsa/mc_moments.m
+++ b/matlab/gsa/mc_moments.m
@@ -39,5 +39,5 @@ global options_ M_
dyn_waitbar(j/nsam,h)
end
dyn_waitbar_close(h)
- disp(' ')
+ skipline()
disp('... done !')
diff --git a/matlab/gsa/redform_map.m b/matlab/gsa/redform_map.m
index eb6c8e0cf..94c56a41d 100644
--- a/matlab/gsa/redform_map.m
+++ b/matlab/gsa/redform_map.m
@@ -116,7 +116,7 @@ for j=1:size(anamendo,1)
for jx=1:size(anamexo,1)
namexo=deblank(anamexo(jx,:));
iexo=strmatch(namexo,M_.exo_names,'exact');
- disp(' ')
+ skipline()
disp(['[', namendo,' vs. ',namexo,']'])
@@ -162,7 +162,7 @@ for j=1:size(anamendo,1)
for jp=1:length(indsmirnov),
disp([M_.param_names(estim_params_.param_vals(indsmirnov(jp),1),:),' d-stat = ', num2str(dproba(indsmirnov(jp)),'%1.3f'),' p-value = ', num2str(proba(indsmirnov(jp)),'%1.3f')])
end
- disp(' ');
+ skipline()
stab_map_1(x0, iy, iyc, 'threshold',pvalue_ks,indsmirnov,xdir,[],['Reduced Form Mapping (Threshold) for ', namendo,' vs. lagged ', namexo]);
stab_map_2(x0(iy,:),alpha2,pvalue_corr,'inside_threshold',xdir,[],['Reduced Form Mapping (Inside Threshold)for ', namendo,' vs. lagged ', namexo])
stab_map_2(x0(iyc,:),alpha2,pvalue_corr,'outside_threshold',xdir,[],['Reduced Form Mapping (Outside Threshold) for ', namendo,' vs. lagged ', namexo])
@@ -218,7 +218,7 @@ for j=1:size(anamendo,1)
for je=1:size(anamlagendo,1)
namlagendo=deblank(anamlagendo(je,:));
ilagendo=strmatch(namlagendo,M_.endo_names(oo_.dr.order_var(M_.nstatic+1:M_.nstatic+nsok),:),'exact');
- disp(' ')
+ skipline()
disp(['[', namendo,' vs. lagged ',namlagendo,']'])
if ~isempty(ilagendo),
@@ -261,7 +261,7 @@ for j=1:size(anamendo,1)
for jp=1:length(indsmirnov),
disp([M_.param_names(estim_params_.param_vals(indsmirnov(jp),1),:),' d-stat = ', num2str(dproba(indsmirnov(jp)),'%1.3f'),' p-value = ', num2str(proba(indsmirnov(jp)),'%1.3f')])
end
- disp(' ');
+ skipline()
stab_map_1(x0, iy, iyc, 'threshold',pvalue_ks,indsmirnov,xdir,[],['Reduced Form Mapping (Threshold) for ', namendo,' vs. lagged ', namlagendo]);
stab_map_2(x0(iy,:),alpha2,pvalue_corr,'inside_threshold',xdir,[],['Reduced Form Mapping (Inside Threshold) for ', namendo,' vs. lagged ', namlagendo])
stab_map_2(x0(iyc,:),alpha2,pvalue_corr,'outside_threshold',xdir,[],['Reduced Form Mapping (Outside Threshold) for ', namendo,' vs. lagged ', namlagendo])
diff --git a/matlab/gsa/stab_map_.m b/matlab/gsa/stab_map_.m
index de220c3c8..ca8a54f7f 100644
--- a/matlab/gsa/stab_map_.m
+++ b/matlab/gsa/stab_map_.m
@@ -499,9 +499,9 @@ if length(iunstable)>0 && length(iunstable)0 && length(iunstable)ksstat);
@@ -543,7 +543,7 @@ if length(iunstable)>0 && length(iunstable)0 && length(iunstable)0 && length(iunstable)0 && length(iunstable) ).
save([M_.fname '_mean.mat'],'xparam1','hh','SIGMA');
-
-disp(' ');
+skipline()
disp('MH: I''m computing the posterior log marginal density (modified harmonic mean)... ');
detSIGMA = det(SIGMA);
invSIGMA = inv(SIGMA);
diff --git a/matlab/metropolis_hastings_initialization.m b/matlab/metropolis_hastings_initialization.m
index 3e75c78da..b90f72130 100644
--- a/matlab/metropolis_hastings_initialization.m
+++ b/matlab/metropolis_hastings_initialization.m
@@ -127,9 +127,15 @@ if ~options_.load_mh_file && ~options_.mh_recover
init_iter = init_iter + 1;
if init_iter > 100 && validate == 0
disp(['MH: I couldn''t get a valid initial value in 100 trials.'])
- disp(['MH: You should Reduce mh_init_scale...'])
- disp(sprintf('MH: Parameter mh_init_scale is equal to %f.',options_.mh_init_scale))
- options_.mh_init_scale = input('MH: Enter a new value... ');
+ if options_.nointeractive
+ disp(['MH: I reduce mh_init_scale by ten percent:'])
+ options_.mh_init_scale = .9*options_.mh_init_scale;
+ disp(sprintf('MH: Parameter mh_init_scale is now equal to %f.',options_.mh_init_scale))
+ else
+ disp(['MH: You should Reduce mh_init_scale...'])
+ disp(sprintf('MH: Parameter mh_init_scale is equal to %f.',options_.mh_init_scale))
+ options_.mh_init_scale = input('MH: Enter a new value... ');
+ end
trial = trial+1;
end
end
@@ -140,7 +146,7 @@ if ~options_.load_mh_file && ~options_.mh_recover
end
fprintf(fidlog,' \n');
disp('MH: Initial values found!')
- disp(' ')
+ skipline()
else% Case 2: one chain (we start from the posterior mode)
fprintf(fidlog,[' Initial values of the parameters:\n']);
candidate = transpose(xparam1(:));%
@@ -148,7 +154,7 @@ if ~options_.load_mh_file && ~options_.mh_recover
ix2 = candidate;
ilogpo2 = - feval(TargetFun,ix2',dataset_,options_,M_,estim_params_,bayestopt_,oo_);
disp('MH: Initialization at the posterior mode.')
- disp(' ')
+ skipline()
fprintf(fidlog,[' Blck ' int2str(1) 'params:\n']);
for i=1:length(ix2(1,:))
fprintf(fidlog,[' ' int2str(i) ':' num2str(ix2(1,i)) '\n']);
@@ -270,13 +276,13 @@ elseif options_.load_mh_file && ~options_.mh_recover
record.MhDraws(end,3) = AnticipatedNumberOfLinesInTheLastFile;
save([MhDirectoryName '/' ModelName '_mh_history.mat'],'record');
disp(['MH: ... It''s done. I''ve loaded ' int2str(NumberOfPreviousSimulations) ' simulations.'])
- disp(' ')
+ skipline()
fclose(fidlog);
elseif options_.mh_recover
%% The previous metropolis-hastings crashed before the end! I try to
%% recover the saved draws...
disp('MH: Recover mode!')
- disp(' ')
+ skipline()
file = dir([MhDirectoryName '/' ModelName '_mh_history.mat']);
if ~length(file)
error('MH:: FAILURE! there is no MH-history file!')
diff --git a/matlab/mode_check.m b/matlab/mode_check.m
index 6f9299ac1..e7591e21d 100644
--- a/matlab/mode_check.m
+++ b/matlab/mode_check.m
@@ -65,11 +65,11 @@ end
fval = feval(fun,x,DynareDataset,DynareOptions,Model,EstimatedParameters,BayesInfo,DynareResults);
if ~isempty(hessian);
- disp(' ')
+ skipline()
disp('MODE CHECK')
- disp(' ')
+ skipline()
disp(sprintf('Fval obtained by the minimization routine: %f', fval))
- disp(' ')
+ skipline()
if s_min 0 && options_.noprint == 0
end
lh = size(labels,2)+2;
dyntable(my_title,headers,labels,res_table,lh,10,6);
- disp(' ')
+ skipline()
end
diff --git a/matlab/newrat.m b/matlab/newrat.m
index 3ce1dbd10..5b2c7e7d9 100644
--- a/matlab/newrat.m
+++ b/matlab/newrat.m
@@ -214,10 +214,10 @@ while norm(gg)>gtol && check==0 && jithtol
htol=htol0;
- disp(' ')
+ skipline()
disp('Numerical noise in the likelihood')
disp('Tolerance has to be relaxed')
- disp(' ')
+ skipline()
end
if ~outer_product_gradient,
H = bfgsi1(H,gg-g(:,icount),xparam1-x(:,icount));
@@ -256,16 +256,16 @@ end
save m1.mat x hh g hhg igg fval0 nig
if ftol>ftol0
- disp(' ')
+ skipline()
disp('Numerical noise in the likelihood')
disp('Tolerance had to be relaxed')
- disp(' ')
+ skipline()
end
if jit==nit
- disp(' ')
+ skipline()
disp('Maximum number of iterations reached')
- disp(' ')
+ skipline()
end
if norm(gg)<=gtol
diff --git a/matlab/osr.m b/matlab/osr.m
index ccb7c0c7d..325ab943b 100644
--- a/matlab/osr.m
+++ b/matlab/osr.m
@@ -34,9 +34,9 @@ for i=1:np
i_params(i) = strmatch(deblank(params(i,:)),M_.param_names,'exact');
end
-disp(' ')
+skipline()
disp('OPTIMAL SIMPLE RULE')
-disp(' ')
+skipline()
osr1(i_params,i_var,W);
stoch_simul(var_list);
\ No newline at end of file
diff --git a/matlab/osr1.m b/matlab/osr1.m
index 601355f7c..7709368d1 100644
--- a/matlab/osr1.m
+++ b/matlab/osr1.m
@@ -63,14 +63,14 @@ oo_.osr.objective_function = f;
-disp('')
+skipline()
disp('OPTIMAL VALUE OF THE PARAMETERS:')
-disp('')
+skipline()
for i=1:np
disp(sprintf('%16s %16.6g\n',M_.param_names(i_params(i),:),p(i)))
end
disp(sprintf('Objective function : %16.6g\n',f));
-disp(' ')
+skipline()
[oo_.dr,info,M_,options_,oo_] = resol(0,M_,options_,oo_);
% 05/10/03 MJ modified to work with osr.m and give full report
\ No newline at end of file
diff --git a/matlab/parallel/AnalyseComputationalEnvironment.m b/matlab/parallel/AnalyseComputationalEnvironment.m
index 6d5d07430..f6dd9e970 100644
--- a/matlab/parallel/AnalyseComputationalEnvironment.m
+++ b/matlab/parallel/AnalyseComputationalEnvironment.m
@@ -123,11 +123,9 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
Environment= (OScallerUnix || OStargetUnix);
- disp(' ');
- disp(' ');
+ skipline(2)
disp(['Testing computer -> ',DataInput(Node).ComputerName,' <- ...']);
- disp(' ');
- disp(' ');
+ skipline(2)
% The function is composed by two main blocks, determined by the 'Local'
% variable.
@@ -138,18 +136,14 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
if ((DataInput(Node).Local == 0) |(DataInput(Node).Local == 1))
% Continue it is Ok!
disp('Check on Local Variable ..... Ok!');
- disp(' ');
- disp(' ');
-
+ skipline()
else
disp('The variable "Local" has a bad value!');
- disp(' ');
+ skipline()
disp('ErrorCode 1.');
- disp(' ');
- disp(' ');
+ skipline()
ErrorCode=1;
return
-
end
% %%%%%%%%%% Local (No Network) Computing %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@@ -189,17 +183,14 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
end
if (si1)
- disp(['It is impossibile to ping to the computer with name "',DataInput(Node).ComputerName,'" using the network!']);
- disp(' ');
- disp('ErrorCode 3.');
+ disp(['It is impossibile to ping to the computer with name "',DataInput(Node).ComputerName,'" using the network!'])
+ skipline()
+ disp('ErrorCode 3.')
ErrorCode=3;
- disp(' ');
- disp(' ');
-% return;
+ skipline(2)
else
- disp('Check on ComputerName Variable ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on ComputerName Variable ..... Ok!')
+ skipline(2)
end
@@ -212,34 +203,29 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
% strategy.
if (isempty(DataInput(Node).UserName))
- disp('The fields UserName is empty!');
- disp(' ');
- disp('ErrorCode 4.');
- disp(' ');
- disp(' ');
+ disp('The fields UserName is empty!')
+ skipline()
+ disp('ErrorCode 4.')
+ skipline(2)
ErrorCode=4;
return
end
- disp('Check on UserName Variable ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on UserName Variable ..... Ok!')
+ skipline(2)
% This check can be removed ... according to the dynare parser
% strategy.
if (~isempty(DataInput(Node).Password))
disp('[WARNING] The field Password should be empty under unix or mac!');
- disp(' ');
- disp(['Remove the string ',DataInput(Node).Password,' from this field!']);
- disp(' ');
- disp('ErrorCode 4.');
- disp(' ');
- disp(' ');
+ skipline()
+ disp(['Remove the string ',DataInput(Node).Password,' from this field!'])
+ skipline()
+ disp('ErrorCode 4.')
+ skipline(2)
ErrorCode=4;
- % return
else
- disp('Check on Password Variable ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on Password Variable ..... Ok!')
+ skipline(2)
end
else
@@ -248,20 +234,16 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
if (isempty(DataInput(Node).UserName)) || (isempty(DataInput(Node).Password))
disp('The fields UserName and/or Password are/is empty!');
- disp(' ');
- disp('ErrorCode 4.');
- disp(' ');
- disp(' ');
+ skipline()
+ disp('ErrorCode 4.')
+ skipline(2)
ErrorCode=4;
return
end
disp('Check on UserName Variable ..... Ok!');
- disp(' ');
- disp(' ');
+ skipline()
disp('Check on Password Variable ..... Ok!');
- disp(' ');
- disp(' ');
-
+ skipline()
end
% Now we very if RemoteDrive and/or RemoteDirectory exist on remote
@@ -273,11 +255,10 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
% strategy.
if isempty(DataInput(Node).RemoteDirectory)
- disp('The field RemoteDirectory is empty!');
- disp(' ');
- disp('ErrorCode 5.');
- disp(' ');
- disp(' ');
+ disp('The field RemoteDirectory is empty!')
+ skipline()
+ disp('ErrorCode 5.')
+ skipline()
ErrorCode=5;
return
end
@@ -286,15 +267,13 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
% strategy.
if (~isempty(DataInput(Node).RemoteDrive))
- disp('[WARNING] The fields RemoteDrive should be empty under unix or mac!');
- disp(' ');
- disp(['remove the string ',DataInput(Node).RemoteDrive,' from this field!']);
- disp(' ');
- disp('ErrorCode 5.');
- disp(' ');
- disp(' ');
+ disp('[WARNING] The fields RemoteDrive should be empty under unix or mac!')
+ skipline()
+ disp(['remove the string ',DataInput(Node).RemoteDrive,' from this field!'])
+ skipline()
+ disp('ErrorCode 5.')
+ skipline(2)
ErrorCode=5;
- % return
end
si2=[];
@@ -308,32 +287,28 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
[si2 de2]=system(['ssh ',ssh_token,' ',DataInput(Node).UserName,'@',DataInput(Node).ComputerName,' ls ',DataInput(Node).RemoteDirectory,'/',RemoteTmpFolder,'/']);
if (si2)
- disp ('Remote Directory does not exist or is not reachable!');
- disp(' ');
- disp('ErrorCode 5.');
- disp(' ');
- disp(' ');
+ disp ('Remote Directory does not exist or is not reachable!')
+ skipline()
+ disp('ErrorCode 5.')
+ skipline(2)
ErrorCode=5;
return
end
- disp('Check on RemoteDirectory Variable ..... Ok!');
- disp(' ');
- disp(' ');
- disp('Check on RemoteDrive Variable ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on RemoteDirectory Variable ..... Ok!')
+ skipline(2)
+ disp('Check on RemoteDrive Variable ..... Ok!')
+ skipline(2)
else
% This check can be removed ... according to the dynare parser
% strategy.
if (isempty(DataInput(Node).RemoteDrive)||isempty(DataInput(Node).RemoteDirectory))
- disp('Remote RemoteDrive and/or RemoteDirectory is/are empty!');
- disp(' ');
- disp('ErrorCode 5.');
- disp(' ');
- disp(' ');
+ disp('Remote RemoteDrive and/or RemoteDirectory is/are empty!')
+ skipline()
+ disp('ErrorCode 5.')
+ skipline(2)
ErrorCode=5;
return
end
@@ -344,21 +319,18 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
[si2 de2]=system(['dir \\',DataInput(Node).ComputerName,'\',DataInput(Node).RemoteDrive,'$\',DataInput(Node).RemoteDirectory,'\',RemoteTmpFolder]);
if (si2)
- disp ('Remote Directory does not exist or it is not reachable!');
- disp(' ');
- disp('ErrorCode 5.');
- disp(' ');
- disp(' ');
+ disp ('Remote Directory does not exist or it is not reachable!')
+ skipline()
+ disp('ErrorCode 5.')
+ skipline(2)
ErrorCode=5;
return
end
- disp('Check on RemoteDirectory Variable ..... Ok!');
- disp(' ');
- disp(' ');
- disp('Check on RemoteDrive Variable ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on RemoteDirectory Variable ..... Ok!')
+ skipline(2)
+ disp('Check on RemoteDrive Variable ..... Ok!')
+ skipline(2)
end
@@ -407,17 +379,15 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
delete ('Tracing.m');
if (isempty(FindTracing))
- disp ('It is impossible to exchange data with Remote Drive and/or Remote Directory! ErrorCode 6.');
- disp(' ');
- disp('ErrorCode 6.');
- disp(' ');
- disp(' ');
+ disp('It is impossible to exchange data with Remote Drive and/or Remote Directory! ErrorCode 6.')
+ skipline()
+ disp('ErrorCode 6.')
+ skipline(2)
ErrorCode=6;
return
else
- disp('Check on Exchange File with Remote Computer ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on Exchange File with Remote Computer ..... Ok!')
+ skipline(2)
end
@@ -466,10 +436,10 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
while (1);
if Flag==0
- disp('Try to run matlab/octave on remote machine ... ');
- disp(' ');
- disp('please wait ... ');
- disp(' ');
+ disp('Try to run matlab/octave on remote machine ... ')
+ skipline()
+ disp('please wait ... ')
+ skipline()
Flag=1;
end
nt=fix(clock);
@@ -486,25 +456,22 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
if (ErrorCode==7)
- disp ('It is not possible execute a matlab session on remote machine!');
- disp(' ');
- disp('ErrorCode 7.');
- disp(' ');
- disp(' ');
+ disp ('It is not possible execute a matlab session on remote machine!')
+ skipline()
+ disp('ErrorCode 7.')
+ skipline(2)
ErrorCode=7;
dynareParallelRmDir(RemoteTmpFolder,DataInput(Node));
return
-
else
- disp('Check on MatlabOctave Path and MatlabOctave Program Execution on remote machine ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on MatlabOctave Path and MatlabOctave Program Execution on remote machine ..... Ok!')
+ skipline(2)
% Now we verify if the DynarePath is correct ...
- disp('Check the Dynare path on remote machine ... ');
- disp(' ');
- disp('please wait ... ');
- disp(' ');
+ disp('Check the Dynare path on remote machine ... ')
+ skipline()
+ disp('please wait ... ')
+ skipline(2)
pause(2)
if isempty(dynareParallelDir('DynareIsOk.txt',RemoteTmpFolder,DataInput(Node)))
@@ -512,20 +479,16 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
end
if (ErrorCode==8)
-
- disp ('The DynarePath is incorrect!');
- disp(' ');
- disp('ErrorCode 8.');
- disp(' ');
- disp(' ');
+ disp ('The DynarePath is incorrect!')
+ skipline()
+ disp('ErrorCode 8.')
+ skipline(2)
ErrorCode=8;
dynareParallelRmDir(RemoteTmpFolder,DataInput(Node));
return
-
else
- disp('Check on Dynare Path remote machine ..... Ok!');
- disp(' ');
- disp(' ');
+ disp('Check on Dynare Path remote machine ..... Ok!')
+ skipline(2)
end
end
@@ -539,15 +502,13 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
si3=dynareParallelDir('Tracing.m', RemoteTmpFolder,DataInput(Node));
if (isempty(si3))
- disp ('Check on Delete Remote Computational Traces ..... Ok!');
- disp(' ');
- disp(' ');
+ disp ('Check on Delete Remote Computational Traces ..... Ok!')
+ skipline(2)
else
- disp ('It is impossible to delete temporary files on remote machine!');
- disp(' ');
- disp('ErrorCode 9.');
- disp(' ');
- disp(' ');
+ disp ('It is impossible to delete temporary files on remote machine!')
+ skipline()
+ disp('ErrorCode 9.')
+ skipline(2)
ErrorCode=9;
return
end
@@ -563,11 +524,10 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
if yn==1
% The field is empty!
- disp('The field "CPUnbr" is empty!');
- disp(' ');
- disp('ErrorCode 2.');
- disp(' ');
- disp(' ');
+ disp('The field "CPUnbr" is empty!')
+ skipline()
+ disp('ErrorCode 2.')
+ skipline(2)
ErrorCode=2;
return
end
@@ -620,16 +580,16 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
if isempty (RealCPUnbr)
% An error occurred when we try to know the Cpu/Cores
% numbers.
- disp('It is impossible determine the number of Cpu/Processor avaiable on this machine!');
- disp(' ');
- disp('ErrorCode 2.');
- disp(' ');
+ disp('It is impossible determine the number of Cpu/Processor avaiable on this machine!')
+ skipline()
+ disp('ErrorCode 2.')
+ skipline()
if Environment
- disp('Check the command "$less /proc/cpuinfo" ... !');
+ disp('Check the command "$less /proc/cpuinfo" ... !')
else
- disp('Check if the pstools are installed and are in machine path! And check the command "psinfo \\"');
+ disp('Check if the pstools are installed and are in machine path! And check the command "psinfo \\"')
end
- disp(' ');
+ skipline()
ErrorCode=2;
return
end
@@ -642,38 +602,25 @@ for Node=1:length(DataInput) % To obtain a recoursive function remove the 'for'
CPUnbrUser=length(DataInput(Node).CPUnbr);
maxCPUnbrUser=max(DataInput(Node).CPUnbr)+1;
- disp(['Hardware has ', num2str(RealCPUnbr),' Cpu/Cores!']);
- disp(['User requires ',num2str(CPUnbrUser),' Cpu/Cores!']);
+ disp(['Hardware has ', num2str(RealCPUnbr),' Cpu/Cores!'])
+ disp(['User requires ',num2str(CPUnbrUser),' Cpu/Cores!'])
if CPUnbrUser==RealCPUnbr,
% It is Ok!
- disp('Check on CPUnbr Variable ..... Ok!');
- disp(' ');
- disp(' ');
- disp(' ');
-
+ disp('Check on CPUnbr Variable ..... Ok!')
+ skipline(3)
end
if CPUnbrUser > RealCPUnbr
- disp('Warning! The user asks to use more CPU''s than those available.');
- disp(' ');
- disp(' ');
+ disp('Warning! The user asks to use more CPU''s than those available.')
+ skipline(2)
ErrorCode=2.1;
- % return
-
end
if CPUnbrUser < RealCPUnbr
- disp('Warning! There are unused CPU''s!');
- disp(' ');
- disp(' ');
+ disp('Warning! There are unused CPU''s!')
+ skipline(2)
ErrorCode=2.2;
- % return
end
- disp(['Test for Cluster computation, computer ',DataInput(Node).ComputerName, ' ..... Passed!']);
- disp(' ');
- disp(' ');
-
-
-end
-
-return
\ No newline at end of file
+ disp(['Test for Cluster computation, computer ',DataInput(Node).ComputerName, ' ..... Passed!'])
+ skipline(2)
+end
\ No newline at end of file
diff --git a/matlab/plot_identification.m b/matlab/plot_identification.m
index b37129510..278133ce7 100644
--- a/matlab/plot_identification.m
+++ b/matlab/plot_identification.m
@@ -88,7 +88,7 @@ if SampleSize == 1,
if advanced,
if ~options_.nodisplay,
- disp(' ')
+ skipline()
disp('Press ENTER to plot advanced diagnostics'), pause(5),
end
hh = dyn_figure(options_,'Name',[tittxt, ' - Sensitivity plot']);
@@ -152,7 +152,7 @@ if SampleSize == 1,
xlabel([tittxt,' - Collinearity patterns with ', int2str(j) ,' parameter(s)'],'interpreter','none')
dyn_saveas(hh,[ IdentifDirectoryName '/' M_.fname '_ident_collinearity_' tittxt1 '_' int2str(j) ],options_);
end
- disp('')
+ skipline()
if idehess.flag_score,
[U,S,V]=svd(idehess.AHess,0);
S=diag(S);
@@ -232,7 +232,7 @@ else
dyn_saveas(hh,[ IdentifDirectoryName '/' M_.fname '_MC_sensitivity' ],options_);
if advanced,
if ~options_.nodisplay,
- disp(' ')
+ skipline()
disp('Press ENTER to display advanced diagnostics'), pause(5),
end
% options_.nograph=1;
diff --git a/matlab/random_walk_metropolis_hastings.m b/matlab/random_walk_metropolis_hastings.m
index f64603f69..91cd69534 100644
--- a/matlab/random_walk_metropolis_hastings.m
+++ b/matlab/random_walk_metropolis_hastings.m
@@ -168,4 +168,4 @@ disp(['MH: Total number of generated files : ' int2str(NewFile(1)*nblck) '.
disp(['MH: Total number of iterations : ' int2str((NewFile(1)-1)*MAX_nruns+irun-1) '.'])
disp('MH: average acceptation rate per chain : ')
disp(record.AcceptationRates);
-disp(' ')
+skipline()
diff --git a/matlab/resid.m b/matlab/resid.m
index 807bb435f..a69ba8fe3 100644
--- a/matlab/resid.m
+++ b/matlab/resid.m
@@ -83,12 +83,10 @@ M_.Sigma_e = Sigma_e;
% Display the non-zero residuals if no return value
if nargout == 0
- for i = 1:4
- disp(' ')
- end
+ skipline(4)
ind = [];
disp('Residuals of the static equations:')
- disp(' ')
+ skipline()
for i=1:M_.orig_endo_nbr
if abs(z(i)) < options_.dynatol.f/100
tmp = 0;
@@ -107,9 +105,7 @@ if nargout == 0
disp( ['Equation number ', int2str(i) ,' : ', num2str(tmp) ,' : ' s])
end
end
- for i = 1:2
- disp(' ')
- end
+ skipline(2)
end
if info(1)
diff --git a/matlab/set_dynare_seed.m b/matlab/set_dynare_seed.m
index c9eb42a9a..991b8ed57 100644
--- a/matlab/set_dynare_seed.m
+++ b/matlab/set_dynare_seed.m
@@ -73,9 +73,9 @@ if matlab_random_streams% Use new matlab interface.
strcmpi(a,'swb2712') )
disp('set_dynare_seed:: First argument must be string designing the uniform random number algorithm!')
RandStream.list
- disp(' ')
+ skipline()
disp('set_dynare_seed:: Change the first input accordingly...')
- disp(' ')
+ skipline()
error(' ')
end
if ~isint(b)
diff --git a/matlab/sim1.m b/matlab/sim1.m
index 35b5318b8..ffe622eb6 100644
--- a/matlab/sim1.m
+++ b/matlab/sim1.m
@@ -77,7 +77,7 @@ fprintf('\n') ;
model_dynamic = str2func([M_.fname,'_dynamic']);
z = Y(find(lead_lag_incidence'));
[d1,jacobian] = model_dynamic(z,oo_.exo_simul, params, ...
- steady_state,2);
+ steady_state,M_.maximum_lag+1);
A = sparse([],[],[],periods*ny,periods*ny,periods*nnz(jacobian));
res = zeros(periods*ny,1);
@@ -91,15 +91,15 @@ for iter = 1:options_.maxit_
i_cols = find(lead_lag_incidence');
i_cols_A = i_cols;
- for it = 2:(periods+1)
+ for it = (M_.maximum_lag+1):(M_.maximum_lag+periods)
[d1,jacobian] = model_dynamic(Y(i_cols),exo_simul, params, ...
steady_state,it);
- if it == periods+1 && it == 2
+ if it == M_.maximum_lag+periods && it == M_.maximum_lag+1
A(i_rows,i_cols_A0) = jacobian(:,i_cols_0);
- elseif it == periods+1
+ elseif it == M_.maximum_lag+periods
A(i_rows,i_cols_A(i_cols_T)) = jacobian(:,i_cols_T);
- elseif it == 2
+ elseif it == M_.maximum_lag+1
A(i_rows,i_cols_A1) = jacobian(:,i_cols_1);
else
A(i_rows,i_cols_A) = jacobian(:,i_cols_j);
@@ -109,7 +109,7 @@ for iter = 1:options_.maxit_
i_rows = i_rows + ny;
i_cols = i_cols + ny;
- if it > 2
+ if it > M_.maximum_lag+1
i_cols_A = i_cols_A + ny;
end
end
diff --git a/matlab/simplex_optimization_routine.m b/matlab/simplex_optimization_routine.m
index fb170c250..b06135c62 100644
--- a/matlab/simplex_optimization_routine.m
+++ b/matlab/simplex_optimization_routine.m
@@ -1,4 +1,4 @@
-Xfunction [x,fval,exitflag] = simplex_optimization_routine(objective_function,x,options,varargin)
+function [x,fval,exitflag] = simplex_optimization_routine(objective_function,x,options,varargin)
% Nelder-Mead like optimization routine.
% By default, we use standard values for the reflection, the expansion, the contraction and the shrink coefficients (alpha = 1, chi = 2, psi = 1 / 2 and σ = 1 / 2).
% See http://en.wikipedia.org/wiki/Nelder-Mead_method
@@ -9,7 +9,7 @@ Xfunction [x,fval,exitflag] = simplex_optimization_routine(objective_function,x,
% amelioration is possible.
%
% INPUTS
-% objective_function [string] Name of the iobjective function to be minimized.
+% objective_function [string] Name of the objective function to be minimized.
% x [double] n*1 vector, starting guess of the optimization routine.
% options [structure]
%
@@ -17,7 +17,7 @@ Xfunction [x,fval,exitflag] = simplex_optimization_routine(objective_function,x,
%
%
-% Copyright (C) 2010-2012 Dynare Team
+% Copyright (C) 2010-2013 Dynare Team
%
% This file is part of Dynare.
%
@@ -167,18 +167,18 @@ trend_vector_2 = 2:(number_of_variables+1);
% Set initial simplex around the initial guess (x).
if verbose
- for i=1:3, disp(' '), end
+ skipline(3)
disp('+----------------------+')
disp(' SIMPLEX INITIALIZATION ')
disp('+----------------------+')
- disp(' ')
+ skipline()
end
initial_point = x;
[initial_score,junk1,junk2,nopenalty] = feval(objective_function,x,varargin{:});
if ~nopenalty
error('simplex_optimization_routine:: Initial condition is wrong!')
else
- [v,fv,delta] = simplex_initialization(objective_function,initial_point,initial_score,delta,1,varargin{:});
+ [v,fv,delta] = simplex_initialization(objective_function,initial_point,initial_score,delta,zero_delta,1,varargin{:});
func_count = number_of_variables + 1;
iter_count = 1;
if verbose
@@ -188,7 +188,7 @@ else
for i=1:number_of_variables
fprintf(1,'%s: \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \n',bayestopt_.name{i},v(i,1), v(i,end), mean(v(i,:),2), min(v(i,:),[],2), max(v(i,:),[],2));
end
- disp(' ')
+ skipline()
end
end
@@ -247,8 +247,7 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
if fxe < fxr% xe is even better than xr.
if optimize_expansion_parameter
if verbose>1
- disp('')
- disp('')
+ skipline(2)
disp('Compute optimal expansion...')
end
xee = xbar + rho*chi*1.01*(xbar-v(:,end));
@@ -316,8 +315,7 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
end
if verbose>1
disp('Done!')
- disp(' ')
- disp(' ')
+ skipline(2)
end
end
v(:,end) = xe;
@@ -384,7 +382,7 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
disp(['Norm of dSimplex: ' num2str(norm(v-vold,'fro'))])
disp(['Crit. f: ' num2str(critF)])
disp(['Crit. x: ' num2str(critX)])
- disp(' ')
+ skipline()
end
if verbose && max(abs(best_point-v(:,1)))>x_tolerance;
if verbose<2
@@ -395,14 +393,14 @@ while (func_count < max_func_calls) && (iter_count < max_iterations) && (simplex
disp(['Norm of dSimplex: ' num2str(norm(v-vold,'fro'))])
disp(['Crit. f: ' num2str(critF)])
disp(['Crit. x: ' num2str(critX)])
- disp(' ')
+ skipline()
end
disp(['Current parameter values: '])
fprintf(1,'%s: \t\t\t %s \t\t\t %s \t\t\t %s \t\t\t %s \t\t\t %s \n','Names','Best point', 'Worst point', 'Mean values', 'Min values', 'Max values');
for i=1:number_of_variables
fprintf(1,'%s: \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \t\t\t %+8.6f \n',bayestopt_.name{i}, v(i,1), v(i,end), mean(v(i,:),2), min(v(i,:),[],2), max(v(i,:),[],2));
end
- disp(' ')
+ skipline()
end
if abs(best_point_score-fv(1))2
estimated_parameters_optimization_path = [NaN;xparam];
save('optimization_path.mat','estimated_parameters_optimization_path');
end
- disp(' ')
+ skipline()
disp('Master talks to its slaves...')
- disp(' ')
+ skipline()
% Save the workspace.
save('master_variables.mat','options_','M_','oo_');
% Send the workspace to each remote computer.
- disp('')
+ skipline()
for i = 1:length(parallel)
if ~strcmpi(hostname,parallel(i).machine)
unix(['scp master_variables.mat ' , parallel(i).login , '@' , parallel(i).machine , ':' parallel(i).folder]);
@@ -191,9 +191,9 @@ if nargin>2
end
end
end
- disp(' ')
+ skipline()
disp('... And slaves do as ordered.')
- disp(' ')
+ skipline()
if exist('intermediary_results_from_master_and_slaves','dir')
unix('rm -rf intermediary_results_from_master_and_slaves');
end
@@ -201,7 +201,7 @@ if nargin>2
unix('chmod -R u+x intermediary_results_from_master_and_slaves');
end
-disp('');
+skipline()
if options.optimization_routine==1
% Set options for csminwel.
diff --git a/matlab/skipline.m b/matlab/skipline.m
new file mode 100644
index 000000000..feb5bd83f
--- /dev/null
+++ b/matlab/skipline.m
@@ -0,0 +1,34 @@
+function skipline(n,fid)
+
+% Copyright (C) 2013 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare. If not, see .
+
+if nargin<2
+ fid = 1;
+end
+
+if nargin<1
+ fid = 1;
+end
+
+if ~nargin || isequal(n,1)
+ fprintf(fid,'\n');
+else
+ for i=1:n
+ fprintf(fid,'\n');
+ end
+end
\ No newline at end of file
diff --git a/matlab/solve1.m b/matlab/solve1.m
index 52eb8460e..0cacf6e3a 100644
--- a/matlab/solve1.m
+++ b/matlab/solve1.m
@@ -136,7 +136,7 @@ for its = 1:maxit
end
check = 1;
-disp(' ')
+skipline()
disp('SOLVE: maxit has been reached')
% 01/14/01 MJ lnsearch is now a separate function
diff --git a/matlab/steady.m b/matlab/steady.m
index 510d1f89f..5ae9a0ac9 100644
--- a/matlab/steady.m
+++ b/matlab/steady.m
@@ -55,7 +55,7 @@ end
if info(1)
hv = options_.homotopy_values;
- disp(' ')
+ skipline()
disp('WARNING: homotopy step was not completed')
disp('The last values for which a solution was found are:')
for i=1:length(ip)
diff --git a/matlab/stoch_simul.m b/matlab/stoch_simul.m
index bf22883d9..8de0e4bfe 100644
--- a/matlab/stoch_simul.m
+++ b/matlab/stoch_simul.m
@@ -83,9 +83,9 @@ if info(1)
end
if ~options_.noprint
- disp(' ')
+ skipline()
disp('MODEL SUMMARY')
- disp(' ')
+ skipline()
disp([' Number of variables: ' int2str(M_.endo_nbr)])
disp([' Number of stochastic shocks: ' int2str(M_.exo_nbr)])
disp([' Number of state variables: ' int2str(M_.nspred)])
@@ -97,9 +97,9 @@ if ~options_.noprint
lh = size(labels,2)+2;
dyntable(my_title,headers,labels,M_.Sigma_e,lh,10,6);
if options_.partial_information
- disp(' ')
+ skipline()
disp('SOLUTION UNDER PARTIAL INFORMATION')
- disp(' ')
+ skipline()
if isfield(options_,'varobs')&& ~isempty(options_.varobs)
PCL_varobs=options_.varobs;
@@ -113,7 +113,7 @@ if ~options_.noprint
disp([' ' PCL_varobs(i,:)])
end
end
- disp(' ')
+ skipline()
if options_.order <= 2 && ~PI_PCL_solver
disp_dr(oo_.dr,options_.order,var_list);
end
diff --git a/matlab/utilities/dataset/initialize_dataset.m b/matlab/utilities/dataset/initialize_dataset.m
index f43bee9be..c890e83fd 100644
--- a/matlab/utilities/dataset/initialize_dataset.m
+++ b/matlab/utilities/dataset/initialize_dataset.m
@@ -48,10 +48,10 @@ dataset_.info.varobs = varobs;
% Test the number of variables in the database.
if dataset_.info.nvobs-size(rawdata,2)
- disp(' ')
+ skipline()
disp(['Declared number of observed variables = ' int2str(dataset.info.nvobs)])
disp(['Number of variables in the database = ' int2str(size(rawdata,2))])
- disp(' ')
+ skipline()
error(['Estimation can''t take place because the declared number of observed' ...
'variables doesn''t match the number of variables in the database.'])
end
diff --git a/matlab/utilities/doc/dynInfo.m b/matlab/utilities/doc/dynInfo.m
index 3c20d0e77..952c5bbe1 100644
--- a/matlab/utilities/doc/dynInfo.m
+++ b/matlab/utilities/doc/dynInfo.m
@@ -68,8 +68,7 @@ if strcmp(ext(2:end),'m')
fprintf(fid,'%s\n',deblank(block(i,:)));
end
fclose(fid);
- disp(' ')
- disp(' ')
+ skipline(2)
system(['makeinfo --plaintext --no-split --no-validate ' fun '.texi']);
delete([fun '.texi']);
else
diff --git a/matlab/utilities/tests/build_report_summary.m b/matlab/utilities/tests/build_report_summary.m
index 9e2fc0eae..b4a1dcd20 100644
--- a/matlab/utilities/tests/build_report_summary.m
+++ b/matlab/utilities/tests/build_report_summary.m
@@ -49,17 +49,17 @@ gitlastcommithash = reportfilecontent.gitlastcommithash;
str = 'Hi,';
str = char(str,'');
-str = char(str,'This is a summary report for the unitary tests in Dynare. Full report can be found at');
+str = char(str,'This is a summary report for the unitary tests in Dynare. Full report can be found at:');
+str = char(str,'');
str = char(str,'');
str = char(str,['http://www.dynare.org/stepan/dynare/tests/' reportfile]);
+str = char(str,'');
str = char(str,['http://www.dynare.org/stepan/dynare/tests/' reportfile(1:end-3) 'log']);
str = char(str,'');
str = char(str,gitinfo(1,:));
str = char(str,gitinfo(2,:));
-
str = char(str,'');
str = char(str,'');
-
str = char(str,['===========================']);
str = char(str,'DYNARE/MATLAB UNITARY TESTS');
str = char(str,'===========================');
@@ -75,9 +75,9 @@ for i=1:size(reportcell,1)
end
if printonscreen
- fprintf('\n\n')
+ skipline(2);
disp(str)
- fprintf('\n\n')
+ skipline(2);
end
if mailreport
diff --git a/mex/sources/bytecode/Evaluate.cc b/mex/sources/bytecode/Evaluate.cc
index 74be26bf3..89b79ef87 100644
--- a/mex/sources/bytecode/Evaluate.cc
+++ b/mex/sources/bytecode/Evaluate.cc
@@ -1640,38 +1640,6 @@ Evaluate::compute_complete_2b(const bool no_derivatives, double *_res1, double *
compute_block_time(Per_u_, false, no_derivatives);
if (!(isnan(res1) || isinf(res1)))
{
-#ifdef USE_OMP
- if (size > 10)
- {
- double res1_ = 0;
- double res2_ = 0;
- double max_res_ = 0;
- int max_res_idx_ = 0;
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:res1_, res2_) shared(max_res_, max_res_idx_)
- #endif
- for (int i = 0; i < size; i++)
- {
- double rr = r[i];
- res[i+shift] = rr;
- if (max_res_ < fabs(rr))
- {
- max_res_ = fabs(rr);
- max_res_idx_ = i;
- }
- res2_ += rr*rr;
- res1_ += fabs(rr);
- }
- *_res1 += res1_;
- *_res2 += res2_;
- if (max_res_ > *_max_res)
- {
- *_max_res = max_res_;
- *_max_res_idx = max_res_idx_;
- }
- }
- else
-#endif
{
for (int i = 0; i < size; i++)
{
@@ -1704,39 +1672,6 @@ Evaluate::compute_complete(const bool no_derivatives, double &_res1, double &_re
compute_block_time(0, false, no_derivatives);
if (!(isnan(res1) || isinf(res1)))
{
-#ifdef USE_OMP
- if (size > 10)
- {
- double res1_ = 0;
- double res2_ = 0;
- double max_res_ = 0;
- int max_res_idx_ = 0;
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:res1_, res2_) shared(max_res_, max_res_idx_)
- #endif
- for (int i = 0; i < size; i++)
- {
- double rr = r[i];
- if (max_res_ < fabs(rr))
- {
- #ifdef USE_OMP
- #pragma omp critical
- #endif
- {
- max_res_ = fabs(rr);
- max_res_idx_ = i;
- }
- }
- res2_ += rr*rr;
- res1_ += fabs(rr);
- }
- _res1 = res1_;
- _res2 = res2_;
- _max_res = max_res_;
- _max_res_idx = max_res_idx_;
- }
- else
-#endif
{
_res1 = 0;
_res2 = 0;
@@ -1771,9 +1706,6 @@ Evaluate::compute_complete(double lambda, double *crit)
if (steady_state)
{
it_ = 0;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < size; i++)
{
int eq = index_vara[i];
diff --git a/mex/sources/bytecode/Interpreter.cc b/mex/sources/bytecode/Interpreter.cc
index 522f71890..fb47033c4 100644
--- a/mex/sources/bytecode/Interpreter.cc
+++ b/mex/sources/bytecode/Interpreter.cc
@@ -93,15 +93,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
{
compute_block_time(0, true, /*block_num, size, steady_state, */false);
if (block >= 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[j] = y[Block_Contain[j].Variable] - ya[Block_Contain[j].Variable];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Block_Contain[j].Equation] = y[Block_Contain[j].Variable] - ya[Block_Contain[j].Variable];
}
@@ -114,15 +108,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
Per_y_ = it_*y_size;
compute_block_time(0, true, /*block_num, size, steady_state, */false);
if (block >= 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+j] = y[it_*y_size+Block_Contain[j].Variable] - ya[it_*y_size+Block_Contain[j].Variable];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+Block_Contain[j].Equation] = y[it_*y_size+Block_Contain[j].Variable] - ya[it_*y_size+Block_Contain[j].Variable];
}
@@ -135,15 +123,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
{
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[j] = r[j];
}
@@ -156,15 +138,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
Per_y_ = it_*y_size;
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Per_y_+Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+j] = r[j];
}
@@ -183,15 +159,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
{
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[j] = r[j];
}
@@ -204,15 +174,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
Per_y_ = it_*y_size;
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*y_size+Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+j] = r[j];
}
@@ -224,15 +188,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
{
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block >= 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[j] = y[Block_Contain[j].Variable] - ya[Block_Contain[j].Variable];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Block_Contain[j].Equation] = y[Block_Contain[j].Variable] - ya[Block_Contain[j].Variable];
}
@@ -245,15 +203,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
Per_y_ = it_*y_size;
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block >= 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+j] = y[it_*y_size+Block_Contain[j].Variable] - ya[it_*y_size+Block_Contain[j].Variable];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+Block_Contain[j].Equation] = y[it_*y_size+Block_Contain[j].Variable] - ya[it_*y_size+Block_Contain[j].Variable];
}
@@ -266,15 +218,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
{
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[j] = r[j];
}
@@ -287,15 +233,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
Per_y_ = it_*y_size;
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Per_y_+Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+j] = r[j];
}
@@ -311,15 +251,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
{
compute_block_time(0, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[j] = r[j];
}
@@ -332,15 +266,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
Per_y_ = it_*y_size;
compute_block_time(0, true, /*block_num, size, steady_state, */false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[Per_y_+Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+j] = r[j];
}
@@ -361,15 +289,9 @@ Interpreter::evaluate_a_block(/*const int size, const int type, string bin_basen
it_code = begining;
compute_block_time(Per_u_, true, /*block_num, size, steady_state,*/ false);
if (block < 0)
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*y_size+Block_Contain[j].Equation] = r[j];
else
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (int j = 0; j < size; j++)
residual[it_*size+j] = r[j];
}
diff --git a/mex/sources/bytecode/SparseMatrix.cc b/mex/sources/bytecode/SparseMatrix.cc
index c0bd86f73..70226a798 100644
--- a/mex/sources/bytecode/SparseMatrix.cc
+++ b/mex/sources/bytecode/SparseMatrix.cc
@@ -622,9 +622,6 @@ dynSparseMatrix::Read_SparseMatrix(string file_name, const int Size, int periods
if (periods+y_kmin+y_kmax > 1)
for (int i = 1; i < periods+y_kmin+y_kmax; i++)
{
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int j = 0; j < Size; j++)
index_vara[j+Size*i] = index_vara[j+Size*(i-1)] + y_size;
}
@@ -660,9 +657,6 @@ dynSparseMatrix::Simple_Init(int Size, map, int>, int> &IM,
NbNZCol = (int *) mxMalloc(i);
it4 = IM.begin();
eq = -1;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (i = 0; i < Size; i++)
{
line_done[i] = 0;
@@ -705,9 +699,6 @@ dynSparseMatrix::Simple_Init(int Size, map, int>, int> &IM,
it4++;
}
double cum_abs_sum = 0;
-#if USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:cum_abs_sum)
-#endif
for (int i = 0; i < Size; i++)
{
b[i] = i;
@@ -763,9 +754,6 @@ dynSparseMatrix::Init_Matlab_Sparse_Simple(int Size, map, in
throw FatalExceptionHandling(tmp.str());
}
map, int>, int>::iterator it4;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
ya[i] = y[i];
#ifdef DEBUG
@@ -774,9 +762,6 @@ dynSparseMatrix::Init_Matlab_Sparse_Simple(int Size, map, in
unsigned int NZE = 0;
int last_var = 0;
double cum_abs_sum = 0;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:cum_abs_sum)
-#endif
for (int i = 0; i < Size; i++)
{
b[i] = u[i];
@@ -887,9 +872,6 @@ dynSparseMatrix::Init_UMFPACK_Sparse_Simple(int Size, map, i
}
map, int>, int>::iterator it4;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < Size; i++)
{
int eq = index_vara[i];
@@ -901,10 +883,6 @@ dynSparseMatrix::Init_UMFPACK_Sparse_Simple(int Size, map, i
unsigned int NZE = 0;
int last_var = 0;
double cum_abs_sum = 0;
-
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:cum_abs_sum)
-#endif
for (int i = 0; i < Size; i++)
{
(*b)[i] = u[i];
@@ -1014,9 +992,6 @@ dynSparseMatrix::Init_UMFPACK_Sparse(int periods, int y_kmin, int y_kmax, int Si
throw FatalExceptionHandling(tmp.str());
}
map, int>, int>::iterator it4;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
ya[i] = y[i];
#ifdef DEBUG
@@ -1024,10 +999,6 @@ dynSparseMatrix::Init_UMFPACK_Sparse(int periods, int y_kmin, int y_kmax, int Si
#endif
unsigned int NZE = 0;
int last_var = 0;
-
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < periods*Size; i++)
{
(*b)[i] = 0;
@@ -1193,9 +1164,6 @@ dynSparseMatrix::Init_CUDA_Sparse_Simple(int Size, map, int>
}
map, int>, int>::iterator it4;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < Size; i++)
{
int eq = index_vara[i];
@@ -1208,10 +1176,6 @@ dynSparseMatrix::Init_CUDA_Sparse_Simple(int Size, map, int>
unsigned int NZE = 0;
int last_var = 0;
double cum_abs_sum = 0;
-
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:cum_abs_sum)
-#endif
for (int i = 0; i < Size; i++)
{
(*b)[i] = u[i];
@@ -1334,9 +1298,6 @@ dynSparseMatrix::Init_CUDA_Sparse(int periods, int y_kmin, int y_kmax, int Size,
map, int>, int>::iterator it4;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
ya[i] = y[i];
#ifdef DEBUG
@@ -1344,9 +1305,6 @@ dynSparseMatrix::Init_CUDA_Sparse(int periods, int y_kmin, int y_kmax, int Size,
#endif
unsigned int NZE = 0, NZE_tild = 0;
int last_eq = 0;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < periods*Size; i++)
{
Host_b[i] = 0;
@@ -1630,9 +1588,6 @@ dynSparseMatrix::Init_Matlab_Sparse(int periods, int y_kmin, int y_kmax, int Siz
}
map, int>, int>::iterator it4;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
ya[i] = y[i];
#ifdef DEBUG
@@ -1640,9 +1595,6 @@ dynSparseMatrix::Init_Matlab_Sparse(int periods, int y_kmin, int y_kmax, int Siz
#endif
unsigned int NZE = 0;
int last_var = 0;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < periods*Size; i++)
{
b[i] = 0;
@@ -1765,17 +1717,11 @@ dynSparseMatrix::Init_GE(int periods, int y_kmin, int y_kmax, int Size, map= beg_t+y_kmin; t--)
{
int j = 0, k;
@@ -2243,9 +2174,6 @@ dynSparseMatrix::bksub(int tbreak, int last_period, int Size, double slowc_l)
NonZeroElem *first;
int i, j, k;
double yy;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
y[i] = ya[i];
if (symbolic && tbreak)
@@ -2284,9 +2212,6 @@ dynSparseMatrix::simple_bksub(int it_, int Size, double slowc_l)
int i, k;
double yy;
NonZeroElem *first;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size; i++)
y[i+it_*y_size] = ya[i+it_*y_size];
for (i = Size-1; i >= 0; i--)
@@ -2427,9 +2352,6 @@ dynSparseMatrix::substract_A_B(mxArray *A_m, mxArray *B_m)
double *B_d = mxGetPr(B_m);
mxArray *C_m = mxCreateDoubleMatrix(m_A, n_B, mxREAL);
double *C_d = mxGetPr(C_m);
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int j = 0; j < (int) n_A; j++)
for (unsigned int i = 0; i < m_A; i++)
{
@@ -2558,10 +2480,6 @@ dynSparseMatrix::mult_SAT_B(mxArray *A_m, mxArray *B_m)
double *B_d = mxGetPr(B_m);
mxArray *C_m = mxCreateDoubleMatrix(m_A, n_B, mxREAL);
double *C_d = mxGetPr(C_m);
- //unsigned int nze_A = 0;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int j = 0; j < (int)n_B; j++)
{
for (unsigned int i = 0; i < n_A; i++)
@@ -3154,9 +3072,6 @@ dynSparseMatrix::Solve_Matlab_LU_UMFPack(mxArray *A_m, mxArray *b_m, int Size, d
mexCallMATLAB(1, &z, 2, rhs, "mldivide");
double *res = mxGetPr(z);
if (is_two_boundaries)
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int) n; i++)
{
int eq = index_vara[i+Size*y_kmin];
@@ -3165,9 +3080,6 @@ dynSparseMatrix::Solve_Matlab_LU_UMFPack(mxArray *A_m, mxArray *b_m, int Size, d
y[eq] += slowc_l * yy;
}
else
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int) n; i++)
{
int eq = index_vara[i];
@@ -3256,9 +3168,6 @@ dynSparseMatrix::Solve_LU_UMFPack(SuiteSparse_long *Ap, SuiteSparse_long *Ai, do
}
if (is_two_boundaries)
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i+Size*y_kmin];
@@ -3267,9 +3176,6 @@ dynSparseMatrix::Solve_LU_UMFPack(SuiteSparse_long *Ap, SuiteSparse_long *Ai, do
y[eq] += slowc_l * yy;
}
else
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i];
@@ -3325,9 +3231,6 @@ dynSparseMatrix::Solve_LU_UMFPack(mxArray *A_m, mxArray *b_m, int Size, double s
umfpack_dl_report_info ((double*) NULL, Info) ;
//double *res = mxGetPr(z);
if (is_two_boundaries)
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i+Size*y_kmin];
@@ -3336,9 +3239,6 @@ dynSparseMatrix::Solve_LU_UMFPack(mxArray *A_m, mxArray *b_m, int Size, double s
y[eq] += slowc_l * yy;
}
else
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i];
@@ -3561,9 +3461,6 @@ dynSparseMatrix::Solve_CUDA_BiCGStab(int *Ap, int *Ai, double *Ax, int *Ap_tild,
cudaChk(cudaFree(x0), " in Solve_Cuda_BiCGStab, can't free x0\n");
cudaChk(cudaFree(b), " in Solve_Cuda_BiCGStab, can't free b\n");
if (is_two_boundaries)
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i+Size*y_kmin];
@@ -3572,9 +3469,6 @@ dynSparseMatrix::Solve_CUDA_BiCGStab(int *Ap, int *Ai, double *Ax, int *Ap_tild,
y[eq] += slowc * yy;
}
else
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i];
@@ -4552,9 +4446,6 @@ dynSparseMatrix::Solve_CUDA_BiCGStab(int *Ap, int *Ai, double *Ax, int *Ap_tild,
cudaChk(cudaMemcpy(tmp_vect_host, x0, n * sizeof(double), cudaMemcpyDeviceToHost), " in Solve_Cuda_BiCGStab, cudaMemcpy tmp_vect_host = x0 has failed\n");
if (is_two_boundaries)
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i+Size*y_kmin];
@@ -4563,9 +4454,6 @@ dynSparseMatrix::Solve_CUDA_BiCGStab(int *Ap, int *Ai, double *Ax, int *Ap_tild,
y[eq] += slowc * yy;
}
else
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < n; i++)
{
int eq = index_vara[i];
@@ -4658,9 +4546,6 @@ dynSparseMatrix::Solve_Matlab_GMRES(mxArray *A_m, mxArray *b_m, int Size, double
{
double *res = mxGetPr(z);
if (is_two_boundaries)
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int) n; i++)
{
int eq = index_vara[i+Size*y_kmin];
@@ -4669,9 +4554,6 @@ dynSparseMatrix::Solve_Matlab_GMRES(mxArray *A_m, mxArray *b_m, int Size, double
y[eq] += slowc * yy;
}
else
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int) n; i++)
{
int eq = index_vara[i];
@@ -4752,9 +4634,6 @@ dynSparseMatrix::Solve_Matlab_BiCGStab(mxArray *A_m, mxArray *b_m, int Size, dou
mxArray *res = mult_SAT_B(Sparse_transpose(A_m), x0_m);
double *resid = mxGetPr(res);
double *b = mxGetPr(b_m);
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int)n; i++)
resid[i] = b[i] - resid[i];
mxArray *rhs[2];
@@ -4768,9 +4647,6 @@ dynSparseMatrix::Solve_Matlab_BiCGStab(mxArray *A_m, mxArray *b_m, int Size, dou
z = lhs[0];
double *phat = mxGetPr(z);
double *x0 = mxGetPr(x0_m);
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int)n; i++)
phat[i] = x0[i] + phat[i];
@@ -4778,9 +4654,6 @@ dynSparseMatrix::Solve_Matlab_BiCGStab(mxArray *A_m, mxArray *b_m, int Size, dou
res = mult_SAT_B(Sparse_transpose(A_m), z);
resid = mxGetPr(res);
double cum_abs = 0;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:cum_abs)
-#endif
for (int i = 0; i < (int)n; i++)
{
resid[i] = b[i] - resid[i];
@@ -4867,9 +4740,6 @@ dynSparseMatrix::Solve_Matlab_BiCGStab(mxArray *A_m, mxArray *b_m, int Size, dou
{
double *res = mxGetPr(z);
if (is_two_boundaries)
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int) n; i++)
{
int eq = index_vara[i+Size*y_kmin];
@@ -4878,9 +4748,6 @@ dynSparseMatrix::Solve_Matlab_BiCGStab(mxArray *A_m, mxArray *b_m, int Size, dou
y[eq] += slowc * yy;
}
else
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < (int) n; i++)
{
int eq = index_vara[i];
@@ -4904,9 +4771,6 @@ dynSparseMatrix::Singular_display(int block, int Size)
rhs[0] = mxCreateDoubleMatrix(Size, Size, mxREAL);
double *pind;
pind = mxGetPr(rhs[0]);
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int j = 0; j < Size * Size; j++)
pind[j] = 0.0;
for (int ii = 0; ii < Size; ii++)
@@ -5233,9 +5097,6 @@ dynSparseMatrix::Solve_ByteCode_Sparse_GaussianElimination(int Size, int blck, i
}
}
double slowc_lbx = slowc;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size; i++)
ya[i+it_*y_size] = y[i+it_*y_size];
@@ -5844,9 +5705,6 @@ dynSparseMatrix::Solve_ByteCode_Symbolic_Sparse_GaussianElimination(int Size, bo
/*The backward substitution*/
double slowc_lbx = slowc;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
ya[i] = y[i];
slowc_save = slowc;
@@ -5863,9 +5721,6 @@ dynSparseMatrix::Grad_f_product(int n, mxArray *b_m, double* vectr, mxArray *A_m
if ((solve_algo == 5 && steady_state) || (stack_solve_algo == 5 && !steady_state))
{
NonZeroElem *first;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) private(first)
-#endif
for (int i = 0; i < n; i++)
{
double sum = 0;
@@ -5913,9 +5768,6 @@ dynSparseMatrix::Grad_f_product(int n, mxArray *b_m, double* vectr, mxArray *A_m
}
}
memset(vectr, 0, n * sizeof(double));
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) /*shared(vectr)*/
-#endif
for (int i = 0; i < n; i++)
for (SuiteSparse_long j = Ap[i]; j < Ap[i+1]; j++)
vectr[Ai[j]] += Ax[j] * b_[i];
@@ -5934,9 +5786,6 @@ dynSparseMatrix::Check_and_Correct_Previous_Iteration(int block_num, int y_size,
{
prev_slowc_save = slowc_save;
slowc_save /= 1.1;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < size; i++)
{
int eq = index_vara[i];
@@ -5952,9 +5801,6 @@ dynSparseMatrix::Check_and_Correct_Previous_Iteration(int block_num, int y_size,
{
prev_slowc_save = slowc_save;
slowc_save /= 1.5;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < size; i++)
{
int eq = index_vara[i];
@@ -5979,9 +5825,6 @@ dynSparseMatrix::Check_and_Correct_Previous_Iteration(int block_num, int y_size,
double *p = (double*)mxMalloc(size * sizeof(double));
Grad_f_product(size, b_m_save, p, A_m_save, Ap_save, Ai_save, Ax_save, b_save);
double slope=0.0;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS"))) reduction(+:slope)
-#endif
for (int i = 1; i < size; i++)
slope += - direction[i] * p[i];
/*if (slope > 0)
@@ -6037,9 +5880,6 @@ dynSparseMatrix::Check_and_Correct_Previous_Iteration(int block_num, int y_size,
prev_slowc_save = slowc_save;
glambda2 = crit_opt;
try_at_iteration++;
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < size; i++)
{
int eq = index_vara[i];
@@ -6051,10 +5891,7 @@ dynSparseMatrix::Check_and_Correct_Previous_Iteration(int block_num, int y_size,
mxFree(p);
}
//if (print_it)
- mexPrintf("Error: Simulation diverging, trying to correct it using slowc=%f\n", slowc_save);
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
+ mexPrintf("Error: Simulation diverging, trying to correct it using slowc=%f\n", slowc_save);
for (int i = 0; i < size; i++)
{
int eq = index_vara[i];
@@ -6222,9 +6059,6 @@ dynSparseMatrix::Simulate_One_Boundary(int block_num, int y_size, int y_kmin, in
}
if (zero_solution)
{
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < size; i++)
{
int eq = index_vara[i];
@@ -6467,9 +6301,6 @@ dynSparseMatrix::Simulate_Newton_Two_Boundaries(int blck, int y_size, int y_kmin
try_at_iteration++;
if (slowc_save <= bottom)
{
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
y[i] = ya[i]+direction[i];
g0 = res2;
@@ -6491,9 +6322,6 @@ dynSparseMatrix::Simulate_Newton_Two_Boundaries(int blck, int y_size, int y_kmin
else
mexPrintf("Simulation diverging, trying to correct it using slowc=%f\n", slowc_save);
}
-#ifdef USE_OMP
-#pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
-#endif
for (int i = 0; i < y_size*(periods+y_kmin); i++)
y[i] = ya[i]+slowc_save*direction[i];
iter--;
diff --git a/mex/sources/bytecode/bytecode.cc b/mex/sources/bytecode/bytecode.cc
index 56ec734fd..018a384b5 100644
--- a/mex/sources/bytecode/bytecode.cc
+++ b/mex/sources/bytecode/bytecode.cc
@@ -794,17 +794,10 @@ main(int nrhs, const char *prhs[])
direction = (double *) mxMalloc(size_of_direction);
memset(direction, 0, size_of_direction);
double *x = (double *) mxMalloc(col_x*row_x*sizeof(double));
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (i = 0; i < row_x*col_x; i++)
{
x[i] = double (xd[i]);
}
-
- #ifdef USE_OMP
- #pragma omp parallel for num_threads(atoi(getenv("DYNARE_NUM_THREADS")))
- #endif
for (i = 0; i < row_y*col_y; i++)
{
y[i] = double (yd[i]);
diff --git a/preprocessor/DynareMain.cc b/preprocessor/DynareMain.cc
index 79201e391..f62f60399 100644
--- a/preprocessor/DynareMain.cc
+++ b/preprocessor/DynareMain.cc
@@ -36,7 +36,7 @@ using namespace std;
Splitting main() in two parts was necessary because ParsingDriver.h and MacroDriver.h can't be
included simultaneously (because of Bison limitations).
*/
-void main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console,
+void main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive,
bool parallel, const string ¶llel_config_file, const string &cluster_name, bool parallel_slave_open_mode,
bool parallel_test
#if defined(_WIN32) || defined(__CYGWIN32__)
@@ -48,7 +48,7 @@ void
usage()
{
cerr << "Dynare usage: dynare mod_file [debug] [noclearall] [savemacro[=macro_file]] [onlymacro] [nolinemacro] [notmpterms] [nolog] [warn_uninit]"
- << " [console] [parallel[=cluster_name]] [conffile=parallel_config_path_and_filename] [parallel_slave_open_mode] [parallel_test] "
+ << " [console] [nograph] [nointeractive] [parallel[=cluster_name]] [conffile=parallel_config_path_and_filename] [parallel_slave_open_mode] [parallel_test] "
<< " [-D[=]]"
#if defined(_WIN32) || defined(__CYGWIN32__)
<< " [cygwin] [msvc]"
@@ -84,6 +84,8 @@ main(int argc, char **argv)
bool no_warn = false;
bool warn_uninit = false;
bool console = false;
+ bool nograph = false;
+ bool nointeractive = false;
#if defined(_WIN32) || defined(__CYGWIN32__)
bool cygwin = false;
bool msvc = false;
@@ -129,6 +131,10 @@ main(int argc, char **argv)
warn_uninit = true;
else if (!strcmp(argv[arg], "console"))
console = true;
+ else if (!strcmp(argv[arg], "nograph"))
+ nograph = true;
+ else if (!strcmp(argv[arg], "nointeractive"))
+ nointeractive = true;
#if defined(_WIN32) || defined(__CYGWIN32__)
else if (!strcmp(argv[arg], "cygwin"))
cygwin = true;
@@ -221,7 +227,7 @@ main(int argc, char **argv)
return EXIT_SUCCESS;
// Do the rest
- main2(macro_output, basename, debug, clear_all, no_tmp_terms, no_log, no_warn, warn_uninit, console,
+ main2(macro_output, basename, debug, clear_all, no_tmp_terms, no_log, no_warn, warn_uninit, console, nograph, nointeractive,
parallel, parallel_config_file, cluster_name, parallel_slave_open_mode, parallel_test
#if defined(_WIN32) || defined(__CYGWIN32__)
, cygwin, msvc
diff --git a/preprocessor/DynareMain2.cc b/preprocessor/DynareMain2.cc
index f50436f5c..aed6e4e6a 100644
--- a/preprocessor/DynareMain2.cc
+++ b/preprocessor/DynareMain2.cc
@@ -26,7 +26,7 @@ using namespace std;
#include "ConfigFile.hh"
void
-main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console,
+main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tmp_terms, bool no_log, bool no_warn, bool warn_uninit, bool console, bool nograph, bool nointeractive,
bool parallel, const string ¶llel_config_file, const string &cluster_name, bool parallel_slave_open_mode,
bool parallel_test
#if defined(_WIN32) || defined(__CYGWIN32__)
@@ -58,7 +58,7 @@ main2(stringstream &in, string &basename, bool debug, bool clear_all, bool no_tm
mod_file->computingPass(no_tmp_terms);
// Write outputs
- mod_file->writeOutputFiles(basename, clear_all, no_log, no_warn, console, config_file
+ mod_file->writeOutputFiles(basename, clear_all, no_log, no_warn, console, nograph, nointeractive, config_file
#if defined(_WIN32) || defined(__CYGWIN32__)
, cygwin, msvc
#endif
diff --git a/preprocessor/ModFile.cc b/preprocessor/ModFile.cc
index d8a6e2c1e..13a7641f9 100644
--- a/preprocessor/ModFile.cc
+++ b/preprocessor/ModFile.cc
@@ -455,7 +455,7 @@ ModFile::computingPass(bool no_tmp_terms)
}
void
-ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, const ConfigFile &config_file
+ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, bool nograph, bool nointeractive, const ConfigFile &config_file
#if defined(_WIN32) || defined(__CYGWIN32__)
, bool cygwin, bool msvc
#endif
@@ -509,7 +509,12 @@ ModFile::writeOutputFiles(const string &basename, bool clear_all, bool no_log, b
if (console)
mOutputFile << "options_.console_mode = 1;" << endl
<< "options_.nodisplay = 1;" << endl;
+ if (nograph)
+ mOutputFile << "options_.nograph = 1;" << endl;
+ if (nointeractive)
+ mOutputFile << "options_.nointeractive = 1;" << endl;
+
cout << "Processing outputs ...";
symbol_table.writeOutput(mOutputFile);
diff --git a/preprocessor/ModFile.hh b/preprocessor/ModFile.hh
index aa7ccc616..28a4a2f43 100644
--- a/preprocessor/ModFile.hh
+++ b/preprocessor/ModFile.hh
@@ -127,10 +127,12 @@ public:
\param basename The base name used for writing output files. Should be the name of the mod file without its extension
\param clear_all Should a "clear all" instruction be written to output ?
\param console Are we in console mode ?
+ \param nograph Should we build the figures?
+ \param nointeractive Should Dynare request user input?
\param cygwin Should the MEX command of use_dll be adapted for Cygwin?
\param msvc Should the MEX command of use_dll be adapted for MSVC?
*/
- void writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, const ConfigFile &config_file
+ void writeOutputFiles(const string &basename, bool clear_all, bool no_log, bool no_warn, bool console, bool nograph, bool nointeractive, const ConfigFile &config_file
#if defined(_WIN32) || defined(__CYGWIN32__)
, bool cygwin, bool msvc
#endif