Merge branch 'master' into fix-mcmc-algorithm

time-shift
Stéphane Adjemian (Scylla) 2013-11-26 16:53:27 +01:00
commit b8c6e4bb01
13 changed files with 44 additions and 35 deletions

View File

@ -2635,17 +2635,19 @@ Use @code{fsolve} (under MATLAB, only available if you have the
Optimization Toolbox; always available under Octave) Optimization Toolbox; always available under Octave)
@item 1 @item 1
Use Dynare's own nonlinear equation solver Use Dynare's own nonlinear equation solver (a Newton-like algorithm with
line-search)
@item 2 @item 2
Splits the model into recursive blocks and solves each block in turn Splits the model into recursive blocks and solves each block in turn
using the same solver as value @code{1}
@item 3 @item 3
Use Chris Sims' solver Use Chris Sims' solver
@item 4 @item 4
Similar to value @code{2}, except that it deals differently with Same as value @code{2}, except that it does not try to adapt the
nearly singular Jacobian search direction when the Jacobian is nearly singular
@item 5 @item 5
Newton algorithm with a sparse Gaussian elimination (SPE) (requires Newton algorithm with a sparse Gaussian elimination (SPE) (requires

View File

@ -140,7 +140,7 @@ switch nargin
ts.vobs = length(varlist); ts.vobs = length(varlist);
ts.nobs = size(data,1); ts.nobs = size(data,1);
if isempty(tex) if isempty(tex)
ts.tex = name2tex(varlist,1); ts.tex = name2tex(varlist);
else else
ts.tex = tex; ts.tex = tex;
end end
@ -150,7 +150,7 @@ switch nargin
ts.freq = 1; ts.freq = 1;
ts.init = dates(1,1); ts.init = dates(1,1);
ts.name = default_name(ts.vobs); ts.name = default_name(ts.vobs);
ts.tex = name2tex(ts.name,1); ts.tex = name2tex(ts.name);
end end
case {2,3,4} case {2,3,4}
a = varargin{1}; a = varargin{1};

View File

@ -174,7 +174,7 @@ if withtime
if isnumeric(tmp) && isint(tmp) if isnumeric(tmp) && isint(tmp)
tmp = [num2str(tmp) 'Y']; tmp = [num2str(tmp) 'Y'];
end end
if isdate(tmp) if ~isdate(tmp)
error('load_csv_file_data:: Formatting error. I can''t read the dates!') error('load_csv_file_data:: Formatting error. I can''t read the dates!')
end end
init = dates(tmp); init = dates(tmp);

View File

@ -64,7 +64,7 @@ end
x = 1:1:dd.ndat; x = 1:1:dd.ndat;
xlim([1 dd.ndat]); xlim([1 dd.ndat]);
xlabels = getDatesCellStringArray(dd); xlabels = strings(dd);
if ~isempty(o.yrange) if ~isempty(o.yrange)
ylim(o.yrange); ylim(o.yrange);
@ -81,10 +81,10 @@ if o.showZeroline
end end
if ~isempty(o.shade) if ~isempty(o.shade)
x1 = find(strcmpi(o.shade(1).format(), xlabels)); x1 = find(strcmpi(date2string(o.shade(1)), xlabels));
x2 = find(strcmpi(o.shade(o.shade.ndat).format(), xlabels)); x2 = find(strcmpi(date2string(o.shade(end)), xlabels));
assert(~isempty(x1) && ~isempty(x2), ['@graph.createGraph: either ' ... assert(~isempty(x1) && ~isempty(x2), ['@graph.createGraph: either ' ...
o.shade(1).format() ' or ' o.shade(o.shade.ndat).format() ' is not in the date ' ... date2string(o.shade(1)) ' or ' date2string(o.shade(end)) ' is not in the date ' ...
'range of data selected.']); 'range of data selected.']);
yrange = get(gca, 'YLim'); yrange = get(gca, 'YLim');

View File

@ -64,7 +64,7 @@ assert(isempty(xrange) || isa(xrange, 'dates'));
assert(isfloat(o.zerotol), '@report_series.write: zerotol must be a float'); assert(isfloat(o.zerotol), '@report_series.write: zerotol must be a float');
%% %%
if isempty(xrange) || xrange == o.data.time if isempty(xrange) || xrange == o.data.dates
ds = o.data; ds = o.data;
else else
ds = o.data(xrange); ds = o.data(xrange);

View File

@ -19,5 +19,5 @@ function dd = getRange(o)
% along with Dynare. If not, see <http://www.gnu.org/licenses/>. % along with Dynare. If not, see <http://www.gnu.org/licenses/>.
assert(~isempty(o.data) && size(o.data, 2) == 1); assert(~isempty(o.data) && size(o.data, 2) == 1);
dd = o.data.time; dd = o.data.dates;
end end

View File

@ -97,7 +97,7 @@ end
% Calculate and display annual averages % Calculate and display annual averages
for i=1:length(yrsForAvgs) for i=1:length(yrsForAvgs)
slice = o.data(dynDate([num2str(yrsForAvgs(i)) 'q1']):dynDate([num2str(yrsForAvgs(i)) 'q4'])); slice = o.data(dates([num2str(yrsForAvgs(i)) 'q1']):dates([num2str(yrsForAvgs(i)) 'q4']));
avg = sum(slice.data)/size(slice); avg = sum(slice.data)/size(slice);
fprintf(fid, '&'); fprintf(fid, '&');
if o.tableShowMarkers if o.tableShowMarkers

View File

@ -86,8 +86,8 @@ assert(isempty(o.data) || isa(o.data, 'dseries'), ...
'@report_table.report_table: data must be a dseries'); '@report_table.report_table: data must be a dseries');
assert(isempty(o.seriesToUse) || iscellstr(o.seriesToUse), ... assert(isempty(o.seriesToUse) || iscellstr(o.seriesToUse), ...
'@report_table.report_table: seriesToUse must be a cell array of string(s)'); '@report_table.report_table: seriesToUse must be a cell array of string(s)');
assert(isempty(o.vlineAfter) || isa(o.vlineAfter, 'dynDate'), ... assert(isempty(o.vlineAfter) || isa(o.vlineAfter, 'dates'), ...
'@report_table.report_table: vlineAfter must be a dynDate'); '@report_table.report_table: vlineAfter must be a dates');
if o.showVlines if o.showVlines
o.vlineAfter = ''; o.vlineAfter = '';
end end

View File

@ -19,8 +19,8 @@ function dd = getMaxRange(o)
% along with Dynare. If not, see <http://www.gnu.org/licenses/>. % along with Dynare. If not, see <http://www.gnu.org/licenses/>.
ne = numSeriesElements(o); ne = numSeriesElements(o);
ddmin = dynDate(); ddmin = dates();
ddmax = dynDate(); ddmax = dates();
for i=1:ne for i=1:ne
a = getSeriesElements(o, i); a = getSeriesElements(o, i);
ddt = a.getRange(); ddt = a.getRange();

View File

@ -68,7 +68,7 @@ for i=1:length(fields)
elseif isobject(val) elseif isobject(val)
if isa(val, 'dates') if isa(val, 'dates')
fprintf('<dates: %s, ..., %s>', ... fprintf('<dates: %s, ..., %s>', ...
val(1).format, val(end).format); date2string(val(1)), date2string(val(end)));
elseif isa(val, 'dseries') elseif isa(val, 'dseries')
if numel(val) == 1 if numel(val) == 1
fprintf('<dseries: %s>', val.name{1}); fprintf('<dseries: %s>', val.name{1});

View File

@ -31,7 +31,11 @@ if info
end end
end end
tex = regexprep(name, '_', '\\_'); if isoctave
tex = regexprep(name, '_', '\_');
else
tex = regexprep(name, '_', '\\_');
end
if info if info
for i=1:nn for i=1:nn

View File

@ -74,6 +74,9 @@ for i=1:nn
fprintf(tid,['try\n']); fprintf(tid,['try\n']);
for j=b1(i):b2(i) for j=b1(i):b2(i)
str = sprintf('%s \n',file{j}(4:end)); str = sprintf('%s \n',file{j}(4:end));
if isoctave
str = regexprep(str, '%', '%%');
end
fprintf(tid,str); fprintf(tid,str);
end end
fprintf(tid,['LOG = NaN;\n']); fprintf(tid,['LOG = NaN;\n']);

View File

@ -17,11 +17,11 @@ function runDynareReport(dc_a, dc_q, db_a, db_q)
% along with Dynare. If not, see <http://www.gnu.org/licenses/>. % along with Dynare. If not, see <http://www.gnu.org/licenses/>.
larange= dynDate('2007'):dynDate('2014'); larange= dates('2007a'):dates('2014a');
arange = dynDate('2012'):dynDate('2014'); arange = dates('2012a'):dates('2014a');
trange = dynDate('2012q2'):dynDate('2014q4'); trange = dates('2012q2'):dates('2014q4');
prange = dynDate('2007q1'):dynDate('2013q4'); prange = dates('2007q1'):dates('2013q4');
forecast_date = dynDate('2012q2'); forecast_date = dates('2012q2');
srange = forecast_date:prange(end); srange = forecast_date:prange(end);
shortNames = {'US', 'EU', 'JA', 'EA6', 'LA6', 'RC6'}; shortNames = {'US', 'EU', 'JA', 'EA6', 'LA6', 'RC6'};
@ -40,13 +40,13 @@ rep = rep.addVspace();
% Table 1 % Table 1
rep = rep.addTable('title', 'Real GDP Growth', 'range', larange, ... rep = rep.addTable('title', 'Real GDP Growth', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
rep = AnnualTable(rep, db_a, dc_a, 'PCH_GROWTH4_', larange); rep = AnnualTable(rep, db_a, dc_a, 'PCH_GROWTH4_', larange);
rep = rep.addVspace('number', 2); rep = rep.addVspace('number', 2);
% Table 2 % Table 2
rep = rep.addTable('title', 'Potential GDP Growth', 'range', larange, ... rep = rep.addTable('title', 'Potential GDP Growth', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
rep = AnnualTable(rep, db_a, dc_a, 'PCH_GROWTH4_BAR_', larange); rep = AnnualTable(rep, db_a, dc_a, 'PCH_GROWTH4_BAR_', larange);
@ -58,13 +58,13 @@ rep = rep.addVspace();
% Table 1 % Table 1
rep = rep.addTable('title', 'Headline CPI Inflation', 'range', larange, ... rep = rep.addTable('title', 'Headline CPI Inflation', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_', larange); rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_', larange);
rep = rep.addVspace('number', 2); rep = rep.addVspace('number', 2);
% Table 2 % Table 2
rep = rep.addTable('title', 'Core CPI Inflation', 'range', larange, ... rep = rep.addTable('title', 'Core CPI Inflation', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIEX4_', larange); rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIEX4_', larange);
@ -76,13 +76,13 @@ rep = rep.addVspace();
% Table 1 % Table 1
rep = rep.addTable('title', 'Gas Inflation', 'range', larange, ... rep = rep.addTable('title', 'Gas Inflation', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_GAS_', larange); rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_GAS_', larange);
rep = rep.addVspace('number', 2); rep = rep.addVspace('number', 2);
% Table 2 % Table 2
rep = rep.addTable('title', 'Food Inflation', 'range', larange, ... rep = rep.addTable('title', 'Food Inflation', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_CONSFOOD_', larange); rep = AnnualTable(rep, db_a, dc_a, 'PCH_PIE4_CONSFOOD_', larange);
@ -94,13 +94,13 @@ rep = rep.addVspace();
% Table 1 % Table 1
rep = rep.addTable('title', 'Nominal Interest Rate', 'range', larange, ... rep = rep.addTable('title', 'Nominal Interest Rate', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
rep = AnnualTable(rep, db_a, dc_a, 'RS_', larange); rep = AnnualTable(rep, db_a, dc_a, 'RS_', larange);
rep = rep.addVspace('number', 2); rep = rep.addVspace('number', 2);
% Table 2 % Table 2
rep = rep.addTable('title', 'Output Gap', 'range', larange, ... rep = rep.addTable('title', 'Output Gap', 'range', larange, ...
'vlineAfter', dynDate('2011')); 'vlineAfter', dates('2011y'));
db_a = db_a.tex_rename('Y_WORLD', 'World'); db_a = db_a.tex_rename('Y_WORLD', 'World');
rep = rep.addSeries('data', db_a{'Y_WORLD'}); rep = rep.addSeries('data', db_a{'Y_WORLD'});
delta = db_a{'Y_WORLD'}-dc_a{'Y_WORLD'}; delta = db_a{'Y_WORLD'}-dc_a{'Y_WORLD'};
@ -120,7 +120,7 @@ for i=1:length(shortNames)
rep = rep.addPage('title', 'Jan1 vs Jan2', ... rep = rep.addPage('title', 'Jan1 vs Jan2', ...
'titleFormat', '\large\bfseries'); 'titleFormat', '\large\bfseries');
rep = rep.addSection(); rep = rep.addSection();
rep = CountryTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, trange, dynDate('2012q2')); rep = CountryTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, trange, dates('2012q2'));
end end
%% Residual Reports %% Residual Reports
@ -129,14 +129,14 @@ for i=1:length(shortNames)
rep = rep.addPage('title', 'Residual Report Jan1 vs Jan2', ... rep = rep.addPage('title', 'Residual Report Jan1 vs Jan2', ...
'titleFormat', '\large\bfseries'); 'titleFormat', '\large\bfseries');
rep = rep.addSection(); rep = rep.addSection();
rep = ResidTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, trange, dynDate('2012q2')); rep = ResidTablePage(rep, shortNames{i}, longNames{i}, db_q, dc_q, trange, dates('2012q2'));
end end
% Commodities % Commodities
rep = rep.addPage('title', 'Residual Report Jan1 vs Jan2', ... rep = rep.addPage('title', 'Residual Report Jan1 vs Jan2', ...
'titleFormat', '\large\bfseries'); 'titleFormat', '\large\bfseries');
rep = rep.addSection(); rep = rep.addSection();
rep = CommResidTablePage(rep, db_q, dc_q, trange, dynDate('2012q2')); rep = CommResidTablePage(rep, db_q, dc_q, trange, dates('2012q2'));
%% Commodities Graphs %% Commodities Graphs
%Page 1 %Page 1