diff --git a/src/@dates/intersect.m b/src/@dates/intersect.m index 32bf54ad4e4e7a71a3f37eb10445410784697c5f..2fd6da980f7846969b2b572f06008f5b7cd22f41 100644 --- a/src/@dates/intersect.m +++ b/src/@dates/intersect.m @@ -38,14 +38,7 @@ if ~isequal(o.freq, p.freq) return end -% Octave 6.1.0 added support for the 'legacy' option, but it was buggy. -% The problem should be fixed in Octave 6.2.0. -% See: https://savannah.gnu.org/bugs/?59708 -if isoctave && octave_ver_less_than('6.2') - time = intersect(o.time, p.time); -else - time = intersect(o.time, p.time, 'legacy'); -end +time = intersect(o.time, p.time, 'legacy'); q = dates(); if isempty(time) diff --git a/src/@dates/remove_.m b/src/@dates/remove_.m index 3adeaf0e4773c7c98b5027c848a1aa80986f9af4..92cca59eaad4989d512a63bcbcab9b54eaf97e02 100644 --- a/src/@dates/remove_.m +++ b/src/@dates/remove_.m @@ -42,11 +42,7 @@ if ~isequal(o.freq, p.freq) error('dates:remove', 'Inputs must have common frequency.') end -if isoctave && octave_ver_less_than('6') - time = setdiff(o.time, p.time); -else - time = setdiff(o.time, p.time, 'legacy'); -end +time = setdiff(o.time, p.time, 'legacy'); o.time = time; @@ -180,4 +176,4 @@ if t(1) end T = all(t); -%@eof:7 \ No newline at end of file +%@eof:7 diff --git a/src/@dates/setdiff.m b/src/@dates/setdiff.m index f93c86bd9a592b44a15ac8690048c9e78d7d2367..17b2f7e14087d2407737604c12408d8ebc74e74f 100644 --- a/src/@dates/setdiff.m +++ b/src/@dates/setdiff.m @@ -48,18 +48,10 @@ if isequal(o.length(), p.length()) && isequal(o, p) return end -if isoctave && octave_ver_less_than('6') - if nargout<2 - time = setdiff(o.time, p.time); - else - [time, io] = setdiff(o.time, p.time); - end +if nargout<2 + time = setdiff(o.time, p.time, 'legacy'); else - if nargout<2 - time = setdiff(o.time, p.time, 'legacy'); - else - [time, io] = setdiff(o.time, p.time, 'legacy'); - end + [time, io] = setdiff(o.time, p.time, 'legacy'); end q = dates(o.freq); @@ -182,4 +174,4 @@ if t(1) t(2) = isequal(c1, d3); end T = all(t); -%@eof:6 \ No newline at end of file +%@eof:6 diff --git a/src/@dates/unique_.m b/src/@dates/unique_.m index 889992ca9534fe01cecd42d903ac1c23cdbc0c4f..048b35f514d55826e4b4e55dc94edfb0f0426326 100644 --- a/src/@dates/unique_.m +++ b/src/@dates/unique_.m @@ -30,11 +30,7 @@ if o.ndat()<=1 return end -if isoctave && octave_ver_less_than('6') - [~, id] = unique(o.time); -else - [~, id] = unique(o.time(:,1), 'legacy'); -end +[~, id] = unique(o.time(:,1), 'legacy'); o.time = o.time(sort(id)); diff --git a/src/initialize_dseries_class.m b/src/initialize_dseries_class.m index c445ae189ea81803c3dd96443a2f81537bd926db..869399485d5081790f6ba33ff1bb19e2430f9af3 100644 --- a/src/initialize_dseries_class.m +++ b/src/initialize_dseries_class.m @@ -1,6 +1,6 @@ function initialize_dseries_class() -% Copyright © 2015-2020 Dynare Team +% Copyright © 2015-2021 Dynare Team % % This code is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by @@ -111,4 +111,12 @@ if isempty(select_x13_binary(true)) rmpath([dseries_src_root 'utilities/x13']); end +% The following version requirement should not be stricter than the one in +% Dynare (matlab/dynare.m and mex/build/octave/configure.ac) +if isoctave && octave_ver_less_than('6.2.0') + skipline() + warning(['This version of dseries has only been tested on Octave 6.2.0 and above. It may fail to run or give unexpected result. Consider upgrading your version of Octave.']) + skipline() +end + assignin('caller', 'dseries_src_root', dseries_src_root); diff --git a/src/utilities/convert/convert_mdbnomics.m b/src/utilities/convert/convert_mdbnomics.m index 2d489ea066218b6b57cc4a0e4d1e2b29de1cbcc4..813b5f3dc7de33219a1e8bfa0bc904f064c148cc 100644 --- a/src/utilities/convert/convert_mdbnomics.m +++ b/src/utilities/convert/convert_mdbnomics.m @@ -6,7 +6,7 @@ function ds = convert_mdbnomics(o) % OUTPUTS % - ds [dseries] -% Copyright (C) 2020 Dynare Team +% Copyright (C) 2020-2021 Dynare Team % % This code is free software: you can redistribute it and/or modify % it under the terms of the GNU General Public License as published by @@ -29,21 +29,13 @@ end ds = dseries(); % Check for multiple datasets -if isoctave && octave_ver_less_than('6') - dataset_codes = unique(o.data(:,o.col_idx.dataset_code)); -else - dataset_codes = unique(o.data(:,o.col_idx.dataset_code),'stable'); -end +dataset_codes = unique(o.data(:,o.col_idx.dataset_code),'stable'); % Convert mdbnomics to dseries for ii = 1:length(dataset_codes) % Slice data for dataset ds_dataset = o.data(strcmp(o.data(:,o.col_idx.dataset_code),dataset_codes{ii}),:); - if isoctave && octave_ver_less_than('6') - series_codes = unique(ds_dataset(:,o.col_idx.series_code)); - else - series_codes = unique(ds_dataset(:,o.col_idx.series_code),'stable'); - end + series_codes = unique(ds_dataset(:,o.col_idx.series_code),'stable'); % Get list of variable names list_of_names = cellfun(@(x)regexprep(x, '[^a-zA-Z0-9]', '_'), series_codes, 'UniformOutput', false); % Get dataset values @@ -90,11 +82,7 @@ end % Add tags to the variables if length(dataset_codes) > 1 - if isoctave && octave_ver_less_than('6') - series_codes = unique(o.data(:,o.col_idx.series_code)); - else - series_codes = unique(o.data(:,o.col_idx.series_code),'stable'); - end + series_codes = unique(o.data(:,o.col_idx.series_code),'stable'); list_of_names = cellfun(@(x)regexprep(x, '[^a-zA-Z0-9]', '_'), series_codes, 'UniformOutput', false); series_length = cell2mat(cellfun(@(x)length(find(strcmp(x, o.data(:,o.col_idx.series_code)))), series_codes, 'UniformOutput', false)); end