From c2073c821307b69c47ebc3af472d8b750fe3dbf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Villemot?= <sebastien@dynare.org> Date: Fri, 10 Apr 2020 14:01:42 +0200 Subject: [PATCH] Remove unneeded replacement functions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit — strsplit and strjoin are in MATLAB R2014a, which is our new baseline — the other functions are unused --- src/initialize_mdbnomics.m | 24 ---- src/missing/get_cells_id/get_cells_id.m | 22 --- .../get_file_extension/get_file_extension.m | 36 ----- src/missing/iscolumn/iscolumn.m | 20 --- src/missing/isint/isint.m | 129 ------------------ src/missing/isrow/isrow.m | 20 --- src/missing/strjoin/strjoin.m | 63 --------- src/missing/strsplit/private/ischarint.m | 27 ---- src/missing/strsplit/private/ischarnum.m | 35 ----- src/missing/strsplit/strsplit.m | 90 ------------ 10 files changed, 466 deletions(-) delete mode 100644 src/missing/get_cells_id/get_cells_id.m delete mode 100644 src/missing/get_file_extension/get_file_extension.m delete mode 100644 src/missing/iscolumn/iscolumn.m delete mode 100644 src/missing/isint/isint.m delete mode 100644 src/missing/isrow/isrow.m delete mode 100644 src/missing/strjoin/strjoin.m delete mode 100644 src/missing/strsplit/private/ischarint.m delete mode 100644 src/missing/strsplit/private/ischarnum.m delete mode 100644 src/missing/strsplit/strsplit.m diff --git a/src/initialize_mdbnomics.m b/src/initialize_mdbnomics.m index 34ef027..a0ff859 100644 --- a/src/initialize_mdbnomics.m +++ b/src/initialize_mdbnomics.m @@ -28,22 +28,6 @@ if ~exist('OCTAVE_VERSION', 'builtin') || ~exist('contains','builtin') p{end+1} = 'missing/contains'; end -if ~exist('get_file_extension','file') - p{end+1} = 'missing/get_cells_id'; -end - -if ~exist('get_file_extension','file') - p{end+1} = 'missing/get_file_extension'; -end - -if ~exist('iscolumn','builtin') - p{end+1} = 'missing/iscolumn'; -end - -if ~exist('isint','file') - p{end+1} = 'missing/isint'; -end - if ~exist('isoctave','file') p{end+1} = 'missing/isoctave'; end @@ -52,14 +36,6 @@ if ~exist('matlab_ver_less_than','file') p{end+1} = 'missing/matlab_ver_less_than'; end -if ~exist('OCTAVE_VERSION', 'builtin') && ~exist('strsplit','file') - p{end+1} = 'missing/strsplit'; -end - -if ~exist('OCTAVE_VERSION', 'builtin') && ~exist('strjoin','file') - p{end+1} = 'missing/strjoin'; -end - if exist('OCTAVE_VERSION', 'builtin') && ~exist('user_has_octave_forge_package','file') p{end+1} = 'missing/user_has_octave_forge_package'; end diff --git a/src/missing/get_cells_id/get_cells_id.m b/src/missing/get_cells_id/get_cells_id.m deleted file mode 100644 index c11c8a0..0000000 --- a/src/missing/get_cells_id/get_cells_id.m +++ /dev/null @@ -1,22 +0,0 @@ -function [B,C] = get_cells_id(str,sep) - -% Copyright (C) 2012-2017 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 <http://www.gnu.org/licenses/>. - -sep_locations = transpose(strfind(str,sep)); -B = [1; sep_locations+1]; -C = [sep_locations-1; length(str)]; \ No newline at end of file diff --git a/src/missing/get_file_extension/get_file_extension.m b/src/missing/get_file_extension/get_file_extension.m deleted file mode 100644 index dad9ee0..0000000 --- a/src/missing/get_file_extension/get_file_extension.m +++ /dev/null @@ -1,36 +0,0 @@ -function ext = get_file_extension(file) - -% returns the extension of a file. -% -% INPUTS -% o file string, name of the file -% -% OUTPUTS -% o ext string, extension. -% -% REMARKS -% If the provided file name has no extension, the routine will return an empty array. - -% Copyright (C) 2013-2017 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 <http://www.gnu.org/licenses/>. - -[dir, fname, ext] = fileparts(file); - -if ~isempty(ext) - % Removes the leading dot. - ext = ext(2:end); -end \ No newline at end of file diff --git a/src/missing/iscolumn/iscolumn.m b/src/missing/iscolumn/iscolumn.m deleted file mode 100644 index 0264efe..0000000 --- a/src/missing/iscolumn/iscolumn.m +++ /dev/null @@ -1,20 +0,0 @@ -function r = iscolumn(V) -% Copyright (C) 2018 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 <http://www.gnu.org/licenses/>. - -sz = size(V); -r = (length(sz) == 2) && (sz(2) == 1); diff --git a/src/missing/isint/isint.m b/src/missing/isint/isint.m deleted file mode 100644 index f01a016..0000000 --- a/src/missing/isint/isint.m +++ /dev/null @@ -1,129 +0,0 @@ -function [l,c,d] = isint(a) % --*-- Unitary tests --*-- - -% This function tests if the input argument is an integer. -% -% INPUT -% - a [double] m*n matrix. -% -% OUTPUT -% - l [logical] m*n matrix of true and false (1 and 0). l(i,j)=true if a(i,j) is an integer. -% - c [integer] p*1 vector of indices pointing to the integer elements of a. -% - d [integer] q*1 vector of indices pointing to the non integer elements of a. -% -% REMARKS -% p+q is equal to the product of m by n. - -% Copyright (C) 2009-2017 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 -% the Free Software Foundation, either version 3 of the License, or -% (at your option) any later version. -% -% Dynare dates submodule 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 <http://www.gnu.org/licenses/>. - -if ~isnumeric(a) - l = false; - if nargout>1 - c = []; - d = []; - end - return -end - -l = abs(fix(a)-a)<1e-15; - -if nargout>1 - c = find(l==true); - d = find(l==false); -end - -%@test:1 -%$ a = 1938; -%$ try -%$ boolean = isint(a); -%$ t(1) = true; -%$ catch -%$ t(1) = false; -%$ end -%$ -%$ if t(1) -%$ t(2) = dassert(boolean, true); -%$ end -%$ -%$ T = all(t); -%@eof:1 - -%@test:2 -%$ a = pi; -%$ try -%$ boolean = isint(a); -%$ t(1) = true; -%$ catch -%$ t(1) = false; -%$ end -%$ -%$ if t(1) -%$ t(2) = dassert(boolean, false); -%$ end -%$ -%$ T = all(t); -%@eof:2 - -%@test:3 -%$ a = '1'; -%$ try -%$ boolean = isint(a); -%$ t(1) = true; -%$ catch -%$ t(1) = false; -%$ end -%$ -%$ if t(1) -%$ t(2) = dassert(boolean, false); -%$ end -%$ -%$ T = all(t); -%@eof:3 - -%@test:4 -%$ a = [1; 2; 3]; -%$ try -%$ [boolean, iV, iF] = isint(a); -%$ t(1) = true; -%$ catch -%$ t(1) = false; -%$ end -%$ -%$ if t(1) -%$ t(2) = dassert(all(boolean), true); -%$ t(3) = dassert(isequal(iV, [1; 2; 3]), true); -%$ t(4) = dassert(isempty(iF), true); -%$ end -%$ -%$ T = all(t); -%@eof:4 - -%@test:5 -%$ a = [1; pi; 3]; -%$ try -%$ [boolean, iV, iF] = isint(a); -%$ t(1) = true; -%$ catch -%$ t(1) = false; -%$ end -%$ -%$ if t(1) -%$ t(2) = dassert(all(boolean), false); -%$ t(3) = dassert(isequal(iV, [1; 3]), true); -%$ t(4) = dassert(isequal(iF, 2), true); -%$ end -%$ -%$ T = all(t); -%@eof:5 \ No newline at end of file diff --git a/src/missing/isrow/isrow.m b/src/missing/isrow/isrow.m deleted file mode 100644 index ef53534..0000000 --- a/src/missing/isrow/isrow.m +++ /dev/null @@ -1,20 +0,0 @@ -function r = isrow(V) -% Copyright (C) 2018 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 <http://www.gnu.org/licenses/>. - -sz = size(V); -r = (length(sz) == 2) && (sz(1) == 1); diff --git a/src/missing/strjoin/strjoin.m b/src/missing/strjoin/strjoin.m deleted file mode 100644 index 666c5f8..0000000 --- a/src/missing/strjoin/strjoin.m +++ /dev/null @@ -1,63 +0,0 @@ -function rval = strjoin (cstr, delimiter) - -% Adapted from Octave's implementation of strjoin -% -% Limitation: escaped characters (e.g. '\n') in delimiters will not be -% interpreted as the characters they represent. - -% Copyright (C) 2013-2019 Ben Abbott -% Copyright (C) 2007 Muthiah Annamalai -% Copyright (C) 2019 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 <http://www.gnu.org/licenses/>. - -if nargin == 1 - delimiter = ' '; -elseif nargin < 1 || nargin > 2 - error('strjoin: must have either one or two arguments') -end -if ~(iscellstr(cstr) && (ischar(delimiter) || iscellstr(delimiter))) - error('strjoin: first argument must be a cell array, second array either a char array or a cell array') -end - -if numel(cstr) == 1 - rval = cstr{1}; - return; -end - -if ischar(delimiter) - % There is no equivalent to do_string_escapes in MATLAB - %delimiter = do_string_escapes(delimiter); - delimiter = {delimiter}; -end - -num = numel(cstr); -if numel(delimiter) == 1 && num > 1 - delimiter = repmat(delimiter, 1, num); - delimiter(end) = {''}; -elseif num > 0 && numel(delimiter) ~= num - 1 - error('strjoin: the number of delimiters does not match the number of strings'); -else - delimiter(end+1) = {''}; -end - -if num == 0 - rval = ''; -else - tmp = [cstr(:).'; delimiter(:).']; - rval = [tmp{:}]; -end - diff --git a/src/missing/strsplit/private/ischarint.m b/src/missing/strsplit/private/ischarint.m deleted file mode 100644 index d325015..0000000 --- a/src/missing/strsplit/private/ischarint.m +++ /dev/null @@ -1,27 +0,0 @@ -function l = ischarint(x) - -% Returns true if and only if char x represents an integer. - -% Copyright © 2018 DynareTeam -% -% 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 <http://www.gnu.org/licenses/>. - -s = warning; -warning off; - -l = isint(str2double(x)); - -warning(s); \ No newline at end of file diff --git a/src/missing/strsplit/private/ischarnum.m b/src/missing/strsplit/private/ischarnum.m deleted file mode 100644 index 57b7c7e..0000000 --- a/src/missing/strsplit/private/ischarnum.m +++ /dev/null @@ -1,35 +0,0 @@ -function l = ischarnum(x) - -% Returns true if and only if char x represents a real number. - -% Copyright © 2018 DynareTeam -% -% 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 <http://www.gnu.org/licenses/>. - -l = false; - -s = warning; -warning off; - -number = str2double(x); - -warning(s); - -if ~isempty(number) - if isreal(number) - l = true; - end -end \ No newline at end of file diff --git a/src/missing/strsplit/strsplit.m b/src/missing/strsplit/strsplit.m deleted file mode 100644 index 926bb50..0000000 --- a/src/missing/strsplit/strsplit.m +++ /dev/null @@ -1,90 +0,0 @@ -function tok = strsplit(str, delimiters) - -% Splits a string into multiple terms. -% -% INPUTS -% - str [char] String to be splitted. -% - delimiters [char, cell(char)] Delimiters. -% -% OUTPUTS -% - tok [cell(char)] Terms. - -% Copyright © 2018 DynareTeam -% -% 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 <http://www.gnu.org/licenses/>. - -remove_empty = true; -remove_numbers = false; - -% Check first input arguments -assert(ischar(str) && ndims(str)==2 && size(str,1)<=1, 'The first arugment has to be a row char array!'); - -% Set default value for second input arguments -if nargin<2 - delimiters = {' '}; -end - -% If second input argument is a char transform it into a sigleton cell of char -if nargin>1 - if ischar(delimiters) - assert(ndims(delimiters)==2 && size(delimiters,1)==1, 'The second input argument has to be be a char string!'); - delimiters = {delimiters}; - end -end - -% Check that `delimiters` is a one dimensional cell -assert(ndim(delimiters)<=1, 'The second input argument has to be a one dimensional cell array!') - -% Check that `delimiters` is a cell of row char arrays -assert(all(cellfun(@ischar, delimiters)) && all(cellfun(@rows, delimiters)==1), 'The second input argument has to be a cell of row char arrays!') - -% If space is one of the delimiters obtain the index in `delimiters` -idspace = strmatch(' ', delimiters); - -% Get the number of delimiters -n = length(delimiters); - -% Remove unnecessary spaces -delimiters(setdiff(1:n, idspace)) = strtrim(delimiters(setdiff(1:n, idspace))); - -% Join all the delimiters (strjoin is not available with matlab version less than R2013a) -if n>1 - delimiter = ''; - for i=1:n - if isspace(delimiters{i}) - delimiter = horzcat(delimiter, '\s'); - else - delimiter = horzcat(delimiter, delimiters{i}); - end - delimiter = horzcat(delimiter,'|'); - end - delimiter = horzcat(delimiter, '\W'); -else - delimiter = delimiters{1}; -end - -% Get tokens -tok = regexp(str, delimiter, 'split'); - -if remove_empty - % Remove empty tokens - tok = tok(find(~cellfun(@isempty, tok))); -end - -if remove_numbers - % Remove numbers - tok = tok(find(~cellfun(@ischarnum, tok))); -end \ No newline at end of file -- GitLab