diff --git a/matlab/@dseries/abs.m b/matlab/@dseries/abs.m
deleted file mode 100644
index 0b7be9af4..000000000
--- a/matlab/@dseries/abs.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function A = abs(B) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} abs (@var{B})
-%! @anchor{@dseries/uminus}
-%! @sp 1
-%! Overloads the abs method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object.
-%! @end deftypefn
-%@eod:
-
-% 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 .
-
-A = dseries();
-
-A.data = abs(B.data);
-A.dates = B.dates;
-
-A.name = cell(vobs(A), 1);
-A.tex = cell(vobs(A), 1);
-for i = 1:vobs(A)
- A.name(i) = {[ 'abs(' B.name{i} ')']};
- A.tex(i) = {[ '|' B.tex{i} '|']};
-end
-
-%@test:1
-%$ % Define a datasets.
-%$ A = randn(10,2);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ A_tex = {'A_1';'A_2'};
-%$ t = zeros(6,1);
-%$
-%$ % Instantiate a time series object and compute the absolute value.
-%$ try
-%$ ts1 = dseries(A,[],A_name,A_tex);
-%$ ts2 = abs(ts1);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,abs(A),1e-15);
-%$ t(5) = dassert(ts2.name,{'abs(A1)';'abs(A2)'});
-%$ t(6) = dassert(ts2.tex,{'|A_1|';'|A_2|'});
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = randn(10,2);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ A_tex = {'A_1';'A_2'};
-%$ t = zeros(6,1);
-%$
-%$ % Instantiate a time series object and compute the absolute value.
-%$ try
-%$ ts1 = dseries(A,[],A_name,A_tex);
-%$ ts2 = ts1.abs();
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,abs(A),1e-15);
-%$ t(5) = dassert(ts2.name,{'abs(A1)';'abs(A2)'});
-%$ t(6) = dassert(ts2.tex,{'|A_1|';'|A_2|'});
-%$ end
-%$ T = all(t);
-%@eof:2
\ No newline at end of file
diff --git a/matlab/@dseries/align.m b/matlab/@dseries/align.m
deleted file mode 100644
index 37eece439..000000000
--- a/matlab/@dseries/align.m
+++ /dev/null
@@ -1,182 +0,0 @@
-function [a,b] = align(a, b) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {[@var{a}, @var{b}] =} align (@var{a}, @var{b})
-%! @anchor{dseries/align}
-%! @sp 1
-%! If dseries objects @var{a} and @var{b} are defined on different time ranges, extend @var{a} and/or
-%! @var{b} with NaNs so that they are defined on the same time range.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Object instantiated by @ref{dseries}.
-%! @item b
-%! Object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! Object instantiated by @ref{dseries}.
-%! @item b
-%! Object instantiated by @ref{dseries}.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% 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 ~isequal(frequency(a),frequency(b))
- error(['dseries::align: ''' inputname(1) ''' and ''' inputname(2) ''' dseries objects must have common frequencies!'])
-end
-
-init = min(firstdate(a),firstdate(b));
-last = max(lastdate(a),lastdate(b));
-
-if isempty(intersect(a.dates,b.dates))
- error(['dseries::align: ''' inputname(1) ''' and ''' inputname(2) ''' dseries object must have at least one common date!'])
-end
-
-a_init = init;
-b_init = init;
-a_last = last;
-b_last = last;
-
-if firstdate(b)>init
- n = firstdate(b)-init;
- b.data = [NaN(n, vobs(b)); b.data];
- b_init = init;
-end
-
-if firstdate(a)>init
- n = firstdate(a)-init;
- a.data = [NaN(n, vobs(a)); a.data];
- a_init = init;
-end
-
-if lastdate(b).
-
-if nargin<4 || isempty(truncature)
- K = 12;
- if nargin<3 || isempty(low_frequency)
- % Set default number of periods corresponding to the lowest frequency.
- low_frequency = 32;
- if nargin<2 || isempty(high_frequency)
- % Set default number of periods corresponding to the highest frequency.
- high_frequency = 6;
- if nargin<1
- error('dseries::baxter_king_filter: I need at least one argument')
- end
- else
- if high_frequency<2
- error('dseries::baxter_king_filter: Second argument must be greater than 2!')
- end
- if high_frequency>low_frequency
- error('dseries::baxter_king_filter: Second argument must be smaller than the third argument!')
- end
- end
- end
-end
-
-% translate periods into frequencies.
-hf=2.0*pi/high_frequency;
-lf=2.0*pi/low_frequency;
-
-% Set weights for the band-pass filter's lag polynomial.
-weights = zeros(K+1,1); lpowers = transpose(1:K);
-weights(2:K+1) = (sin(lpowers*hf)-sin(lpowers*lf))./(lpowers*pi);
-weights(1) = (hf-lf)/pi;
-
-% Set the constraint on the sum of weights.
-if low_frequency>1000
- % => low pass filter.
- sum_of_weights_constraint = 1.0;
-else
- sum_of_weights_constraint = 0.0;
-end
-
-% Compute the sum of weights.
-sum_of_weights = weights(1) + 2*sum(weights(2:K+1));
-
-% Correct the weights.
-weights = weights + (sum_of_weights_constraint - sum_of_weights)/(2*K+1);
-
-% Weights are symmetric!
-weights = [flipud(weights(2:K+1)); weights];
-
-tmp = zeros(size(ts.data));
-
-% Filtering step.
-for t = K+1:nobs(ts)-K
- tmp(t,:) = weights'*ts.data(t-K:t+K,:);
-end
-
-% Update dseries object.
-ts.data = tmp(K+1:end-K,:);
-init = firstdate(ts)+K;
-ts.dates = init:init+(nobs(ts)-1);
-
-%@test:1
-%$ plot_flag = 0;
-%$
-%$ % Create a dataset.
-%$ e = .2*randn(200,1);
-%$ u = randn(200,1);
-%$ stochastic_trend = cumsum(e);
-%$ deterministic_trend = .1*transpose(1:200);
-%$ x = zeros(200,1);
-%$ for i=2:200
-%$ x(i) = .75*x(i-1) + e(i);
-%$ end
-%$ y = x + stochastic_trend + deterministic_trend;
-%$
-%$ % Test the routine.
-%$ try
-%$ ts = dseries(y,'1950Q1');
-%$ ts = ts.baxter_king_filter();
-%$ xx = dseries(x,'1950Q1');
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1953, 1]);
-%$ t(5) = dassert(ts.vobs,1);
-%$ t(6) = dassert(ts.nobs,176);
-%$ end
-%$
-%$ % Show results
-%$ if plot_flag
-%$ plot(xx(ts.dates).data,'-k');
-%$ hold on
-%$ plot(ts.data,'--r');
-%$ hold off
-%$ axis tight
-%$ id = get(gca,'XTick');
-%$ set(gca,'XTickLabel',strings(ts.dates(id)));
-%$ legend({'Stationary component of y', 'Filtered y'})
-%$ print('-depsc2','../doc/dynare.plots/BaxterKingFilter.eps')
-%$ system('convert -density 300 ../doc/dynare.plots/BaxterKingFilter.eps ../doc/dynare.plots/BaxterKingFilter.png');
-%$ system('convert -density 300 ../doc/dynare.plots/BaxterKingFilter.eps ../doc/dynare.plots/BaxterKingFilter.pdf');
-%$ system('convert -density 300 ../doc/dynare.plots/BaxterKingFilter.eps ../doc/dynare.plots/BaxterKingFilter.jpg');
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/chain.m b/matlab/@dseries/chain.m
deleted file mode 100644
index da0bcb813..000000000
--- a/matlab/@dseries/chain.m
+++ /dev/null
@@ -1,61 +0,0 @@
-function vs = chain(ts,us) % --*-- Unitary tests --*--
-
-% Copyright (C) 2014 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 vobs(ts)-vobs(us)
- error(['dseries::chain: dseries objects ' inputname(1) ' and ' inputname(2) ' must have the same number of variables!'])
-end
-
-if frequency(ts)-frequency(us)
- error(['dseries::chain: dseries objects ' inputname(1) ' and ' inputname(2) ' must have common frequencies!'])
-end
-
-if lastdate(ts).
-
-error_flag = 0;
-
-[n,m] = size(A.data);
-
-if ~isequal(m, vobs(A));
- error_flag = 1;
- if nargout>1
- message = ['dseries: Wrong number of variables in dseries object ''' inputname(1) '''!'];
- end
- return
-end
-
-if ~isequal(n,nobs(A));
- error_flag = 1;
- if nargout>1
- message = ['dseries: Wrong number of observations in dseries object ''' inputname(1) '''!'];
- end
- return
-end
-
-if ~isequal(m,numel(A.name));
- error_flag = 1;
- if nargout>1
- message = ['dseries: Wrong number of variable names in dseries object ''' inputname(1) '''!'];
- end
- return
-end
-
-if ~isequal(m,numel(A.tex));
- error_flag = 1;
- if nargout>1
- message = ['dseries: Wrong number of variable tex names in dseries object ''' inputname(1) '''!'];
- end
- return
-end
-
-if ~isequal(numel(A.name),numel(A.tex));
- error_flag = 1;
- if nargout>1
- message = ['dseries: The number of variable tex names has to be equal to the number of variable names in dseries object ''' inputname(1) '''!'];
- end
- return
-end
-
-if ~isequal(numel(unique(A.name)),numel(A.name));
- error_flag = 1;
- if nargout>1
- message = ['dseries: The variable names in dseries object ''' inputname(1) ''' are not unique!'];
- end
- return
-end
-
-if ~isequal(numel(unique(A.tex)),numel(A.tex));
- error_flag = 1;
- if nargout>1
- message = ['dseries: The variable tex names in dseries object ''' inputname(1) ''' are not unique!'];
- end
- return
-end
-
-if ~isequal(A.dates,firstdate(A):firstdate(A)+nobs(A))
- error_flag = 1;
- if nargout>1
- message = ['dseries: Wrong definition of the dates member in dseries object ''' inputname(1) '''!'];
- end
- return
-end
\ No newline at end of file
diff --git a/matlab/@dseries/cumprod.m b/matlab/@dseries/cumprod.m
deleted file mode 100644
index 1f4b656e1..000000000
--- a/matlab/@dseries/cumprod.m
+++ /dev/null
@@ -1,234 +0,0 @@
-function B = cumprod(varargin) % --*-- Unitary tests --*--
-
-% Overloads matlab's cumprod function for dseries objects.
-%
-% INPUTS
-% o A dseries object [mandatory].
-% o d dates object [optional]
-% o v dseries object with one observation [optional]
-%
-% OUTPUTS
-% o B dseries object.
-
-% Copyright (C) 2014 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 .
-
-% Get indices of the columns without NaNs
-idx = find(~any(isnan(varargin{1}.data)));
-
-if isempty(idx)
- error('dseries::cumprod: All the variables have NaNs. The cumulated product cannot be computed!')
-end
-
-if ~isequal(idx(:),transpose(1:vobs(varargin{1})))
- warning('dseries::cumprod: The cumulated product is not computed for some variables because they have NaNs!')
-end
-
-switch nargin
- case 1
- % Initialize the output.
- B = varargin{1};
- % Perform the cumulated sum
- B.data(:,idx) = cumprod(B.data(:,idx));
- % Change the name of the variables
- for i=1:vobs(B)
- B.name(i) = {['cumprod(' B.name{i} ')']};
- B.tex(i) = {['\prod_t ' B.tex{i}]};
- end
- case 2
- if isdseries(varargin{2})
- if ~isequal(vobs(varargin{1}), vobs(varargin{2}))
- error('dseries::cumprod: First and second input arguments must be dseries objects with the same number of variables!')
- end
- if ~isequal(varargin{1}.name, varargin{2}.name)
- warning('dseries::cumprod: First and second input arguments must be dseries objects do not have the same variables!')
- end
- if ~isequal(nobs(varargin{2}),1)
- error('dseries::cumprod: Second input argument must be a dseries object with only one observation!')
- end
- B = cumprod(varargin{1});
- B.data = bsxfun(@rdivide,B.data,B.data(1,:));
- B.data = bsxfun(@times,B.data,varargin{2}.data);
- elseif isdates(varargin{2})
- B = cumprod(varargin{1});
- t = find(B.dates==varargin{2});
- if isempty(t)
- if varargin{2}==(firstdate(B)-1)
- return
- else
- error(['dseries::cumprod: date ' date2string(varargin{2}) ' is not in the sample!'])
- end
- end
- B.data = bsxfun(@rdivide,B.data,B.data(t,:));
- else
- error('dseries::cumprod: Second input argument must be a dseries object or a dates object!')
- end
- case 3
- if ~isdates(varargin{2})
- error('dseries::cumprod: Second input argument must be a dates object!')
- end
- if ~isdseries(varargin{3})
- error('dseries::cumprod: Third input argument must be a dseries object!')
- end
- if ~isequal(vobs(varargin{1}), vobs(varargin{3}))
- error('dseries::cumprod: First and third input arguments must be dseries objects with the same number of variables!')
- end
- if ~isequal(varargin{1}.name, varargin{3}.name)
- warning('dseries::cumprod: First and third input arguments must be dseries objects do not have the same variables!')
- end
- if ~isequal(nobs(varargin{3}),1)
- error('dseries::cumprod: Third input argument must be a dseries object with only one observation!')
- end
- B = cumprod(varargin{1});
- t = find(B.dates==varargin{2});
- if isempty(t)
- if varargin{2}==(firstdate(B)-1)
- B.data = bsxfun(@times,B.data,varargin{3}.data);
- return
- else
- error(['dseries::cumprod: date ' date2string(varargin{2}) ' is not in the sample!'])
- end
- end
- B.data = bsxfun(@rdivide, B.data, B.data(t,:));
- B.data = bsxfun(@times, B.data, varargin{3}.data);
- otherwise
- error('dseries::cumprod: Wrong number of input arguments!')
-end
-
-%@test:1
-%$ % Define a data set.
-%$ A = 2*ones(4,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ try
-%$ ts = cumprod(ts);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = isequal(ts.data,cumprod(A));
-%$ t(3) = isequal(ts.name{1},'cumprod(A1)');
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a data set.
-%$ A = 2*ones(4,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ try
-%$ ts = ts.cumprod();
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = isequal(ts.data,cumprod(A));
-%$ t(3) = isequal(ts.name{1},'cumprod(A1)');
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
-
-
-%@test:3
-%$ % Define a data set.
-%$ A = 2*ones(7,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts = cumprod(ts,dates('3Y'));
-%$
-%$ % Expected results.
-%$ ds = dseries([.25; .5; 1; 2; 4; 8; 16], [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts,ts);
-%$ warning_config
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ % Define a data set.
-%$ A = 2*ones(7,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(pi, [], A_name, []);
-%$
-%$ % Call the tested method.
-%$ ts3 = cumprod(ts1,dates('3Y'),ts2);
-%$
-%$ % Expected results.
-%$ ts4 = dseries([.25; .5; 1; 2; 4; 8; 16]*pi, [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts3,ts4);
-%$ warning_config
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ % Define a data set.
-%$ A = 2*ones(7,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(pi, [], A_name, []);
-%$
-%$ % Call the tested method.
-%$ ts3 = ts1.cumprod(dates('3Y'),ts2);
-%$
-%$ % Expected results.
-%$ ts4 = dseries([.25; .5; 1; 2; 4; 8; 16]*pi, [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts3,ts4);
-%$ warning_config
-%$ T = all(t);
-%@eof:5
\ No newline at end of file
diff --git a/matlab/@dseries/cumsum.m b/matlab/@dseries/cumsum.m
deleted file mode 100644
index d5fe1c426..000000000
--- a/matlab/@dseries/cumsum.m
+++ /dev/null
@@ -1,225 +0,0 @@
-function B = cumsum(varargin) % --*-- Unitary tests --*--
-
-% Overloads matlab's cumsum function for dseries objects.
-%
-% INPUTS
-% o A dseries object [mandatory].
-% o d dates object [optional]
-% o v dseries object with one observation [optional]
-%
-% OUTPUTS
-% o B dseries object.
-
-% 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 .
-
-% Get indices of the columns without NaNs
-idx = find(~any(isnan(varargin{1}.data)));
-
-if isempty(idx)
- error('dseries::cumsum: All the variables have NaNs. The cumulated sum cannot be computed!')
-end
-
-if ~isequal(idx(:),transpose(1:vobs(varargin{1})))
- warning('dseries::cumsum: The cumulated sum is not computed for some variables because they have NaNs!')
-end
-
-switch nargin
- case 1
- % Initialize the output.
- B = varargin{1};
- % Perform the cumulated sum
- B.data(:,idx) = cumsum(B.data(:,idx));
- % Change the name of the variables
- for i=1:vobs(B)
- B.name(i) = {['cumsum(' B.name{i} ')']};
- B.tex(i) = {['\sum_t ' B.tex{i}]};
- end
- case 2
- if isdseries(varargin{2})
- if ~isequal(vobs(varargin{1}), vobs(varargin{2}))
- error('dseries::cumsum: First and second input arguments must be dseries objects with the same number of variables!')
- end
- if ~isequal(varargin{1}.name, varargin{2}.name)
- warning('dseries::cumsum: First and second input arguments must be dseries objects do not have the same variables!')
- end
- if ~isequal(nobs(varargin{2}),1)
- error('dseries::cumsum: Second input argument must be a dseries object with only one observation!')
- end
- B = cumsum(varargin{1});
- B.data = bsxfun(@plus,B.data,varargin{2}.data);
- elseif isdates(varargin{2})
- B = cumsum(varargin{1});
- t = find(B.dates==varargin{2});
- if isempty(t)
- if varargin{2}==(firstdate(B)-1)
- return
- else
- error(['dseries::cumsum: date ' date2string(varargin{2}) ' is not in the sample!'])
- end
- end
- B.data = bsxfun(@minus,B.data,B.data(t,:));
- else
- error('dseries::cumsum: Second input argument must be a dseries object or a dates object!')
- end
- case 3
- if ~isdates(varargin{2})
- error('dseries::cumsum: Second input argument must be a dates object!')
- end
- if ~isdseries(varargin{3})
- error('dseries::cumsum: Third input argument must be a dseries object!')
- end
- if ~isequal(vobs(varargin{1}), vobs(varargin{3}))
- error('dseries::cumsum: First and third input arguments must be dseries objects with the same number of variables!')
- end
- if ~isequal(varargin{1}.name, varargin{3}.name)
- warning('dseries::cumsum: First and third input arguments must be dseries objects do not have the same variables!')
- end
- if ~isequal(nobs(varargin{3}),1)
- error('dseries::cumsum: Third input argument must be a dseries object with only one observation!')
- end
- B = cumsum(varargin{1});
- t = find(B.dates==varargin{2});
- if isempty(t)
- if varargin{2}==(firstdate(B)-1)
- B.data = bsxfun(@plus,B.data,varargin{3}.data);
- return
- else
- error(['dseries::cumsum: date ' date2string(varargin{2}) ' is not in the sample!'])
- end
- end
- B.data = bsxfun(@plus,B.data,varargin{3}.data-B.data(t,:));
- otherwise
- error('dseries::cumsum: Wrong number of input arguments!')
-end
-
-%@test:1
-%$ % Define a data set.
-%$ A = ones(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts1 = cumsum(ts1);
-%$
-%$ % Expected results.
-%$ ts2 = dseries(transpose(1:10), [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts1,ts2);
-%$ warning_config
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a data set.
-%$ A = ones(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts1 = ts1.cumsum();
-%$
-%$ % Expected results.
-%$ ts2 = dseries(transpose(1:10), [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts1,ts2);
-%$ warning_config
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Define a data set.
-%$ A = ones(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts1 = cumsum(ts1,dates('3Y'));
-%$
-%$ % Expected results.
-%$ ts2 = dseries([-2; -1; 0; 1; 2; 3; 4; 5; 6; 7], [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts1,ts2);
-%$ warning_config
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ % Define a data set.
-%$ A = ones(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(pi, [], A_name, []);
-%$
-%$ % Call the tested method.
-%$ ts3 = cumsum(ts1,dates('3Y'),ts2);
-%$
-%$ % Expected results.
-%$ ts4 = dseries([-2; -1; 0; 1; 2; 3; 4; 5; 6; 7]+pi, [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts3,ts4);
-%$ warning_config
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ % Define a data set.
-%$ A = ones(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(pi, [], A_name, []);
-%$
-%$ % Call the tested method.
-%$ ts3 = ts1.cumsum(dates('3Y'),ts2);
-%$
-%$ % Expected results.
-%$ ts4 = dseries([-2; -1; 0; 1; 2; 3; 4; 5; 6; 7]+pi, [], A_name, []);
-%$
-%$ % Check the results.
-%$ warning off, % Because the names of the variables are not the same...
-%$ t(1) = dassert(ts3,ts4);
-%$ warning_config
-%$ T = all(t);
-%@eof:5
\ No newline at end of file
diff --git a/matlab/@dseries/detrend.m b/matlab/@dseries/detrend.m
deleted file mode 100644
index c132cbed5..000000000
--- a/matlab/@dseries/detrend.m
+++ /dev/null
@@ -1,110 +0,0 @@
-function o = detrend(o, model) % --*-- Unitary tests --*--
-
-% Copyright (C) 2014 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 .
-
-% Set default for the order of the polynomial trend (constant).
-if nargin<2
- model = 0;
-end
-
-data = o.data;
-
-if isnumeric(model)
- if isscalar(model) && isint(model)
- switch model
- case 0
- data = demean(data);
- otherwise
- x = NaN(nobs(o), model+1);
- x(:,1) = ones(nobs(o), 1);
- x(:,2) = transpose(1:nobs(o));
- for c=3:model+1
- x(:,c) = x(:,c-1).*x(:,2);
- end
- data = data - x*(x\data);
- end
- else
- error('dseries::detrend: Second argument must be a positive integer scalar!')
- end
-else
- error('dseries::detrend: Second argument must be a positive integer scalar!')
-end
-
-o = dseries(data, o.dates, o.name, o.tex);
-
-%@test:1
-%$ % Define a dataset.
-%$ a = dseries(randn(1000,3));
-%$
-%$ % detrend (default).
-%$ try
-%$ b1 = a.detrend();
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ % detrend (constant).
-%$ if t(1)
-%$ try
-%$ b2 = a.detrend(0);
-%$ t(2) = 1;
-%$ catch
-%$ t(2) = 0;
-%$ end
-%$ end
-%$
-%$ % detrend (linear).
-%$ if t(2)
-%$ try
-%$ b3 = a.detrend(1);
-%$ t(3) = 1;
-%$ catch
-%$ t(3) = 0;
-%$ end
-%$ end
-%$
-%$ % detrend (quadratic).
-%$ if t(3)
-%$ try
-%$ b4 = a.detrend(2);
-%$ t(4) = 1;
-%$ catch
-%$ t(4) = 0;
-%$ end
-%$ end
-%$
-%$ % detrend (cubic).
-%$ if t(4)
-%$ try
-%$ b5 = a.detrend(3);
-%$ t(5) = 1;
-%$ catch
-%$ t(5) = 0;
-%$ end
-%$ end
-%$
-%$ if t(5)
-%$ t(6) = dassert(max(mean(b1.data)),0,1e-12);
-%$ t(7) = dassert(max(mean(b2.data)),0,1e-12);
-%$ t(8) = dassert(max(mean(b3.data)),0,1e-12);
-%$ t(9) = dassert(max(mean(b4.data)),0,1e-12);
-%$ t(10) = dassert(max(mean(b5.data)),0,1e-12);
-%$ end
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dseries/disp.m b/matlab/@dseries/disp.m
deleted file mode 100644
index 5bd38f464..000000000
--- a/matlab/@dseries/disp.m
+++ /dev/null
@@ -1,40 +0,0 @@
-function disp(A)
-
-%@info:
-%! @deftypefn {Function File} disp (@var{A})
-%! @anchor{@dseries/disp}
-%! @sp 1
-%! Overloads the disp method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! None
-%! @end deftypefn
-%@eod:
-
-separator = repmat(' | ', nobs(A)+1,1);
-vspace = ' ';
-TABLE = ' ';
-for t=1:nobs(A)
- TABLE = char(TABLE, date2string(A.dates(t)));
-end
-for i = 1:vobs(A)
- TABLE = horzcat(TABLE,separator);
- tmp = A.name{i};
- for t=1:nobs(A)
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- TABLE = horzcat(TABLE, tmp);
-end
-disp(vspace)
-disp([inputname(1) ' is a dseries object:'])
-disp(vspace);
-disp(TABLE);
-disp(vspace);
\ No newline at end of file
diff --git a/matlab/@dseries/display.m b/matlab/@dseries/display.m
deleted file mode 100644
index d6826a801..000000000
--- a/matlab/@dseries/display.m
+++ /dev/null
@@ -1,128 +0,0 @@
-function display(A)
-%@info:
-%! @deftypefn {Function File} display (@var{A})
-%! @anchor{@dseries/display}
-%! @sp 1
-%! Overloads the disp method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! None
-%! @end deftypefn
-%@eod:
-
-vspace = ' ';
-TABLE = ' ';
-
-if vobs(A)<=10
- if nobs(A)<=40
- separator = repmat(' | ', nobs(A)+1,1);
- for t=1:nobs(A)
- TABLE = char(TABLE, date2string(A.dates(t)));
- end
- for i = 1:vobs(A)
- TABLE = horzcat(TABLE,separator);
- tmp = A.name{i};
- for t=1:nobs(A)
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- TABLE = horzcat(TABLE, tmp);
- end
- else
- n = 10;
- separator = repmat(' | ',2*n+3,1);
- for t=1:n
- TABLE = char(TABLE, date2string(A.dates(t)));
- end
- TABLE = char(TABLE,vspace);
- for t = nobs(A)-n:nobs(A)
- TABLE = char(TABLE, date2string(A.dates(t)));
- end
- for i=1:vobs(A)
- TABLE = horzcat(TABLE,separator);
- tmp = A.name{i};
- for t=1:10
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- tmp = char(tmp,vspace);
- for t=nobs(A)-10:nobs(A)
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- TABLE = horzcat(TABLE, tmp);
- end
- end
-else
- m = 4;
- if nobs(A)<=40
- separator = repmat(' | ', nobs(A)+1,1);
- for t=1:nobs(A)
- TABLE = char(TABLE, date2string(A.dates(t)));
- end
- for i = 1:m
- TABLE = horzcat(TABLE,separator);
- tmp = A.name{i};
- for t=1:nobs(A)
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- TABLE = horzcat(TABLE, tmp);
- end
- TABLE = horzcat(TABLE, separator, repmat(' ... ', nobs(A)+1,1));
- for i = vobs(A)-m+1:vobs(A)
- TABLE = horzcat(TABLE,separator);
- tmp = A.name{i};
- for t=1:nobs(A)
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- TABLE = horzcat(TABLE, tmp);
- end
- else
- n = 10;
- separator = repmat(' | ',2*n+3,1);
- for t=1:n
- TABLE = char(TABLE, date2string(A.dates(t)));
- end
- TABLE = char(TABLE,vspace);
- for t = nobs(A)-n:nobs(A)
- TABLE = char(TABLE, date2string(A.dates(t)));
- end
- for i=1:m
- TABLE = horzcat(TABLE,separator);
- tmp = A.name{i};
- for t=1:10
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- tmp = char(tmp,vspace);
- for t=nobs(A)-10:nobs(A)
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- TABLE = horzcat(TABLE, tmp);
- end
- TABLE = horzcat(TABLE, separator, repmat(' ... ', 2*n+3,1));
- for i=vobs(A)-m+1:vobs(A)
- TABLE = horzcat(TABLE,separator);
- tmp = A.name{i};
- for t=1:10
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- tmp = char(tmp,vspace);
- for t=nobs(A)-10:nobs(A)
- tmp = char(tmp,num2str(A.data(t,i)));
- end
- TABLE = horzcat(TABLE, tmp);
- end
- end
-end
-disp(vspace)
-disp([inputname(1) ' is a dseries object:'])
-disp(vspace);
-if ~isempty(strtrim(TABLE))
- disp(TABLE);
- disp(vspace);
-end
diff --git a/matlab/@dseries/dseries.m b/matlab/@dseries/dseries.m
deleted file mode 100644
index 27a0fe4ef..000000000
--- a/matlab/@dseries/dseries.m
+++ /dev/null
@@ -1,546 +0,0 @@
-function ts = dseries(varargin) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{ts} =} dseries (@var{a},@var{b},@var{c},@var{d})
-%! @anchor{dseries}
-%! @sp 1
-%! Constructor for the Dynare time series class.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 2
-%! If @code{nargin==0} then an empty dseries object is created. The object can be populated with data subsequently using the overloaded subsref method.
-%! @sp 2
-%! If @code{nargin==1} and if the input argument is a @ref{dates} object, then a dseries object without data is created. This object can be populated with the overload subsref method.
-%! @sp 2
-%! If @code{nargin==1} and if the input argument is a string for the name of a csv, m or mat file containing data, then a dseries object is created from these data.
-%! @sp 2
-%! If @code{nargin>1}:
-%! @sp 1
-%! @table @ @var
-%! @item a
-%! T*1 vector or T*N matrix of data.
-%! @item b
-%! Initial date. For Quaterly, Monthly or Weekly data, b must be a string. For yearly data or if the frequence is not defined b must be an integer.
-%! @item c
-%! N*1 cell array of strings or N*q array of strings. Names of the N time series.
-%! @item d
-%! N*1 cell array of strings or N*p array of characters. TeX names of the N time series.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Dynare time series object.
-%! @end table
-%! @sp 2
-%! @strong{Properties}
-%! @sp 1
-%! The constructor defines the following properties:
-%! @sp 1
-%! @table @ @var
-%! @item data
-%! Array of doubles (nobs*vobs).
-%! @item nobs
-%! Scalar integer, the number of observations.
-%! @item vobs
-%! Scalar integer, the number of variables.
-%! @item name
-%! Cell array of strings, names of the variables.
-%! @item tex
-%! Cell array of strings, tex names of the variables.
-%! @item freq
-%! Scalar integer, the frequency of the time series. @var{freq} is equal to 1 if data are on a yearly basis or if
-%! frequency is unspecified. @var{freq} is equal to 4 if data are on a quaterly basis. @var{freq} is equal to
-%! 12 if data are on a monthly basis. @var{freq} is equal to 52 if data are on a weekly basis.
-%! @item init
-%! @ref{dates} object, initial date of the dataset.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-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>0 && ischar(varargin{1}) && isequal(varargin{1},'initialize')
- ts = struct;
- ts.data = [];
- ts.name = {};
- ts.tex = {};
- ts.dates = dates();
- ts = class(ts,'dseries');
- assignin('base','emptydseriesobject',ts);
- return
-end
-
-ts = evalin('base','emptydseriesobject');
-
-switch nargin
- case 0
- % Create an empty dseries object.
- return
- case 1
- if isdates(varargin{1})
- switch length(varargin{1})
- case 0
- error(['dseries::dseries: Input (identified as a dates object) must be non empty!'])
- case 1
- % Create an empty dseries object with an initial date.
- ts.dates = varargin{1};
- otherwise
- % A range of dates is passed to the constructor
- ts.dates = varargin{1};
- end
- return
- elseif ischar(varargin{1})
- % Create a dseries object loading data in a file (*.csv, *.m, *.mat).
- if isempty(varargin{1})
- error('dseries:: Wrong calling sequence! Input argument cannot be an empty string.')
- elseif check_file_extension(varargin{1},'m')
- [freq,init,data,varlist,tex] = load_m_file_data(varargin{1});
- elseif check_file_extension(varargin{1},'mat')
- [freq,init,data,varlist,tex] = load_mat_file_data(varargin{1});
- elseif check_file_extension(varargin{1},'csv')
- [freq,init,data,varlist] = load_csv_file_data(varargin{1});
- tex = [];
- elseif check_file_extension(varargin{1},'xls') || check_file_extension(varargin{1},'xlsx')
- if isglobalinbase('options_')
- % Check that the object is instantiated within a dynare session so that options_ global structure exists.
- % Should provide latter a mechanism to pass range and sheet to dseries constructor...
- range = evalin('base','options_.xls_range');
- sheet = evalin('base','options_.xls_sheet');
- else
- % By default only the (whole) first sheet is loaded.
- range = [];
- sheet = [];
- end
- [freq,init,data,varlist] = load_xls_file_data(varargin{1}, sheet, range);
- tex = [];
- else
- error(['dseries:: I''m not able to load data from ' varargin{1} '!'])
- end
- ts.data = data;
- ts.name = varlist;
- ts.dates = init:init+(nobs(ts)-1);
- if isempty(tex)
- ts.tex = name2tex(varlist);
- else
- ts.tex = tex;
- end
- elseif isnumeric(varargin{1}) && isequal(ndims(varargin{1}),2)
- ts.data = varargin{1};
- ts.name = default_name(vobs(ts));
- ts.tex = name2tex(ts.name);
- ts.dates = dates(1,1):dates(1,1)+(nobs(ts)-1);
- end
- case {2,3,4}
- if isequal(nargin,2) && ischar(varargin{1}) && isdates(varargin{2})
- % Instantiate dseries object with a data file and force the initial date to be as given by the second input argument.
- ds = dseries(varargin{1});
- ts = dseries(ds.data, varargin{2}, ds.name, ds.tex);
- return
- end
- if isequal(nargin,2) && ischar(varargin{1}) && ischar(varargin{2}) && isdate(varargin{2})
- % Instantiate dseries object with a data file and force the initial date to be as given by the second input argument.
- ds = dseries(varargin{1});
- ts = dseries(ds.data, dates(varargin{2}), ds.name, ds.tex);
- return
- end
- a = varargin{1};
- b = varargin{2};
- if nargin<4
- d = {};
- else
- d = varargin{4};
- if ~iscell(d) && ~isempty(d)
- d = cellstr(d);
- end
- end
- if nargin<3
- c = {};
- else
- c = varargin{3};
- if ~iscell(c) && ~isempty(c)
- c = cellstr(c);
- end
- end
- % Get data, number of observations and number of variables.
- ts.data = a;
- % Get the first date and set the frequency.
- if isempty(b)
- init = dates(1,1);
- elseif (isdates(b) && isequal(length(b),1))
- init = b;
- elseif ischar(b) && isdate(b)% Weekly, Monthly, Quaterly or Annual data (string).
- init = dates(b);
- elseif (isnumeric(b) && isscalar(b) && isint(b)) % Yearly data.
- init = dates([num2str(b) 'Y']);
- elseif isdates(b) % Range of dates
- init = b(1);
- if nobs(ts)>1 && ~isequal(b.ndat,nobs(ts))
- message = 'dseries::dseries: If second input is a range, its number of elements must match ';
- message = char(message, ' the number of rows in the first input, unless the first input');
- message = char(message, ' has only one row.');
- skipline()
- disp(message);
- error(' ');
- elseif isequal(nobs(ts), 1)
- ts.data = repmat(ts.data,b.ndat,1);
- end
- ts.dates = b;
- elseif (isnumeric(b) && isint(b)) % Range of yearly dates.
- message = 'dseries::dseries: Not implemented! If you need to define a range of years';
- message = char(message, ' you have to pass a dates object as the second input argument.');
- disp(message)
- error(' ')
- else
- error('dseries::dseries: Wrong calling sequence!');
- end
- % Get the names of the variables.
- if ~isempty(c)
- if vobs(ts)==length(c)
- for i=1:vobs(ts)
- ts.name = vertcat(ts.name, c(i));
- end
- else
- error('dseries::dseries: The number of declared names does not match the number of variables!')
- end
- else
- ts.name = default_name(vobs(ts));
- end
- if ~isempty(d)
- if vobs(ts)==length(d)
- for i=1:vobs(ts)
- ts.tex = vertcat(ts.tex, d(i));
- end
- else
- error('dseries::dseries: The number of declared tex names does not match the number of variables!')
- end
- else
- ts.tex = name2tex(ts.name);
- end
- otherwise
- error('dseries::dseries: Can''t instantiate the class, wrong calling sequence!')
-end
-
-if isempty(ts.dates)
- ts.dates = init:init+(nobs(ts)-1);
-end
-
-%@test:1
-%$ % Test if we can instantiate an empty dseries object.
-%$ try
-%$ ts = dseries();
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ t = zeros(4,1);
-%$
-%$ try
-%$ aa = dates('1938M11');
-%$ ts = dseries(aa);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,12);
-%$ t(3) = dassert(ts.init.freq,12);
-%$ t(4) = dassert(ts.init.time,[1938, 11]);
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ t = zeros(6,1);
-%$
-%$ try
-%$ ts = dseries('dynseries_test_data.m');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1994, 3]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,100);
-%$ end
-%$
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ t = zeros(6,1);
-%$
-%$ try
-%$ ts = dseries('dynseries_test_data.mat');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1994, 3]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,100);
-%$ end
-%$
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ t = zeros(8,1);
-%$
-%$ try
-%$ ts = dseries('dynseries_test_data.csv');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1990, 1]);
-%$ t(5) = dassert(ts.vobs,4);
-%$ t(6) = dassert(ts.nobs,4);
-%$ t(7) = dassert(ts.name,{'azert';'yuiop';'qsdfg';'jklm'});
-%$ t(8) = dassert(ts.tex,{'azert';'yuiop';'qsdfg';'jklm'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:5
-
-%@test:6
-%$ t = zeros(8,1);
-%$
-%$ try
-%$ ts = dseries(transpose(1:5),[]);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,1);
-%$ t(3) = dassert(ts.init.freq,1);
-%$ t(4) = dassert(ts.init.time,[1, 1]);
-%$ t(5) = dassert(ts.vobs,1);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Variable_1'});
-%$ t(8) = dassert(ts.tex,{'Variable\\_1'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:6
-
-%@test:7
-%$ t = zeros(8,1);
-%$
-%$ try
-%$ ts = dseries(transpose(1:5),'1950Q1');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(ts.vobs,1);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Variable_1'});
-%$ t(8) = dassert(ts.tex,{'Variable\\_1'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:7
-
-%@test:8
-%$ t = zeros(8,1);
-%$
-%$ try
-%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Output'; 'Consumption'});
-%$ t(8) = dassert(ts.tex,{'Y_t'; 'C_t'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:8
-
-%@test:9
-%$ try
-%$ ts = dseries('dynseries_test_data-1.xls');
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1990, 1]);
-%$ t(5) = dassert(ts.vobs,3);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'GDP';'Consumption';'CPI'});
-%$ t(8) = dassert(ts.tex,{'GDP';'Consumption';'CPI'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:9
-
-%@test:10
-%$ try
-%$ ts = dseries('dynseries_test_data-2.xls');
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1990, 1]);
-%$ t(5) = dassert(ts.vobs,3);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Variable_1';'Variable_2';'Variable_3'});
-%$ t(8) = dassert(ts.tex,{'Variable\\_1';'Variable\\_2';'Variable\\_3'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:10
-
-%@test:11
-%$ try
-%$ ts = dseries('dynseries_test_data-3.xls');
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts.freq,1);
-%$ t(3) = dassert(ts.init.freq,1);
-%$ t(4) = dassert(ts.init.time,[1, 1]);
-%$ t(5) = dassert(ts.vobs,3);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Variable_1';'Variable_2';'Variable_3'});
-%$ t(8) = dassert(ts.tex,{'Variable\\_1';'Variable\\_2';'Variable\\_3'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:11
-
-%@test:12
-%$ try
-%$ ts = dseries('dynseries_test_data-4.xls');
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts.freq,1);
-%$ t(3) = dassert(ts.init.freq,1);
-%$ t(4) = dassert(ts.init.time,[1, 1]);
-%$ t(5) = dassert(ts.vobs,3);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'GDP';'Consumption';'CPI'});
-%$ t(8) = dassert(ts.tex,{'GDP';'Consumption';'CPI'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:12
-
-%@test:13
-%$ t = zeros(6,1);
-%$
-%$ try
-%$ ts = dseries(transpose(1:4),dates('1990Q1'):dates('1990Q4'));
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1990, 1]);
-%$ t(5) = dassert(ts.vobs,1);
-%$ t(6) = dassert(ts.nobs,4);
-%$ end
-%$
-%$ T = all(t);
-%@eof:13
-
-%@test:14
-%$ t = zeros(7,1);
-%$
-%$ try
-%$ ts = dseries([1, 2],dates('1990Q1'):dates('1990Q4'));
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1990, 1]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,4);
-%$ t(7) = dassert(ts.data, [ones(4,1), 2*ones(4,1)]);
-%$ end
-%$
-%$ T = all(t);
-%@eof:14
-
-%@test:15
-%$ try
-%$ ts = dseries([1; 2],dates('1990Q1'):dates('1990Q4'));
-%$ t = 0;
-%$ catch
-%$ t = 1;
-%$ end
-%$
-%$ T = all(t);
-%@eof:15
diff --git a/matlab/@dseries/end.m b/matlab/@dseries/end.m
deleted file mode 100644
index 8f6097136..000000000
--- a/matlab/@dseries/end.m
+++ /dev/null
@@ -1,21 +0,0 @@
-function lastIndex = end(o, k, n)
-
-% Copyright (C) 2014 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 .
-
-assert(k==1 && n==1, 'dseries::end: Wrong indexing!');
-lastIndex = vobs(o);
\ No newline at end of file
diff --git a/matlab/@dseries/eq.m b/matlab/@dseries/eq.m
deleted file mode 100644
index e60d45e64..000000000
--- a/matlab/@dseries/eq.m
+++ /dev/null
@@ -1,89 +0,0 @@
-function C = eq(A,B) % --*-- Unitary tests --*--
-
-% Overloads eq (==) operator.
-%
-% INPUTS
-% o A dseries object (T periods, N variables).
-% o B dseries object (T periods, N variables).
-%
-% OUTPUTS
-% o C T*N matrix of zeros and ones. Element C(t,n) is nonzero iff observation t of variable n in A and B are equal.
-%
-% REMARKS
-% If the number of variables, the number of observations or the frequencies are different in A and B, the function returns a zero scalar.
-
-% 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
- error('dseries::eq: I need exactly two input arguments!')
-end
-
-if ~(isdseries(A) && isdseries(B))
- error('dseries::eq: Both input arguments must be dseries objects!')
-end
-
-if ~isequal(nobs(A), nobs(B))
- warning('dseries::eq: Both input arguments should have the same number of observations!')
- C = 0;
- return
-end
-
-if ~isequal(vobs(A), vobs(B))
- warning('dseries::eq: Both input arguments should have the same number of observations!')
- C = 0;
- return
-end
-
-if ~isequal(frequency(A),frequency(B))
- warning('dseries::eq: Both input arguments should have the same frequencies!')
- C = 0;
- return
-end
-
-if ~isequal(firstdate(A),firstdate(B))
- warning('dseries::eq: Both input arguments should have the same initial period!')
- C = 0;
- return
-end
-
-C = eq(A.data, B.data);
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'A3'};
-%$
-%$ t = zeros(2,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = ts1;
-%$ a = eq(ts1,ts2);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(a,logical(ones(10,3)));
-%$ end
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/exist.m b/matlab/@dseries/exist.m
deleted file mode 100644
index e4d5e387f..000000000
--- a/matlab/@dseries/exist.m
+++ /dev/null
@@ -1,57 +0,0 @@
-function l = exist(o, varname) % --*-- Unitary tests --*--
-
-% Tests if a variable exists in dseries object o.
-%
-% INPUTS
-% - o [dseries], dseries object.
-% - varname [string], name of a variable.
-%
-% OUTPUTS
-% - l [logical], equal to 1 (true) iff varname is a variable in dseries object o.
-
-% Copyright (C) 2014 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 ~ischar(varname)
- error(['dseries::exist: Input arguments ''' inputname(2) ''' has to be string!'])
-end
-
-l = ~isempty(strmatch(varname, o.name, 'exact'));
-
-%@test:1
-%$ % Define a datasets.
-%$ data = randn(10,4);
-%$
-%$ % Define names
-%$ names = {'Noddy';'Jumbo';'Sly';'Gobbo'};
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object and compute the absolute value.
-%$ try
-%$ ts = dseries(data,[],names,[]);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts.exist('Noddy'),true);
-%$ t(3) = dassert(ts.exist('noddy'),false);
-%$ t(4) = dassert(ts.exist('Boots'),false);
-%$ end
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dseries/exp.m b/matlab/@dseries/exp.m
deleted file mode 100644
index 06ed6a1f0..000000000
--- a/matlab/@dseries/exp.m
+++ /dev/null
@@ -1,52 +0,0 @@
-function ts = exp(ts)
-% Apply the exponential function to a Dynare time series object.
-
-%@info:
-%! @deftypefn {Function File} {@var{ts} =} log(@var{ts})
-%! @anchor{exp}
-%! Apply the exponential function to a Dynare time series object.
-%!
-%! @strong{Inputs}
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%!
-%! @strong{Outputs}
-%! @table @var
-%! @item ts
-%! Dynare time series object with transformed data field.
-%! @end table
-%!
-%! @strong{This function is called by:}
-%! None.
-%!
-%! @strong{This function calls:}
-%! None.
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-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 .
-
-ts.data = exp(ts.data);
-
-for i=1:vobs(ts)
- ts.name(i) = {['exp(' ts.name{i} ')']};
- ts.tex(i) = {['\exp(' ts.tex{i} ')']};
-end
\ No newline at end of file
diff --git a/matlab/@dseries/extract.m b/matlab/@dseries/extract.m
deleted file mode 100644
index 05b2d22a1..000000000
--- a/matlab/@dseries/extract.m
+++ /dev/null
@@ -1,230 +0,0 @@
-function A = extract(B,varargin) % --*-- Unitary tests --*--
-
-% Extract some variables from a database.
-
-% Copyright (C) 2012-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 .
-
-A = dseries();
-
-% Get the names of the variables to be extracted from dseries object B.
-VariableName_ = {};
-for i=1:nargin-1
- VariableName = varargin{i};
- idArobase = strfind(VariableName,'@');
- if mod(length(idArobase),2)
- error('dseries::extract: (Implicit loops) The number of @ symbols must be even!')
- end
- idBracket.open = strfind(VariableName,'[');
- idBracket.close = strfind(VariableName,']');
- if ~isequal(length(idBracket.open),length(idBracket.open))
- error('dseries::extract: (Matlab/Octave''s regular expressions) Check opening and closing square brackets!')
- end
- if length(idArobase)
- NumberOfImplicitLoops = .5*length(idArobase);
- idComma = cell(NumberOfImplicitLoops,1);
- expressions = cell(NumberOfImplicitLoops,1);
- for i=0:NumberOfImplicitLoops-1
- idComma(i+1) = { strfind(VariableName(idArobase(2*i+1)+1:idArobase(2*i+2)-1),',') };
- expressions(i+1) = { VariableName(idArobase(2*i+1)+1:idArobase(2*i+2)-1) };
- end
- if any(cellfun(@isempty,idComma))
- error('dseries::extract: (Implicit loops) Wrong syntax!')
- end
- switch NumberOfImplicitLoops
- case 1
- expression = expressions{1};
- idVariables_ = [];
- while ~isempty(expression)
- [token, expression] = strtok(expression,',');
- candidate = [VariableName(1:idArobase(1)-1), token, VariableName(idArobase(2)+1:end)];
- id = find(strcmp(candidate,B.name));
- if isempty(id)
- error(['dseries::extract: (Implicit loops) Variable ''' candidate ''' does not exist in dseries object ''' inputname(1) '''!'])
- else
- idVariables_ = [idVariables_; id];
- end
- end
- VariableName = B.name(idVariables_);
- case 2
- idVariables_ = [];
- expression_1 = expressions{1};
- while ~isempty(expression_1)
- [token_1, expression_1] = strtok(expression_1,',');
- expression_2 = expressions{2};
- while ~isempty(expression_2)
- [token_2, expression_2] = strtok(expression_2,',');
- candidate = [VariableName(1:idArobase(1)-1), token_1, VariableName(idArobase(2)+1:idArobase(3)-1), token_2, VariableName(idArobase(4)+1:end)];
- id = find(strcmp(candidate,B.name));
- if isempty(id)
- error(['dseries::extract: (Implicit loops) Variable ''' candidate ''' does not exist in dseries object ''' inputname(1) '''!'])
- else
- idVariables_ = [idVariables_; id];
- end
- end
- end
- VariableName = B.name(idVariables_);
- otherwise
- error('dseries::extract: (Implicit loops) Cannot unroll more than two implicit loops!')
- end
- VariableName_ = vertcat(VariableName_,VariableName);
- elseif length(idBracket.open)
- % Matlab/Octave's regular expressions.
- first_block_id = 0;
- last_block_id = 0;
- idVariables = find(isnotempty_cell(regexp(B.name,VariableName,'match')));
- if isempty(idVariables)
- error(['dseries::extract: Can''t find any variable matching ' VariableName ' pattern!'])
- end
- idVariables_ = [];
- for j = 1:length(idVariables)
- first_block_flag = 0;
- if (first_block_id && strcmp(B.name{idVariables(j)}(1:first_block_id),VariableName(1:first_block_id))) || ~first_block_id
- first_block_flag = 1;
- end
- last_block_flag = 0;
- if (last_block_id && strcmp(B.name{idVariables(j)}(end-last_block_id:end),VariableName(end-last_block_id:end))) || ~last_block_id
- last_block_flag = 1;
- end
- if first_block_flag && last_block_flag
- idVariables_ = [idVariables_; idVariables(j)];
- end
- end
- VariableName = B.name(idVariables_);
- VariableName_ = vertcat(VariableName_,VariableName);
- else
- VariableName_ = varargin(:);
- end
-end
-
-% Remove trailing white spaces if any
-VariableName_ = strtrim(VariableName_);
-
-% Get indices of the selected variables
-idVariableName = NaN(length(VariableName_),1);
-for i = 1:length(idVariableName)
- idx = find(strcmp(VariableName_{i},B.name));
- if isempty(idx)
- error(['dseries::extract: Variable ' VariableName_{i} ' is not a member of ' inputname(1) '!'])
- end
- idVariableName(i) = idx;
-end
-
-A.data = B.data(:,idVariableName);
-A.dates = B.dates;
-A.name = B.name(idVariableName);
-A.tex = B.tex(idVariableName);
-
-function b = isnotempty_cell(CellArray)
- CellArrayDimension = size(CellArray);
- b = NaN(CellArrayDimension);
- for i=1:CellArrayDimension(1)
- for j = 1:CellArrayDimension(2)
- b(i,j) = ~isempty(CellArray{i,j});
- end
- end
-
-
-%@test:1
-%$ % Define a data set.
-%$ A = rand(10,24);
-%$
-%$ % Define names
-%$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ a = ts1{'GDP_@1,2,3,4,5@'};
-%$ b = ts1{'@GDP,HICP@_1'};
-%$
-%$ % Expected results.
-%$ e1.data = A(:,1:5);
-%$ e1.nobs = 10;
-%$ e1.vobs = 5;
-%$ e1.name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'};
-%$ e1.freq = 1;
-%$ e1.init = dates(1,1);
-%$ e2.data = A(:,[1, 13]);
-%$ e2.nobs = 10;
-%$ e2.vobs = 2;
-%$ e2.name = {'GDP_1';'HICP_1'};
-%$ e2.freq = 1;
-%$ e2.init = dates(1,1);
-%$
-%$ % Check results.
-%$ t(1) = dassert(e1.data,a.data);
-%$ t(2) = dassert(e1.nobs,a.nobs);
-%$ t(3) = dassert(e1.vobs,a.vobs);
-%$ t(4) = dassert(e1.name,a.name);
-%$ t(5) = dassert(e1.init,a.init);
-%$ t(6) = dassert(e2.data,b.data);
-%$ t(7) = dassert(e2.nobs,b.nobs);
-%$ t(8) = dassert(e2.vobs,b.vobs);
-%$ t(9) = dassert(e2.name,b.name);
-%$ t(10) = dassert(e2.init,b.init);
-%$ T = all(t);
-%@eof:1
-
-
-%@test:2
-%$ % Define a data set.
-%$ A = rand(10,24);
-%$
-%$ % Define names
-%$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ try
-%$ a = ts1{'GDP_@1,2,3,4,55@'};
-%$ t = 0;
-%$ catch
-%$ t = 1;
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
-
-
-%@test:3
-%$ % Define a data set.
-%$ A = rand(10,24);
-%$
-%$ % Define names
-%$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ try
-%$ a = ts1{'@GDP,HICP@_@1,2,3,4,5@'};
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(a.name,{'GDP_1';'GDP_2';'GDP_3';'GDP_4';'GDP_5';'HICP_1';'HICP_2';'HICP_3';'HICP_4';'HICP_5'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:3
diff --git a/matlab/@dseries/firstdate.m b/matlab/@dseries/firstdate.m
deleted file mode 100644
index 9a7db50ea..000000000
--- a/matlab/@dseries/firstdate.m
+++ /dev/null
@@ -1,20 +0,0 @@
-function f = firstdate(o)
-
-% Copyright (C) 2014 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 .
-
-f = o.dates(1);
\ No newline at end of file
diff --git a/matlab/@dseries/frequency.m b/matlab/@dseries/frequency.m
deleted file mode 100644
index c2befb547..000000000
--- a/matlab/@dseries/frequency.m
+++ /dev/null
@@ -1,20 +0,0 @@
-function f = frequency(o)
-
-% Copyright (C) 2014 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 .
-
-f = o.dates.freq;
\ No newline at end of file
diff --git a/matlab/@dseries/horzcat.m b/matlab/@dseries/horzcat.m
deleted file mode 100644
index ea9a05531..000000000
--- a/matlab/@dseries/horzcat.m
+++ /dev/null
@@ -1,317 +0,0 @@
-function B = horzcat(varargin) % --*-- Unitary tests --*--
-
-% Overloads horzcat method for dseries objects.
-%
-% INPUTS
-% o A1 dseries object.
-% o A2 dseries object.
-% o ...
-%
-% OUTPUTS
-% o B dseries object.
-%
-% EXAMPLE 1
-% If A, B and C are dseries objects the following syntax:
-%
-% D = [A, B, C] ;
-%
-% Defines a dseries object D containing the variables appearing in A, B and C.
-%
-% REMARKS
-% o A1, A2, ... must not have common variables.
-
-% Copyright (C) 2011-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 .
-
-switch nargin
- case 0
- B = dseries();
- case 1
- B = varargin{1};
- otherwise
- B = concatenate(varargin{1}, varargin{2});
- if nargin>2
- B = horzcat(B, varargin{3:end});
- end
-end
-
-function a = concatenate(b,c)
- [n,message] = common_strings_in_cell_arrays(b.name,c.name);
- if isempty(b)
- a = c;
- return
- end
- if isempty(c)
- a = b;
- return
- end
- if n
- error(['dseries::horzcat: I cannot concatenate dseries objects with common variable names (' message ')!'])
- end
- if ~isequal(frequency(b),frequency(c))
- error('dseries::horzcat: All time series objects must have common frequency!')
- else
- a = dseries();
- end
- d_nobs_flag = 0;
- if ~isequal(nobs(b),nobs(c))
- d_nobs_flag = 1;
- end
- d_init_flag = 0;
- if ~isequal(firstdate(b),firstdate(c))
- d_init_flag = 1;
- end
- a.name = vertcat(b.name,c.name);
- a.tex = vertcat(b.tex,c.tex);
- if ~( d_nobs_flag(1) || d_init_flag(1) )
- a.data = [b.data,c.data];
- a.dates = b.dates;
- else
- nobs_b = nobs(b);
- nobs_c = nobs(c);
- if firstdate(b)<=firstdate(c)
- if firstdate(b)c_last_date
- c.data = [c.data; NaN(b_last_date-c_last_date, vobs(c))];
- end
- a.data = [b.data, c.data];
- a.dates = unique([b.dates, c.dates]);
- end
-
-%@test:1
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$ B = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'B1';'B2'};
-%$
-%$ % Define expected results.
-%$ e.init = dates(1,1);
-%$ e.freq = 1;
-%$ e.name = {'A1';'A2';'B1';'B2'};
-%$ e.data = [A,B];
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts3 = [ts1,ts2];
-%$
-%$ % Check the results.
-%$
-%$ t(1) = dassert(ts3.init,e.init);
-%$ t(2) = dassert(ts3.freq,e.freq);
-%$ t(3) = dassert(ts3.data,e.data);
-%$ t(4) = dassert(ts3.name,e.name);
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$ B = [transpose(5:12),2*transpose(5:12)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'B1';'B2'};
-%$
-%$ % Define initial date
-%$ A_init = 2001;
-%$ B_init = 2005;
-%$
-%$ % Define expected results.
-%$ e.init = dates('2001Y');
-%$ e.freq = 1;
-%$ e.name = {'A1';'A2';'B1';'B2'};
-%$ e.data = [ [A; NaN(2,2)], [NaN(4,2); B]];
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,A_init,A_name,[]);
-%$ ts2 = dseries(B,B_init,B_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts3 = [ts1,ts2];
-%$
-%$ % Check the results.
-%$ t(1) = dassert(ts3.init,e.init);
-%$ t(2) = dassert(ts3.freq,e.freq);
-%$ t(3) = dassert(ts3.data,e.data);
-%$ t(4) = dassert(ts3.name,e.name);
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Define a data set.
-%$ A = [transpose(1:7),2*transpose(1:7)];
-%$ B = [transpose(5:11),2*transpose(5:11)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'B1';'B2'};
-%$
-%$ % Define initial date
-%$ A_init = '1950Q1';
-%$ B_init = '1950Q3';
-%$
-%$ % Define expected results.
-%$ e.freq = 4;
-%$ e.init = dates('1950Q1');
-%$ e.name = {'A1';'A2';'B1';'B2'};
-%$ e.data = [ [A; NaN(2,2)], [NaN(2,2); B]];
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,A_init,A_name,[]);
-%$ ts2 = dseries(B,B_init,B_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts3 = [ts1,ts2];
-%$
-%$ % Check the results.
-%$ t(1) = dassert(ts3.init,e.init);
-%$ t(2) = dassert(ts3.freq,e.freq);
-%$ t(3) = dassert(ts3.data,e.data);
-%$ t(4) = dassert(ts3.name,e.name);
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ % Define a data set.
-%$ A = [transpose(1:7),2*transpose(1:7)];
-%$ B = [transpose(5:9),2*transpose(5:9)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'B1';'B2'};
-%$
-%$ % Define initial date
-%$ A_init = '1950Q1';
-%$ B_init = '1950Q3';
-%$
-%$ % Define expected results.
-%$ e.init = dates(A_init);
-%$ e.freq = 4;
-%$ e.name = {'A1';'A2';'B1';'B2'};
-%$ e.data = [ A, [NaN(2,2); B]];
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,A_init,A_name,[]);
-%$ ts2 = dseries(B,B_init,B_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts3 = [ts1,ts2];
-%$
-%$ % Check the results.
-%$ t(1) = dassert(ts3.init,e.init);
-%$ t(2) = dassert(ts3.freq,e.freq);
-%$ t(3) = dassert(ts3.data,e.data);
-%$ t(4) = dassert(ts3.name,e.name);
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$ B = [transpose(1:10),3*transpose(1:10)];
-%$ C = [transpose(1:10),4*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'B1';'B2'};
-%$ C_name = {'C1';'C2'};
-%$
-%$ % Define expected results.
-%$ e.init = dates(1,1);
-%$ e.freq = 1;
-%$ e.name = {'A1';'A2';'B1';'B2';'C1';'C2'};
-%$ e.data = [A,B,C];
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = dseries(C,[],C_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts4 = [ts1,ts2,ts3];
-%$
-%$ % Check the results.
-%$ t(1) = dassert(ts4.init,e.init);
-%$ t(2) = dassert(ts4.freq,e.freq);
-%$ t(3) = dassert(ts4.data,e.data);
-%$ t(4) = dassert(ts4.name,e.name);
-%$ T = all(t);
-%@eof:5
-
-%@test:6
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$ B = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'B1';'A2'};
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$
-%$ % Call the tested method.
-%$ try
-%$ ts3 = [ts1,ts2];
-%$ t = 0;
-%$ catch
-%$ t = 1;
-%$ end
-%$
-%$ T = t;
-%@eof:6
-
-%@test:7
-%$ % Define X
-%$ X = randn(30,2);
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries();
-%$ ts2 = dseries(randn(30,2),'1950Q2');
-%$
-%$ % Call the tested method.
-%$ try
-%$ ts3 = [ts1,ts2];
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts3.freq,4);
-%$ t(3) = dassert(ts3.data,X);
-%$ t(4) = dassert(ts3.dates(1),dates('1950Q2'));
-%$ end
-%$
-%$ T = t;
-%@eof:7
diff --git a/matlab/@dseries/hpcycle.m b/matlab/@dseries/hpcycle.m
deleted file mode 100644
index 90dd65303..000000000
--- a/matlab/@dseries/hpcycle.m
+++ /dev/null
@@ -1,96 +0,0 @@
-function ts = hpcycle(ts, lambda) % --*-- Unitary tests --*--
-
-% ts = hpcycle(ts, lambda)
-%
-% Extracts the cycle component from a dseries object using Hodrick Prescott filter.
-%
-% INPUTS
-% o ts dseries object.
-% o lambda positive scalar, trend smoothness parameter.
-%
-% OUTPUTS
-% o ts dseries object, with time series replaced by the cyclical component of the original time series.
-
-% 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>1
- if lambda<=0
- error(['dseries::hpcycle: Lambda must be a positive integer!'])
- end
-else
- lambda = [];
-end
-
-for i=1:vobs(ts)
- ts.name(i) = {['hpcycle(' ts.name{i} ')']};
- ts.tex(i) = {['\text{hpcycle}(' ts.tex{i} ')']};
-end
-
-[junk, data] = sample_hp_filter(ts.data,lambda);
-ts.data = data;
-
-%@test:1
-%$ plot_flag = 0;
-%$
-%$ % Create a dataset.
-%$ e = .2*randn(200,1);
-%$ u = randn(200,1);
-%$ stochastic_trend = cumsum(e);
-%$ deterministic_trend = .1*transpose(1:200);
-%$ x = zeros(200,1);
-%$ for i=2:200
-%$ x(i) = .9*x(i-1) + e(i);
-%$ end
-%$ y = x + stochastic_trend + deterministic_trend;
-%$
-%$ % Test the routine.
-%$ try
-%$ ts0 = dseries(y,'1950Q1');
-%$ ts1 = dseries(x,'1950Q1');
-%$ ts2 = ts0.hpcycle();
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts2.freq,4);
-%$ t(3) = dassert(ts2.init.freq,4);
-%$ t(4) = dassert(ts2.init.time,[1950, 1]);
-%$ t(5) = dassert(ts2.vobs,1);
-%$ t(6) = dassert(ts2.nobs,200);
-%$ end
-%$
-%$ % Show results
-%$ if plot_flag
-%$ plot(ts1.data,'-k'); % Plot of the stationary component.
-%$ hold on
-%$ plot(ts2.data,'--r'); % Plot of the filtered y.
-%$ hold off
-%$ axis tight
-%$ id = get(gca,'XTick');
-%$ set(gca,'XTickLabel',strings(ts1.dates(id)));
-%$ legend({'Stationary component of y', 'Filtered y'})
-%$ print('-depsc2','../doc/dynare.plots/HPCycle.eps')
-%$ system('convert -density 300 ../doc/dynare.plots/HPCycle.eps ../doc/dynare.plots/HPCycle.png');
-%$ system('convert -density 300 ../doc/dynare.plots/HPCycle.eps ../doc/dynare.plots/HPCycle.pdf');
-%$ system('convert -density 300 ../doc/dynare.plots/HPCycle.eps ../doc/dynare.plots/HPCycle.jpg');
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/hptrend.m b/matlab/@dseries/hptrend.m
deleted file mode 100644
index 6c699f922..000000000
--- a/matlab/@dseries/hptrend.m
+++ /dev/null
@@ -1,94 +0,0 @@
-function ts = hptrend(ts, lambda) % --*-- Unitary tests --*--
-
-% ts = hptrend(ts, lambda)
-%
-% Extracts the trend component from a dseries object using Hodrick Prescott filter.
-%
-% INPUTS
-% o ts dseries object.
-% o lambda positive scalar, trend smoothness parameter.
-%
-% OUTPUTS
-% o ts dseries object, with time series replaced by the trend component of the original time series.
-
-% 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>1
- if lambda<=0
- error(['dseries::hptrend: Lambda must be a positive integer!'])
- end
-else
- lambda = [];
-end
-
-for i=1:vobs(ts)
- ts.name(i) = {['hptrend(' ts.name{i} ')']};
- ts.tex(i) = {['\text{hptrend}(' ts.tex{i} ')']};
-end
-
-ts.data = sample_hp_filter(ts.data,lambda);
-
-%@test:1
-%$ plot_flag = 0;
-%$
-%$ % Create a dataset.
-%$ e = .2*randn(200,1);
-%$ u = randn(200,1);
-%$ stochastic_trend = cumsum(e);
-%$ deterministic_trend = .1*transpose(1:200);
-%$ x = zeros(200,1);
-%$ for i=2:200
-%$ x(i) = .75*x(i-1) + e(i);
-%$ end
-%$ y = x + stochastic_trend + deterministic_trend;
-%$
-%$ % Test the routine.
-%$ try
-%$ ts0 = dseries(y,'1950Q1');
-%$ ts1 = dseries(stochastic_trend+deterministic_trend,'1950Q1');
-%$ ts2 = ts0.hptrend(1600);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts2.freq,4);
-%$ t(3) = dassert(ts2.init.freq,4);
-%$ t(4) = dassert(ts2.init.time,[1950, 1]);
-%$ t(5) = dassert(ts2.vobs,1);
-%$ t(6) = dassert(ts2.nobs,200);
-%$ end
-%$
-%$ % Show results
-%$ if plot_flag
-%$ plot(ts1.data,'-k'); % Plot of the stationary component.
-%$ hold on
-%$ plot(ts2.data,'--r'); % Plot of the filtered y.
-%$ hold off
-%$ axis tight
-%$ id = get(gca,'XTick');
-%$ set(gca,'XTickLabel',strings(ts1.dates(id)));
-%$ legend({'Nonstationary component of y', 'Estimated trend of y'})
-%$ print('-depsc2','../doc/dynare.plots/HPTrend.eps')
-%$ system('convert -density 300 ../doc/dynare.plots/HPTrend.eps ../doc/dynare.plots/HPTrend.png');
-%$ system('convert -density 300 ../doc/dynare.plots/HPTrend.eps ../doc/dynare.plots/HPTrend.pdf');
-%$ system('convert -density 300 ../doc/dynare.plots/HPTrend.eps ../doc/dynare.plots/HPTrend.jpg');
-%$ end
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/insert.m b/matlab/@dseries/insert.m
deleted file mode 100644
index a6f17eafd..000000000
--- a/matlab/@dseries/insert.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function ts = insert(ts,us,id) % --*-- Unitary tests --*--
-
-% Add a variable in a dseries object.
-
-%@info:
-%! @deftypefn {Function File} {@var{ts} =} insert (@var{ts}, @var{us}, @var{id})
-%! @anchor{dseries/insert}
-%! @sp 1
-%! Insert method for the dseries class. Insert new variables (@var{us}) in a dseries object (@var{ts}) at
-%! positions @var{id}.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Object instantiated by @ref{dseries}.
-%! @item us
-%! Object instantiated by @ref{dseries}.
-%! @item id
-%! vector of integers.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Object instantiated by @ref{dseries}, without variable (@var{a}).
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% 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 .
-
-[n,message] = common_strings_in_cell_arrays(ts.name,us.name);
-
-if n
- error(['dseries::insert: Variable(s) ' message ' already exist in ''' inputname(1) '''!'])
-end
-
-if ~isequal(frequency(ts),frequency(us))
- error(['dseries::insert: ''' inputname(1) ''' and ''' inputname(2) ''' dseries objects must have common frequencies!'])
-end
-
-[ts,us] = align(ts, us);
-
-n = length(id);
-
-if n>1
- [id, jd] = sort(id);
- us.data = us.data(:,jd);
- us.name = us.name(jd);
- us.tex = us.tex(jd);
-end
-
-for i=1:n
- ts.data = insert_column_vector_in_a_matrix(ts.data,us.data(:,i),id(i));
- ts.name = insert_object_in_a_one_dimensional_cell_array(ts.name,us.name{i},id(i));
- ts.tex = insert_object_in_a_one_dimensional_cell_array(ts.tex,us.tex{i},id(i));
- id = id+1;
-end
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(5,2);
-%$
-%$ % Define names.
-%$ A_name = {'A1'; 'A2';'A3'};
-%$ B_name = {'B1'; 'B2'};
-%$
-%$ % Define initial dates.
-%$ A_init = '1950Q1';
-%$ B_init = '1950Q3';
-%$
-%$ % Instantiate two dseries objects.
-%$ ts1 = dseries(A, A_init, A_name,[]);
-%$ ts2 = dseries(B, B_init, B_name,[]);
-%$
-%$ try
-%$ ts1 = insert(ts1,ts2,[1,2]);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts1.vobs,{'B1';'A1';'B2';'A3'});
-%$ t(3) = dassert(ts1.nobs,10);
-%$ eB = [NaN(2,2); B; NaN(3,2)];
-%$ t(4) = dassert(ts1.data,[eB(:,1), A(:,1), eB(:,2), A(:,2:3)], 1e-15);
-%$ end
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/isempty.m b/matlab/@dseries/isempty.m
deleted file mode 100644
index 5df634e46..000000000
--- a/matlab/@dseries/isempty.m
+++ /dev/null
@@ -1,40 +0,0 @@
-function b = isempty(A)
-%@info:
-%! @deftypefn {Function File} {@var{b} =} isempty (@var{A})
-%! @anchor{@dseries/isempty}
-%! @sp 1
-%! Overloads the isempty function for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item 1
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! Scalar integer (0 or 1).
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2012 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 .
-
-b = isempty(A.data);
\ No newline at end of file
diff --git a/matlab/@dseries/isequal.m b/matlab/@dseries/isequal.m
deleted file mode 100644
index 8a3c99a37..000000000
--- a/matlab/@dseries/isequal.m
+++ /dev/null
@@ -1,70 +0,0 @@
-function C = isequal(A, B, tol)
-
-% Overloads the isequal Matlab/Octave's function.
-%
-% INPUTS
-% o A dseries object (T periods, N variables).
-% o B dseries object (T periods, N variables).
-% o tol tolerance parameter.
-%
-% OUTPUTS
-% o C Integer scalar equal to zero or one.
-
-% 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
- error('dseries::isequal: I need exactly two input arguments!')
-end
-
-if ~isdseries(B)
- error('dseries::isequal: Both input arguments must be dseries objects!')
-end
-
-if ~isequal(nobs(A), nobs(B))
- C = 0;
- return
-end
-
-if ~isequal(vobs(A), vobs(B))
- C = 0;
- return
-end
-
-if ~isequal(frequency(A),frequency(B))
- C = 0;
- return
-end
-
-if ~isequal(A.dates,B.dates)
- C = 0;
- return
-end
-
-if ~isequal(A.name,B.name)
- warning('dseries::isequal: Both input arguments do not have the same variables!')
-end
-
-if ~isequal(A.tex,B.tex)
- warning('dseries::isequal: Both input arguments do not have the same tex names!')
-end
-
-if nargin<3
- C = isequal(A.data, B.data);
-else
- C = ~(max(abs(A.data(:)-B.data(:)))>tol);
-end
\ No newline at end of file
diff --git a/matlab/@dseries/lag.m b/matlab/@dseries/lag.m
deleted file mode 100644
index 72197f05d..000000000
--- a/matlab/@dseries/lag.m
+++ /dev/null
@@ -1,85 +0,0 @@
-function us = lag(ts,p) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} lag (@var{ts})
-%! @anchor{lag}
-%! @sp 1
-%! Computes lagged time series.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item us
-%! Dynare time series object with transformed data field.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% 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 .
-
-% Set default number of lags
-if nargin<2
- p = 1;
-end
-
-if p<=0
- error('dseries::lag: Second input argument must be strictly positive! Use lead method instead.')
-end
-
-% Copy of ts dseries object
-us = ts;
-
-% Update data member
-us.data = [NaN(p, vobs(ts)); ts.data(1:end-p,:)];
-
-for i=1:vobs(ts)
- us.name(i) = {[ 'lag(' ts.name{i} ',' int2str(p) ')']};
- us.tex(i) = {[ ts.tex{i} '_{-' int2str(p) '}']};
-end
-
-%@test:1
-%$ t = zeros(4,1);
-%$
-%$ try
-%$ data = transpose(0:1:50);
-%$ ts = dseries(data,'1950Q1');
-%$ a = ts.lag;
-%$ b = ts.lag.lag;
-%$ c = lag(ts,2);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ DATA = [NaN(1,ts.vobs); transpose(0:1:49)];
-%$ t(2) = dassert(a.data,DATA,1e-15);
-%$ DATA = [NaN(2,ts.vobs); transpose(0:1:48)];
-%$ t(3) = dassert(b.data,DATA,1e-15);
-%$ t(4) = dassert(b.data,c.data,1e-15);
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/lastdate.m b/matlab/@dseries/lastdate.m
deleted file mode 100644
index 972a70e18..000000000
--- a/matlab/@dseries/lastdate.m
+++ /dev/null
@@ -1,20 +0,0 @@
-function l = lastdate(o)
-
-% Copyright (C) 2014 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 .
-
-l = o.dates(end);
\ No newline at end of file
diff --git a/matlab/@dseries/lead.m b/matlab/@dseries/lead.m
deleted file mode 100644
index 5c5a984d1..000000000
--- a/matlab/@dseries/lead.m
+++ /dev/null
@@ -1,85 +0,0 @@
-function us = lead(ts,p) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} lead (@var{ts})
-%! @anchor{lag}
-%! @sp 1
-%! Computes leaded time series.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item us
-%! Dynare time series object with transformed data field.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% 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 .
-
-% Set default number of leads
-if nargin<2
- p = 1;
-end
-
-if p<=0
- error('dseries::lead: Second input argument must be strictly positive! Use lag method instead.')
-end
-
-% Copy of ts dseries object
-us = ts;
-
-% Update data member
-us.data = [ ts.data(p+1:end,:); NaN(p, vobs(ts));];
-
-for i=1:vobs(ts)
- us.name(i) = {[ 'lead(' ts.name{i} ',' int2str(p) ')']};
- us.tex(i) = {[ ts.tex{i} '_{+' int2str(p) '}']};
-end
-
-%@test:1
-%$ t = zeros(4,1);
-%$
-%$ try
-%$ data = transpose(0:1:50);
-%$ ts = dseries(data,'1950Q1');
-%$ a = ts.lead;
-%$ b = ts.lead.lead;
-%$ c = lead(ts,2);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ DATA = [transpose(1:50); NaN(1,ts.vobs)];
-%$ t(2) = dassert(a.data,DATA,1e-15);
-%$ DATA = [transpose(2:50); NaN(2,ts.vobs)];
-%$ t(3) = dassert(b.data,DATA,1e-15);
-%$ t(4) = dassert(b.data,c.data,1e-15);
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/log.m b/matlab/@dseries/log.m
deleted file mode 100644
index 2ff8e6488..000000000
--- a/matlab/@dseries/log.m
+++ /dev/null
@@ -1,55 +0,0 @@
-function ts = log(ts)
-
-%@info:
-%! @deftypefn {Function File} {@var{ts} =} log(@var{ts})
-%! @anchor{log}
-%! Apply the logarithm function to a Dynare time series object.
-%!
-%! @strong{Inputs}
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%!
-%! @strong{Outputs}
-%! @table @var
-%! @item ts
-%! Dynare time series object with transformed data field.
-%! @end table
-%!
-%! @strong{This function is called by:}
-%! None.
-%!
-%! @strong{This function calls:}
-%! None.
-%!
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-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 any(ts.data.
-
-if ~isdseries(C)
- error('dseries::merge: Both inputs must be dseries objects!')
-end
-
-if ~isequal(frequency(B),frequency(C))
- error(['dseries::merge: Cannot merge ' inputname(1) ' and ' inputname(2) ' (frequencies are different)!'])
-end
-
-A = dseries();
-[A.name, IBC, junk] = unique([B.name; C.name], 'last');
-tex = [B.tex; C.tex];
-A.tex = tex(IBC);
-
-if nobs(B) == 0
- A = C;
-elseif nobs(C) == 0
- A = B;
-elseif firstdate(B) >= firstdate(C)
- diff = firstdate(B) - firstdate(C);
- A_nobs = max(nobs(B) + diff, nobs(C));
- A.data = NaN(A_nobs, vobs(A));
- Z1 = [NaN(diff, vobs(B));B.data];
- if nobs(A) > nobs(B) + diff
- Z1 = [Z1; NaN(nobs(A)-(nobs(B) + diff), vobs(B))];
- end;
- Z2 = C.data;
- if nobs(A) > nobs(C)
- Z2 = [Z2; NaN(nobs(A) - nobs(C), vobs(C))];
- end;
- Z = [Z1 Z2];
- A.data = Z(:,IBC);
- A_init = firstdate(C);
-else
- diff = firstdate(C) - firstdate(B);
- A_nobs = max(nobs(C) + diff, nobs(B));
- A.data = NaN(A_nobs, vobs(A));
- Z1 = [NaN(diff, vobs(C)); C.data];
- if nobs(A) > nobs(C) + diff
- Z1 = [Z1; NaN(nobs(A)-(nobs(C) + diff), vobs(C))];
- end
- Z2 = B.data;
- if nobs(A) > nobs(B)
- Z2 = [Z2; NaN(nobs(A) - nobs(B), vobs(B))];
- end;
- Z = [Z2 Z1];
- A.data = Z(:,IBC);
- A_init = B.init;
-end
-
-A.dates = A_init:A_init+(nobs(A)-1);
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,2); B = randn(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'}; B_name = {'A1'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = merge(ts1,ts2);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,[B, A(:,2)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,2); B = randn(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'}; B_name = {'B1'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = merge(ts1,ts2);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts3.vobs,3);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,[A, B],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:2
\ No newline at end of file
diff --git a/matlab/@dseries/minus.m b/matlab/@dseries/minus.m
deleted file mode 100644
index 2b6bb0d86..000000000
--- a/matlab/@dseries/minus.m
+++ /dev/null
@@ -1,196 +0,0 @@
-function A = minus(B,C) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} minus (@var{B},@var{C})
-%! @anchor{@dseries/minus}
-%! @sp 1
-%! Overloads the minus method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @item C
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object.
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-2014, 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 isnumeric(B) && (isscalar(B) || isvector(B))
- if ~isdseries(C)
- error('dseries::minus: Second input argument must be a dseries object!')
- end
- A = C;
- A.data = bsxfun(@minus,B,C.data);
- return;
-end
-
-if isnumeric(C) && (isscalar(C) || isvector(C))
- if ~isdseries(B)
- error('dseries::minus: First input argument must be a dseries object!')
- end
- A = B;
- A.data = bsxfun(@minus,B.data,C);
- return
-end
-
-if ~isequal(vobs(B), vobs(C)) && ~(isequal(vobs(B),1) || isequal(vobs(C),1))
- error(['dseries::minus: Cannot substract ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
-else
- if vobs(B)>vobs(C)
- idB = 1:vobs(B);
- idC = ones(1:vobs(B));
- elseif vobs(B)1
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,[A(:,1)-B, A(:,2)-B],1e-15);
-%$ t(5) = dassert(ts3.name,{'minus(A1;B1)';'minus(A2;B1)'});
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:3
-%$ % Define a datasets.
-%$ A = rand(10,2); B = randn(5,1);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'}; B_name = {'B1'};
-%$
-%$ t = zeros(5,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = ts1-ts2;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,[A(1:5,1)-B(1:5), A(1:5,2)-B(1:5) ; NaN(5,2)],1e-15);
-%$ t(5) = dassert(ts3.name,{'minus(A1;B1)';'minus(A2;B1)'});
-%$ end
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ ts1 = dseries(ones(3,1));
-%$ ts2 = ts1-1;
-%$ ts3 = 2-ts1;
-%$ t(1) = isequal(ts2.data, zeros(3,1));
-%$ t(2) = isequal(ts3.data, ts1.data);
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ ts1 = dseries(ones(3,2));
-%$ ts2 = ts1-1;
-%$ ts3 = 2-ts1;
-%$ t(1) = isequal(ts2.data, zeros(3,2));
-%$ t(2) = isequal(ts3.data, ts1.data);
-%$ T = all(t);
-%@eof:5
-
-%@test:6
-%$ ts1 = dseries(ones(3,2));
-%$ ts2 = ts1-ones(3,1);
-%$ ts3 = 2*ones(3,1)-ts1;
-%$ t(1) = isequal(ts2.data, zeros(3,2));
-%$ t(2) = isequal(ts3.data, ts1.data);
-%$ T = all(t);
-%@eof:6
-
-%@test:7
-%$ ts1 = dseries(ones(3,2));
-%$ ts2 = ts1-ones(1,2);
-%$ ts3 = 2*ones(1,2)-ts1;
-%$ t(1) = isequal(ts2.data, zeros(3,2));
-%$ t(2) = isequal(ts3.data, ts1.data);
-%$ T = all(t);
-%@eof:7
diff --git a/matlab/@dseries/mpower.m b/matlab/@dseries/mpower.m
deleted file mode 100644
index 3b327d0c6..000000000
--- a/matlab/@dseries/mpower.m
+++ /dev/null
@@ -1,168 +0,0 @@
-function A = mpower(B,C) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} mpower (@var{B},@var{C})
-%! @anchor{@dseries/mpower}
-%! @sp 1
-%! Overloads the mpower method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! Dynare time series object instantiated by @ref{dseries}, with T observations and N variables.
-%! @item C
-%! Real scalar or a dseries object with T observations and N variables.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! dseries object with T observations and N variables.
-%! @end deftypefn
-%@eod:
-
-% 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 isnumeric(B) && isvector(B) && length(B)>1
- if ~isdseries(C)
- error('dseries::mpower: Second input argument must be a dseries object!')
- end
- A = C;
- A.data = bsxfun(@power,C.data,B);
- return;
-end
-
-if isnumeric(C) && isvector(C) && length(C)>1
- if ~isdseries(B)
- error('dseries::mpower: First input argument must be a dseries object!')
- end
- A = B;
- A.data = bsxfun(@power,B.data,C);
- return
-end
-
-if isdseries(B) && isnumeric(C) && isreal(C) && isscalar(C)
- A = dseries();
- A.dates = B.dates;
- A.data = B.data.^C;
- A.name = cell(vobs(A),1);
- A.tex = cell(vobs(A),1);
- for i=1:vobs(A)
- A.name(i) = {['power(' B.name{i} ';' num2str(C) ')']};
- A.tex(i) = {[B.tex{i} '^' num2str(C) ]};
- end
- return
-end
-
-if isdseries(B) && isdseries(C)
- if isequal(nobs(B),nobs(C)) && isequal(vobs(B), vobs(C)) && isequal(frequency(B),frequency(C))
- A = dseries();
- A.data = B.data.^C.data;
- A.dates = B.dates;
- A.name = cell(vobs(A),1);
- A.tex = cell(vobs(A),1);
- for i=1:vobs(A)
- A.name(i) = {['power(' B.name{i} ';' C.name{i} ')']};
- A.tex(i) = {[B.tex{i} '^{' C.tex{i} '}']};
- end
- else
- error('dseries::mpower: If both input arguments are dseries objects, they must have the same numbers of variables and observations and common frequency!')
- end
- return
-end
-
-error(['dseries::mpower: Wrong calling sequence!'])
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,2); B = randn(10,2);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'}; B_name = {'B1';'B2'};
-%$
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = ts1^ts2;
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,A.^B,1e-15);
-%$ t(5) = dassert(ts3.name,{'power(A1;B1)';'power(A2;B2)'});
-%$ t(6) = dassert(ts3.tex,{'A1^{B1}';'A2^{B2}'});
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,2);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts3 = ts1^2;
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,A.^2,1e-15);
-%$ t(5) = dassert(ts3.name,{'power(A1;2)';'power(A2;2)'});
-%$ t(6) = dassert(ts3.tex,{'A1^2';'A2^2'});
-%$ end
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Define a dseries object
-%$ ts1=dseries([1 1;2 2;3 3], '1999y', {'MyVar1','MyVar2'});
-%$
-%$ % Use the power
-%$ try
-%$ ts2 = ts1^transpose(1:3);
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,3);
-%$ t(4) = dassert(ts2.data,bsxfun(@power,ts1.data,transpose(1:3)),1e-15);
-%$ t(5) = dassert(ts2.name,{'MyVar1';'MyVar2'});
-%$ t(6) = dassert(ts2.tex,{'MyVar1';'MyVar2'});
-%$ end
-%$ T = all(t);
-%@eof:3
\ No newline at end of file
diff --git a/matlab/@dseries/mrdivide.m b/matlab/@dseries/mrdivide.m
deleted file mode 100644
index 8dfacbc5b..000000000
--- a/matlab/@dseries/mrdivide.m
+++ /dev/null
@@ -1,174 +0,0 @@
-function A = mrdivide(B,C) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} mrdivide (@var{B},@var{C})
-%! @anchor{@dseries/mrdivide}
-%! @sp 1
-%! Overloads the mrdivide method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @item C
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object.
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-2014 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 isnumeric(B) && (isscalar(B) || isvector(B))
- if ~isdseries(C)
- error('dseries::mrdivide: Second input argument must be a dseries object!')
- end
- A = C;
- A.data = bsxfun(@rdivide,B,C.data);
- return;
-end
-
-if isnumeric(C) && (isscalar(C) || isvector(C))
- if ~isdseries(B)
- error('dseries::mrdivide: First input argument must be a dseries object!')
- end
- A = B;
- A.data = bsxfun(@rdivide,B.data,C);
- return
-end
-
-if isdseries(B) && isdseries(C)
- % Element by element divisions of two dseries object
- if ~isequal(vobs(B), vobs(C)) && ~(isequal(vobs(B),1) || isequal(vobs(C),1))
- error(['dseries::times: Cannot divide ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
- else
- if vobs(B)>vobs(C)
- idB = 1:vobs(B);
- idC = ones(1:vobs(B));
- elseif vobs(B)1
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,[A(:,1)./B, A(:,2)./B],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,2); B = pi;
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = ts1/B;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,A/B,1e-15);
-%$ end
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Define a datasets.
-%$ A = rand(10,2); B = pi;
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = B/ts1;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,B./A,1e-15);
-%$ end
-%$ T = all(t);
-%@eof:3
diff --git a/matlab/@dseries/mtimes.m b/matlab/@dseries/mtimes.m
deleted file mode 100644
index 332801026..000000000
--- a/matlab/@dseries/mtimes.m
+++ /dev/null
@@ -1,197 +0,0 @@
-function A = mtimes(B,C) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} mtimes (@var{B},@var{C})
-%! @anchor{@dseries/mtimes}
-%! @sp 1
-%! Overloads the mtimes method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @item C
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object.
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-2014 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 isnumeric(B) && (isscalar(B) || isvector(B))
- if ~isdseries(C)
- error('dseries::mtimes: Second input argument must be a dseries object!')
- end
- A = C;
- A.data = bsxfun(@times,C.data,B);
- return;
-end
-
-if isnumeric(C) && (isscalar(C) || isvector(C))
- if ~isdseries(B)
- error('dseries::mtimes: First input argument must be a dseries object!')
- end
- A = B;
- A.data = bsxfun(@times,B.data,C);
- return
-end
-
-if isdseries(B) && isdseries(C)
- % Element by element multiplication of two dseries object
- if ~isequal(vobs(B), vobs(C)) && ~(isequal(vobs(B),1) || isequal(vobs(C),1))
- error(['dseries::times: Cannot multiply ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
- else
- if vobs(B)>vobs(C)
- idB = 1:vobs(B);
- idC = ones(1:vobs(B));
- elseif vobs(B).
-
-if nargin~=2
- error('dseries::ne: I need exactly two input arguments!')
-end
-
-if ~(isdseries(A) && isdseries(B))
- error('dseries::ne: Both input arguments must be dseries objects!')
-end
-
-if ~isequal(nobs(A), nobs(B))
- warning('dseries::ne: Both input arguments should have the same number of observations!')
- C = 1;
- return
-end
-
-if ~isequal(vobs(A), vobs(B))
- warning('dseries::ne: Both input arguments should have the same number of observations!')
- C = 1;
- return
-end
-
-if ~isequal(frequency(A),frequency(B))
- warning('dseries::ne: Both input arguments should have the same frequencies!')
- C = 1;
- return
-end
-
-if ~isequal(firstdate(A),firstdate(B))
- warning('dseries::ne: Both input arguments should have the same initial period!')
- C = 1;
- return
-end
-
-if ~isequal(A.name,B.name)
- warning('dseries::ne: Both input arguments do not have the same variables!')
-end
-
-if ~isequal(A.tex,B.tex)
- warning('dseries::ne: Both input arguments do not have the same tex names!')
-end
-
-C = ne(A.data, B.data);
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$ B = A;
-%$ B(:,3) = rand(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'A3'}; B_name = A_name;
-%$
-%$ t = zeros(2,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts2 = ts1;
-%$ a = eq(ts1,ts2);
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if t(1)
-%$ t(2) = dassert(a,logical([ones(10,2), ones(10,1)]));
-%$ end
-%$ T = all(t);
-%@eof:1
\ No newline at end of file
diff --git a/matlab/@dseries/nobs.m b/matlab/@dseries/nobs.m
deleted file mode 100644
index dc6fc7653..000000000
--- a/matlab/@dseries/nobs.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function s = nobs(ts)
-
-% Returns the number of observations in a @dseries object.
-
-% Copyright (C) 2014 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 .
-
-s = rows(ts.data);
\ No newline at end of file
diff --git a/matlab/@dseries/numel.m b/matlab/@dseries/numel.m
deleted file mode 100644
index 85cd84962..000000000
--- a/matlab/@dseries/numel.m
+++ /dev/null
@@ -1,20 +0,0 @@
-function n = numel(obj, varargin)
-
-% Copyright (C) 2012-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 .
-
-n = 1;
diff --git a/matlab/@dseries/plot.m b/matlab/@dseries/plot.m
deleted file mode 100644
index 058a44dd0..000000000
--- a/matlab/@dseries/plot.m
+++ /dev/null
@@ -1,84 +0,0 @@
-function h = plot(ts, varargin)
-
-% Overloads Matlab/Octave's plot function for dseries objects.
-
-% 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 .
-
-% Get the number of dseries objects
-if isequal(nargin,1)
- ndseries = 1;
- nvariables = vobs(ts);
- nobservations = nobs(ts);
-else
- if isdseries(varargin{1})
- ndseries = 2;
- nvariables = vobs(ts);
- nobservations = nobs(ts);
- if nargin>2 && any(cellfun(@isdseries,varargin(2:end)))
- error('dseries::plot: You cannot pass more two dseries objects!')
- end
- if ~isequal(nvariables, vobs(varargin{1}))
- error('dseries::plot: The two dseries objects must have the same number of variables!')
- end
- if ~isequal(nobservations, nobs(varargin{1}))
- error('dseries::plot: The two dseries objects must have the same number of observations!')
- end
- else
- ndseries = 1;
- nvariables = vobs(ts);
- nobservations = nobs(ts);
- end
-end
-
-switch ndseries
- case 1
- if isequal(nvariables,1)
- hh = plot(ts.data,varargin{:});
- else
- if length(varargin)
- message = sprintf('dseries::plot: dseries object %s has %d>1 variables but you passed additional arguments to the plot function.\n These additional arguments won''t ne interpreted. Use the Matlab/Octave set command and the plot\n handle instead if you wish to modify the properties of the plotted time series.',inputname(1),nvariables);
- warning(message)
- end
- hh = plot(ts.data);
- end
- axis tight;
- id = get(gca,'XTick');
- if isequal(id(1),0)
- dates = strings([ts.dates(1)-1,ts.dates(id(2:end))]);
- else
- dates = strings(ts.dates(id));
- end
- set(gca,'XTickLabel',dates);
- case 2
- [ts0, ts1] = align(ts, varargin{1});
- if isequal(nvariables,1)
- hh = plot(ts0.data, ts1.data, varargin{2:end});
- else
- if length(varargin)>1
- message = sprintf('dseries::plot: dseries objects %s and %s have %d>1 variables but you passed additional arguments to the plot function.\n These additional arguments won''t ne interpreted. Use the Matlab/Octave set command and the plot\n handle instead if you wish to modify the properties of the plotted time series.',inputname(1),inputname(2),nvariables);
- warning(message)
- end
- hh = plot(ts0.data, ts1.data);
- end
- otherwise
- error('dseries::plot: This is a bug! Please report the bug to the authors of Dynare.')
-end
-
-if nargout
- h = hh;
-end
\ No newline at end of file
diff --git a/matlab/@dseries/plus.m b/matlab/@dseries/plus.m
deleted file mode 100644
index d37b50621..000000000
--- a/matlab/@dseries/plus.m
+++ /dev/null
@@ -1,325 +0,0 @@
-function A = plus(B,C) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} plus (@var{B},@var{C})
-%! @anchor{@dseries/plus}
-%! @sp 1
-%! Overloads the plus method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @item C
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object.
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2014 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 isnumeric(B) && (isscalar(B) || isvector(B))
- if ~isdseries(C)
- error('dseries::plus: Second input argument must be a dseries object!')
- end
- A = C;
- A.data = bsxfun(@plus,C.data,B);
- return;
-end
-
-if isnumeric(C) && (isscalar(C) || isvector(C))
- if ~isdseries(B)
- error('dseries::plus: First input argument must be a dseries object!')
- end
- A = B;
- A.data = bsxfun(@plus,B.data,C);
- return
-end
-
-if ~isequal(vobs(B), vobs(C)) && ~(isequal(vobs(B), 1) || isequal(vobs(C), 1))
- error(['dseries::plus: Cannot add ' inputname(1) ' and ' inputname(2) ' (wrong number of variables)!'])
-else
- if vobs(B)>vobs(C)
- idB = 1:vobs(B);
- idC = ones(1,vobs(B));
- elseif vobs(B)1
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,[A(:,1)+B, A(:,2)+B],1e-15);
-%$ t(5) = dassert(ts3.name,{'plus(A1;B1)';'plus(A2;B1)'});
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,2); B = randn(10,1);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'}; B_name = {'B1'};
-%$
-%$ t = zeros(5,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = ts1+ts2;
-%$ ts4 = ts3+ts1;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts4.vobs,2);
-%$ t(3) = dassert(ts4.nobs,10);
-%$ t(4) = dassert(ts4.data,[A(:,1)+B, A(:,2)+B]+A,1e-15);
-%$ t(5) = dassert(ts4.name,{'plus(plus(A1;B1);A1)';'plus(plus(A2;B1);A2)'});
-%$ end
-%$ T = all(t);
-%@eof:2
-
-
-%@test:3
-%$ % Define a datasets.
-%$ A = rand(10,2); B = randn(5,1);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'}; B_name = {'B1'};
-%$
-%$ t = zeros(5,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = ts1+ts2;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts3.vobs,2);
-%$ t(3) = dassert(ts3.nobs,10);
-%$ t(4) = dassert(ts3.data,[A(1:5,1)+B(1:5), A(1:5,2)+B(1:5) ; NaN(5,2)],1e-15);
-%$ t(5) = dassert(ts3.name,{'plus(A1;B1)';'plus(A2;B1)'});
-%$ end
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ t = zeros(7,1);
-%$
-%$ try
-%$ ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
-%$ us = dseries(transpose(1:5),'1949q4',{'Consumption'}, {'C_t'});
-%$ vs = ts+us;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(us.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(us.init.time,[1949, 4]);
-%$ t(6) = dassert(vs.init.time,[1949, 4]);
-%$ t(7) = dassert(vs.nobs,6);
-%$ end
-%$
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ t = zeros(7,1);
-%$
-%$ try
-%$ ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
-%$ us = dseries(transpose(1:7),'1950q1',{'Consumption'}, {'C_t'});
-%$ vs = ts+us;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(us.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(us.init.time,[1950, 1]);
-%$ t(6) = dassert(vs.init.time,[1950, 1]);
-%$ t(7) = dassert(vs.nobs,7);
-%$ end
-%$
-%$ T = all(t);
-%@eof:5
-
-%@test:6
-%$ t = zeros(8,1);
-%$
-%$ try
-%$ ts = dseries(transpose(1:5),'1950q1',{'Output'}, {'Y_t'});
-%$ us = dseries(transpose(1:7),'1950q1',{'Consumption'}, {'C_t'});
-%$ vs = ts+us('1950q1').data;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(us.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(us.init.time,[1950, 1]);
-%$ t(6) = dassert(vs.init.time,[1950, 1]);
-%$ t(7) = dassert(vs.nobs,5);
-%$ t(8) = dassert(vs.data,ts.data+1);
-%$ end
-%$
-%$ T = all(t);
-%@eof:6
-
-%@test:7
-%$ t = zeros(8,1);
-%$
-%$ try
-%$ ts = dseries([transpose(1:5), transpose(1:5)],'1950q1');
-%$ us = dseries([transpose(1:7),2*transpose(1:7)],'1950q1');
-%$ vs = ts+us('1950q1').data;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(us.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(us.init.time,[1950, 1]);
-%$ t(6) = dassert(vs.init.time,[1950, 1]);
-%$ t(7) = dassert(vs.nobs,5);
-%$ t(8) = dassert(vs.data,bsxfun(@plus,ts.data,[1, 2]));
-%$ end
-%$
-%$ T = all(t);
-%@eof:7
-
-%@test:8
-%$ ts1 = dseries(ones(3,1));
-%$ ts2 = ts1+1;
-%$ ts3 = 1+ts1;
-%$ t(1) = isequal(ts2.data, 2*ones(3,1));
-%$ t(2) = isequal(ts3.data, 2*ones(3,1));
-%$ T = all(t);
-%@eof:8
-
-%@test:9
-%$ ts1 = dseries(ones(3,2));
-%$ ts2 = ts1+1;
-%$ ts3 = 1+ts1;
-%$ t(1) = isequal(ts2.data, 2*ones(3,2));
-%$ t(2) = isequal(ts3.data, 2*ones(3,2));
-%$ T = all(t);
-%@eof:9
-
-%@test:10
-%$ ts1 = dseries(ones(3,2));
-%$ ts2 = ts1+ones(3,1);
-%$ ts3 = ones(3,1)+ts1;
-%$ t(1) = isequal(ts2.data, 2*ones(3,2));
-%$ t(2) = isequal(ts3.data, 2*ones(3,2));
-%$ T = all(t);
-%@eof:10
-
-%@test:11
-%$ ts1 = dseries(ones(3,2));
-%$ ts2 = ts1+ones(1,2);
-%$ ts3 = ones(1,2)+ts1;
-%$ t(1) = isequal(ts2.data, 2*ones(3,2));
-%$ t(2) = isequal(ts3.data, 2*ones(3,2));
-%$ T = all(t);
-%@eof:11
diff --git a/matlab/@dseries/pop.m b/matlab/@dseries/pop.m
deleted file mode 100644
index 015267429..000000000
--- a/matlab/@dseries/pop.m
+++ /dev/null
@@ -1,113 +0,0 @@
-function [ts,id] = pop(ts,a) % --*-- Unitary tests --*--
-
-% Removes a variable from a dseries object.
-
-%@info:
-%! @deftypefn {Function File} {@var{ts} =} pop (@var{ts}, @var{a})
-%! @anchor{dseries/pop}
-%! @sp 1
-%! Pop method for the dseries class. Removes a variable from a dseries object.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Object instantiated by @ref{dseries}.
-%! @item a
-%! String, name of the variable to be removed.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Object instantiated by @ref{dseries}, without variable (@var{a}).
-%! @item id
-%! Scalar integer, position of variable (@var{a}) in the original dseries object @var{ts}.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% 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
- % Removes the last variable
- id = vobs(ts);
-else
- id = find(strcmp(a,ts.name));
-end
-
-if isempty(id)
- id = 0;
- return
-end
-
-ts.data(:,id) = [];
-ts.name(id) = [];
-ts.tex(id) = [];
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'A3'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = pop(ts1,'A2');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,[A(:,1), A(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'A3'};
-%$
-%$ t = zeros(2,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ [ts2,id] = pop(ts1,'A4');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(id,0);
-%$ t(2) = dassert(ts1,ts2);
-%$ end
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dseries/private/default_name.m b/matlab/@dseries/private/default_name.m
deleted file mode 100644
index 1711195c4..000000000
--- a/matlab/@dseries/private/default_name.m
+++ /dev/null
@@ -1,27 +0,0 @@
-function names = default_name(dim)
-
-% 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 .
-
-
-names = {};
-for i=1:dim
- names = vertcat(names, {['Variable_' int2str(i)]});
-end
-
-
-
diff --git a/matlab/@dseries/qdiff.m b/matlab/@dseries/qdiff.m
deleted file mode 100644
index 47e608daf..000000000
--- a/matlab/@dseries/qdiff.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function us = qdiff(ts) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} qdiff (@var{ts})
-%! @anchor{qdiff}
-%! @sp 1
-%! Computes quaterly differences.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item us
-%! Dynare time series object with transformed data field.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-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 .
-
-us = ts;
-
-switch frequency(ts)
- case 1
- error('dseries::qgrowth: I cannot compute quaterly differences from yearly data!')
- case 4
- us.data(2:end,:) = ts.data(2:end,:)-ts.data(1:end-1,:);
- us.data(1,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['qdiff(' us.name{i} ')']};
- us.tex(i) = {['\Delta ' us.tex{i}]};
- end
- case 12
- us.data(4:end,:) = ts.data(4:end,:)-ts.data(1:end-3,:);
- us.data(1:3,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['qdiff(' us.name{i} ')']};
- us.tex(i) = {['\Delta_3 ' us.tex{i}]};
- end
- case 52
- error('dseries::qgrowth: I do not know yet how to compute quaterly differences from weekly data!')
- otherwise
- error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
-end
-
-%@test:1
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = transpose(0:1:50);
-%$ ts = dseries(data,'1950Q1');
-%$ ts = ts.qdiff;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ DATA = NaN(1,ts.vobs);
-%$ DATA = [DATA; ones(ts.nobs-1,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA,1e-15);
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = transpose(0:1:80);
-%$ ts = dseries(data,'1950M1');
-%$ ts = ts.qdiff;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ DATA = NaN(3,ts.vobs);
-%$ DATA = [DATA; 3*ones(ts.nobs-3,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA,1e-15);
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dseries/qgrowth.m b/matlab/@dseries/qgrowth.m
deleted file mode 100644
index 3cb8cb746..000000000
--- a/matlab/@dseries/qgrowth.m
+++ /dev/null
@@ -1,107 +0,0 @@
-function us = qgrowth(ts) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} qgrowth (@var{ts})
-%! @anchor{qgrowth}
-%! @sp 1
-%! Computes quaterly growth rates.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item us
-%! Dynare time series object with transformed data field.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-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 .
-
-us = ts;
-
-switch frequency(ts)
- case 1
- error('dseries::qgrowth: I cannot compute quaterly growth rates from yearly data!')
- case 4
- us.data(2:end,:) = ts.data(2:end,:)./ts.data(1:end-1,:) - 1;
- us.data(1,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['qgrowth(' us.name{i} ')']};
- us.tex(i) = {['\delta ' us.tex{i}]};
- end
- case 12
- us.data(4:end,:) = ts.data(4:end,:)./ts.data(1:end-3,:) - 1;
- us.data(1:3,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['qgrowth(' us.name{i} ')']};
- us.tex(i) = {['\delta_3 ' us.tex{i}]};
- end
- case 52
- error('dseries::qgrowth: I do not know yet how to compute quaterly growth rates from weekly data!')
- otherwise
- error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
-end
-
-%@test:1
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = (1+.01).^transpose(0:1:50);
-%$ ts = dseries(data,'1950Q1');
-%$ ts = ts.qgrowth;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ DATA = NaN(1,ts.vobs);
-%$ DATA = [DATA; .01*ones(ts.nobs-1,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA,1e-15);
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = (1+.01).^transpose(0:1:80);
-%$ ts = dseries(data,'1950M1');
-%$ ts = ts.qgrowth;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ DATA = NaN(3,ts.vobs);
-%$ DATA = [DATA; (1.01^3-1)*ones(ts.nobs-3,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA,1e-15);
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dseries/remove.m b/matlab/@dseries/remove.m
deleted file mode 100644
index 9f9b19a53..000000000
--- a/matlab/@dseries/remove.m
+++ /dev/null
@@ -1,98 +0,0 @@
-function ts = remove(ts,a) % --*-- Unitary tests --*--
-
-% Removes a variable from a dseries object (alias for the pop method).
-
-%@info:
-%! @deftypefn {Function File} {@var{ts} =} pop (@var{ts}, @var{a})
-%! @anchor{dseries/pop}
-%! @sp 1
-%! Remove method for the dseries class. Removes a variable from a dseries object.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Object instantiated by @ref{dseries}.
-%! @item a
-%! String, name of the variable to be removed.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Object instantiated by @ref{dseries}, without variable (@var{a}).
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2014 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 .
-
-ts = pop(ts, a);
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'A3'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = remove(ts1,'A2');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,[A(:,1), A(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'A3'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = ts1.remove('A2');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,[A(:,1), A(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:2
\ No newline at end of file
diff --git a/matlab/@dseries/rename.m b/matlab/@dseries/rename.m
deleted file mode 100644
index 2a038595d..000000000
--- a/matlab/@dseries/rename.m
+++ /dev/null
@@ -1,76 +0,0 @@
-function ts = rename(ts,old,new) % --*-- Unitary tests --*--
-
-% 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 ~ischar(old) || ~ischar(new)
- error(['dseries::rename: Input arguments ''' inputname(2) ''' and ''' inputname(3) ''' have to be strings!'])
-end
-
-idname = find(strcmp(old,ts.name));
-
-if isempty(idname)
- error(['dseries::rename: Variable ' old ' is unknown in dseries object ' inputname(1) '!'])
-end
-
-ts.name(idname) = {new};
-
-%@test:1
-%$ t = zeros(8,1);
-%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
-%$ try
-%$ ts = rename(ts,'Output','Production');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Production'; 'Consumption'});
-%$ t(8) = dassert(ts.tex,{'Y_t'; 'C_t'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ t = zeros(8,1);
-%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
-%$ try
-%$ ts = ts.rename('Output','Production');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Production'; 'Consumption'});
-%$ t(8) = dassert(ts.tex,{'Y_t'; 'C_t'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dseries/save.m b/matlab/@dseries/save.m
deleted file mode 100644
index 3e8b478fc..000000000
--- a/matlab/@dseries/save.m
+++ /dev/null
@@ -1,171 +0,0 @@
-function save(A,basename,format) % --*-- Unitary tests --*--
-
-% Saves a dseries object on disk.
-
-% 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<3 || isempty(format)
- format = 'csv';
-end
-
-if nargin<2 || isempty(basename)
- basename = inputname(1);
-end
-
-switch format
- case 'm'
- if exist([basename, '.m'],'file')
- copyfile([basename, '.m'],[basename, '.old.m']);
- end
- fid = fopen([basename, '.m'],'w');
- fprintf(fid,'%% File created on %s.\n',datestr(now));
- fprintf(fid,'\n');
- fprintf(fid,'FREQ__ = %s;\n',num2str(frequency(A)));
- fprintf(fid,'INIT__ = ''%s'';\n',date2string(firstdate(A)));
- fprintf(fid,'\n');
- fprintf(fid,'NAMES__ = {');
- for i=1:vobs(A)
- fprintf(fid,[ '''' A.name{i} '''']);
- if i.
-
-% AUTHOR(S) stephane DOT adjemian AT univ DASH lemans DOT fr
-
-n = nargin-1;
-
-if ~isdseries(B)
- error(['dseries::rename: ' inputname(1) ' must be a dseries object!'])
-end
-
-if ~isequal(vobs(B),n)
- error(['dseries::rename: The number of variables in ' inputname(1) ' does not match the number of declared names!'])
-end
-
-A = B;
-
-for i=1:vobs(A)
- if ~isempty(varargin{i})
- A.name(i) = { varargin{i} };
- end
-end
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'Variable_2';'A3'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],[],[]);
-%$ ts2 = set_names(ts1,'A1',[],'A3');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts2.vobs,3);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.name,A_name);
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Define names
-%$ A_name = {'A1';'Variable_2';'A3'};
-%$
-%$ t = zeros(4,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],[],[]);
-%$ ts1 = ts1.set_names('A1',[],'A3');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,10);
-%$ t(4) = dassert(ts1.name,A_name);
-%$ end
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dseries/size.m b/matlab/@dseries/size.m
deleted file mode 100644
index c83090b51..000000000
--- a/matlab/@dseries/size.m
+++ /dev/null
@@ -1,34 +0,0 @@
-function varargout = size(o, varargin)
-
-% Copyright (C) 2013-2014 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 .
-
-switch nargout
- case 0
- size(o.data, varargin{:})
- case 1
- varargout{1} = size(o.data, varargin{:});
- case 2
- if isequal(nargin, 1)
- varargout{1} = size(o.data, 1);
- varargout{2} = size(o.data, 2);
- else
- error('dseries::size: Wrong calling sequence!')
- end
- otherwise
- error('dseries::size: Wrong calling sequence! Cannot return more than two arguments.')
-end
\ No newline at end of file
diff --git a/matlab/@dseries/subsasgn.m b/matlab/@dseries/subsasgn.m
deleted file mode 100644
index 257ff002d..000000000
--- a/matlab/@dseries/subsasgn.m
+++ /dev/null
@@ -1,886 +0,0 @@
-function A = subsasgn(A,S,B) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} subsasgn (@var{A}, @var{S}, @var{B})
-%! @anchor{@dseries/subsasgn}
-%! @sp 1
-%! Overloads the subsasgn method for the Dynare time series class (@ref{dseries}).
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-2014 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 .
-
-merge_dseries_objects = 1;
-
-switch length(S)
- case 1
- switch S(1).type
- case '{}' % Multiple variable selection.
- if ~isequal(numel(S(1).subs),numel(unique(S(1).subs)))
- error('dseries::subsasgn: Wrong syntax!')
- end
- for i=1:numel(S(1).subs)
- element = S(1).subs{i};
- idArobase = strfind(element,'@');
- if ~isempty(idArobase)
- switch length(idArobase)
- case 2
- idComma = strfind(element(idArobase(1)+1:idArobase(2)-1),',');
- if ~isempty(idComma)
- elements = cell(1,numel(idComma)+1); j = 1;
- expression = element(idArobase(1)+1:idArobase(2)-1);
- while ~isempty(expression)
- [token, expression] = strtok(expression,',');
- elements(j) = {[element(1:idArobase(1)-1), token, element(idArobase(2)+1:end)]};
- j = j + 1;
- end
- S(1).subs = replace_object_in_a_one_dimensional_cell_array(S(1).subs, elements(:), i);
- else
- error('dseries::subsasgn: Wrong syntax, matlab''s regular expressions cannot be used here!')
- end
- case 4
- idComma_1 = strfind(element(idArobase(1)+1:idArobase(2)-1),',');
- idComma_2 = strfind(element(idArobase(3)+1:idArobase(4)-1),',');
- if ~isempty(idComma_1)
- elements = cell(1,(numel(idComma_1)+1)*(numel(idComma_2)+1)); j = 1;
- expression_1 = element(idArobase(1)+1:idArobase(2)-1);
- while ~isempty(expression_1)
- [token_1, expression_1] = strtok(expression_1,',');
- expression_2 = element(idArobase(3)+1:idArobase(4)-1);
- while ~isempty(expression_2)
- [token_2, expression_2] = strtok(expression_2,',');
- elements(j) = {[element(1:idArobase(1)-1), token_1, element(idArobase(2)+1:idArobase(3)-1), token_2, element(idArobase(4)+1:end)]};
- j = j+1;
- end
- end
- S(1).subs = replace_object_in_a_one_dimensional_cell_array(S(1).subs, elements(:), i);
- else
- error('dseries::subsasgn: Wrong syntax, matlab''s regular expressions cannot be used here!')
- end
- otherwise
- error('dseries::subsasgn: Wrong syntax!')
- end
- end
- end
- if isempty(B)
- for i=1:length(S(1).subs)
- A = remove(A,S(1).subs{i});
- end
- return
- end
- if ~isequal(length(S(1).subs),vobs(B))
- error('dseries::subsasgn: Wrong syntax!')
- end
- if ~isequal(S(1).subs(:),B.name)
- for i = 1:vobs(B)
- if ~isequal(S(1).subs{i},B.name{i})
- % Rename a variable.
- id = find(strcmp(S(1).subs{i},A.name));
- if isempty(id)
- % Add a new variable a change its name.
- B.name(i) = {S(1).subs{i}};
- B.tex(i) = {name2tex(S(1).subs{i})};
- else
- % Rename variable and change its content.
- B.name(i) = A.name(id);
- B.tex(i) = A.tex(id);
- end
- end
- end
- end
- case '.'
- if isequal(S(1).subs,'init') && isdates(B) && isequal(length(B),1)
- % Change the initial date (update dates member)
- A.dates = B:B+(nobs(A)-1);
- return
- elseif isequal(S(1).subs,'dates') && isdates(B)
- % Overwrite the dates member
- A.dates = B;
- return
- elseif ismember(S(1).subs,{'data','name','tex'})
- error(['dseries::subsasgn: You cannot overwrite ' S(1).subs ' member!'])
- elseif ~isequal(S(1).subs,B.name)
- % Single variable selection.
- if ~isequal(S(1).subs,B.name{1})
- % Rename a variable.
- id = find(strcmp(S(1).subs,A.name));
- if isempty(id)
- % Add a new variable a change its name.
- B.name(1) = {S(1).subs};
- B.tex(1) = {name2tex(S(1).subs)};
- else
- % Rename variable and change its content.
- B.name(1) = A.name(id);
- B.tex(1) = A.tex(id);
- end
- end
- end
- case '()' % Date(s) selection
- if isdates(S(1).subs{1}) || isdate(S(1).subs{1})
- if isdate(S(1).subs{1})
- Dates = dates(S(1).subs{1});
- else
- Dates = S(1).subs{1};
- end
- [junk, tdx] = intersect(A.dates.time,Dates.time,'rows');
- if isdseries(B)
- [junk, tdy] = intersect(B.dates.time,Dates.time,'rows');
- if isempty(tdy)
- error('dseries::subsasgn: Periods of the dseries objects on the left and right hand sides must intersect!')
- end
- if ~isequal(vobs(A), vobs(B))
- error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
- end
- A.data(tdx,:) = B.data(tdy,:);
- merge_dseries_objects = 0;
- elseif isnumeric(B)
- merge_dseries_objects = 0;
- if isequal(length(tdx),rows(B))
- if isequal(columns(A.data),columns(B))
- A.data(tdx,:) = B;
- else
- error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
- end
- else
- error('dseries::subsassgn: Dimension error! The number of periods on the left and right hand side must match.')
- end
- else
- error('dseries::subsasgn: The object on the right hand side must be a dseries object or a numeric array!')
- end
- elseif ischar(S(1).subs{1}) && isequal(S(1).subs{1},':') && isempty(A)
- if isnumeric(B)
- if isequal(rows(B),1)
- A.data = repmat(B,A.dates.ndat,1);
- elseif isequal(rows(B),A.dates.ndat)
- A.data = B;
- else
- error('dseries::subsasgn: Wrong syntax!')
- end
- if isempty(A.name)
- A.name = default_name(vobs(A));
- A.tex = name2tex(A.name);
- end
- elseif isdseries(B)
- if isequal(nobs(B), 1)
- A.data = repmat(B.data,A.dates.ndat,1);
- elseif isequal(nobs(B), A.dates.ndat)
- A.data = B;
- else
- error('dseries::subsasgn: Wrong syntax!')
- end
- if isempty(A.name)
- A.name = B.name;
- A.tex = B.tex;
- end
- end
- return
- else
- error('dseries::subsasgn: Wrong syntax!')
- end
- otherwise
- error('dseries::subsasgn: Wrong syntax!')
- end
- case 2
- merge_dseries_objects = 0;
- if ((isequal(S(1).type,'{}') || isequal(S(1).type,'.')) && isequal(S(2).type,'()'))
- if isequal(S(1).type,'{}')
- sA = extract(A,S(1).subs{:});
- else
- sA = extract(A,S(1).subs);
- end
- if (isdseries(B) && isequal(vobs(sA), vobs(B))) || (isnumeric(B) && isequal(vobs(sA),columns(B))) || (isnumeric(B) && isequal(columns(B),1))
- if isdates(S(2).subs{1})
- [junk, tdx] = intersect(sA.dates.time,S(2).subs{1}.time,'rows');
- if isdseries(B)
- [junk, tdy] = intersect(B.dates.time,S(2).subs{1}.time,'rows');
- if isempty(tdy)
- error('dseries::subsasgn: Periods of the dseries objects on the left and right hand sides must intersect!')
- end
- sA.data(tdx,:) = B.data(tdy,:);
- elseif isnumeric(B)
- merge_dseries_objects = 0;
- if isequal(length(tdx),rows(B))
- if isequal(columns(sA.data),columns(B))
- sA.data(tdx,:) = B;
- elseif isequal(size(B,2),1)
- sA.data(tdx,:) = repmat(B,1,columns(sA.data));
- else
- error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
- end
- else
- if isequal(columns(sA.data),columns(B)) && isequal(rows(B),1)
- sA.data(tdx,:) = repmat(B,length(tdx),1);
- elseif isequal(rows(B),1)
- sA.data(tdx,:) = B;
- else
- error('dseries::subsassgn: Dimension error! The number of periods on the left and right hand side must match.')
- end
- end
- else
- error('dseries::subsasgn: The object on the right hand side must be a dseries object or a numeric array!')
- end
- else
- error('dseries::subsasgn: Wrong syntax!')
- end
- A = merge(A,sA);
- else
- error('dseries::subsasgn: Dimension error! The number of variables on the left and right hand side must match.')
- end
- end
- otherwise
- error('dseries::subsasgn: Wrong syntax!')
-end
-
-if isempty(A)
- % Assign variables to an empty dseries object.
- A = B;
- return
-end
-
-if merge_dseries_objects
- A = merge(A,B);
-end
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,[],{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ ts1{'A2'} = ts2;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,10);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[A(:,1), B, A(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$
-%$ % Apply the exponential function to the second variable.
-%$ ts1{'A2'} = ts1{'A2'}.exp;
-%$
-%$ % Instantiate a time series object.
-%$
-%$ t(1) = dassert(ts1.vobs,3);
-%$ t(2) = dassert(ts1.nobs,10);
-%$ t(3) = dassert(ts1.name{2},'A2');
-%$ t(4) = dassert(ts1.name{1},'A1');
-%$ t(5) = dassert(ts1.name{3},'A3');
-%$ t(6) = dassert(ts1.data,[A(:,1), exp(A(:,2)), A(:,3)],1e-15);
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$
-%$ % Apply the logarithm function to the first and third variables.
-%$ ts1{'A1'} = ts1{'A1'}.log;
-%$ ts1{'A3'} = ts1{'A3'}.log;
-%$
-%$ % Instantiate a time series object.
-%$
-%$ t(1) = dassert(ts1.vobs,3);
-%$ t(2) = dassert(ts1.nobs,10);
-%$ t(3) = dassert(ts1.name{2},'A2');
-%$ t(4) = dassert(ts1.name{1},'A1');
-%$ t(5) = dassert(ts1.name{3},'A3');
-%$ t(6) = dassert(ts1.data,[log(A(:,1)), A(:,2), log(A(:,3))],1e-15);
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ % Define a datasets.
-%$ A = rand(10,3);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$
-%$ % Apply the logarithm function to the first and third variables of ts1.
-%$ ts1{'A1','A3'} = ts1{'A1','A3'}.log;
-%$
-%$ t(1) = dassert(ts1.vobs,3);
-%$ t(2) = dassert(ts1.nobs,10);
-%$ t(3) = dassert(ts1.name{1},'A1') && dassert(ts1.name{2},'A2') && dassert(ts1.name{3},'A3');
-%$ t(4) = dassert(ts1.data,[log(A(:,1)), A(:,2), log(A(:,3))],1e-15);
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,3);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,[],{'A1';'B2';'B3'},[]);
-%$
-%$ % Apply the logarithm function to the first and third variables.
-%$ ts1.A1 = ts2.A1;
-%$
-%$ % Instantiate a time series object.
-%$
-%$ t(1) = dassert(ts1.vobs,3);
-%$ t(2) = dassert(ts1.nobs,10);
-%$ t(3) = dassert(ts1.name{1},'A1');
-%$ t(4) = dassert(ts1.data(:,1),B(:,1), 1e-15);
-%$ t(5) = dassert(ts1.data(:,2:3),A(:,2:3), 1e-15);
-%$ T = all(t);
-%@eof:5
-
-%@test:6
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,2);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,[],{'B1';'B2'},[]);
-%$
-%$ % Call tested routine.
-%$ try
-%$ ts1.B2 = ts2.B2.log;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,4);
-%$ t(3) = dassert(ts1.nobs,10);
-%$ t(4) = dassert(ts1.name{1},'A1');
-%$ t(5) = dassert(ts1.name{2},'A2');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.name{4},'B2');
-%$ t(8) = dassert(ts1.data,[A(:,1), A(:,2), A(:,3), log(B(:,2))],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:6
-
-%@test:7
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,2);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,[],{'B1';'B2'},[]);
-%$
-%$ % Append B2 to the first object.
-%$ ts1{'B2'} = ts2{'B2'};
-%$ t(1) = 1;
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,4);
-%$ t(3) = dassert(ts1.nobs,10);
-%$ t(4) = dassert(ts1.name{1},'A1');
-%$ t(5) = dassert(ts1.name{2},'A2');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(6) = dassert(ts1.name{4},'B2');
-%$ t(7) = dassert(ts1.data,[A(:,1), A(:,2), A(:,3), B(:,2)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:7
-
-%@test:8
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,[],{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ ts1{'A4'} = ts2;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,4);
-%$ t(3) = dassert(ts1.nobs,10);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.name{4},'A4');
-%$ t(8) = dassert(ts1.data,[A, B],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:8
-
-%@test:9
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,2);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,[],{'A1';'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ ts1{'A1','A4'} = ts2;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,4);
-%$ t(3) = dassert(ts1.nobs,10);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.name{4},'A4');
-%$ t(8) = dassert(ts1.data,[B(:,1), A(:,2:3), B(:,2)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:9
-
-
-%@test:10
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,3);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,[],{'A1';'B1';'B2'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ ts1{'A@1,2@','A4'} = ts2;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,4);
-%$ t(3) = dassert(ts1.nobs,10);
-%$ t(4) = dassert(ts1.name{1},'A1');
-%$ t(5) = dassert(ts1.name{2},'A2');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.name{4},'A4');
-%$ t(8) = dassert(ts1.data,[B(:,1:2), A(:,3), B(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:10
-
-%@test:11
-%$ % Define a datasets.
-%$ A = rand(10,3); B = rand(10,5);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,[],{'A_1';'A_2';'A_3'},[]);
-%$ ts2 = dseries(B,[],{'A_1';'A_2';'B_1';'B_2';'B_3'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ ts1{'@A,B@_@1,2@'} = ts2{'@A,B@_@1,2@'};
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ %t(2) = dassert(ts1.vobs,4);
-%$ %t(3) = dassert(ts1.nobs,10);
-%$ %t(4) = dassert(ts1.name,{'A1','A2';'A3';'B1';'B2'});
-%$ %t(5) = dassert(ts1.data,[B(:,1:2), A(:,3), B(:,3:4)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:11
-
-%@test:12
-%$ % Define a datasets.
-%$ A = rand(40,3); B = rand(40,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ d1 = dates('1950Q3');
-%$ d2 = dates('1951Q3');
-%$ rg = d1:d2;
-%$ ts1{'A1'}(rg) = ts2{'B1'}(rg);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[[A(1:2,1); B(3:7); A(8:end,1)], A(:,2:3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:12
-
-%@test:13
-%$ % Define a datasets.
-%$ A = rand(40,3); B = rand(40,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ d1 = dates('1950Q3');
-%$ d2 = dates('1951Q3');
-%$ rg = d1:d2;
-%$ ts1{'A1'}(rg) = B(3:7);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[[A(1:2,1); B(3:7); A(8:end,1)], A(:,2:3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:13
-
-%@test:14
-%$ % Define a datasets.
-%$ A = rand(40,3); B = rand(40,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ d1 = dates('1950Q3');
-%$ d2 = dates('1951Q3');
-%$ rg = d1:d2;
-%$ ts1.A1(rg) = B(3:7);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[[A(1:2,1); B(3:7); A(8:end,1)], A(:,2:3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:14
-
-%@test:15
-%$ % Define a datasets.
-%$ A = rand(40,3); B = rand(40,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ d1 = dates('1950Q3');
-%$ d2 = dates('1951Q3');
-%$ rg = d1:d2;
-%$ ts1.A1(rg) = sqrt(pi);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[[A(1:2,1); repmat(sqrt(pi),5,1); A(8:end,1)], A(:,2:3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:15
-
-%@test:16
-%$ % Define a datasets.
-%$ A = rand(40,3); B = rand(40,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ d1 = dates('1950Q3');
-%$ d2 = dates('1951Q3');
-%$ rg = d1:d2;
-%$ ts1{'A1','A2'}(rg) = sqrt(pi);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[[A(1:2,1); repmat(sqrt(pi),5,1); A(8:end,1)], [A(1:2,2); repmat(sqrt(pi),5,1); A(8:end,2)], A(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:16
-
-%@test:17
-%$ % Define a datasets.
-%$ A = rand(40,3); B = rand(40,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ d1 = dates('1950Q3');
-%$ d2 = dates('1951Q3');
-%$ rg = d1:d2;
-%$ ts1{'A1','A2'}(rg) = [sqrt(pi), pi];
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[[A(1:2,1); repmat(sqrt(pi),5,1); A(8:end,1)], [A(1:2,2); repmat(pi,5,1); A(8:end,2)], A(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:17
-
-%@test:18
-%$ % Define a datasets.
-%$ A = rand(40,3); B = rand(40,1);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$ ts2 = dseries(B,'1950Q1',{'B1'},[]);
-%$
-%$ % modify first object.
-%$ try
-%$ d1 = dates('1950Q3');
-%$ d2 = dates('1951Q3');
-%$ rg = d1:d2;
-%$ ts1{'A1','A2'}(rg) = ones(5,1);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,[[A(1:2,1); ones(5,1); A(8:end,1)], [A(1:2,2); ones(5,1); A(8:end,2)], A(:,3)],1e-15);
-%$ end
-%$ T = all(t);
-%@eof:18
-
-%@test:19
-%$ % Define a datasets.
-%$ A = rand(40,3);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$
-%$ % Instantiate a dates object.
-%$ dd = dates('1952Q1');
-%$
-%$ % modify first object.
-%$ try
-%$ ts1.init = dd;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,A,1e-15);
-%$ t(8) = dassert(ts1.init,dd);
-%$ t(9) = dassert(ts1.dates(1),dd);
-%$ end
-%$ T = all(t);
-%@eof:19
-
-%@test:20
-%$ % Define a datasets.
-%$ A = rand(40,3);
-%$
-%$ % Instantiate two dseries object.
-%$ ts1 = dseries(A,'1950Q1',{'A1';'A2';'A3'},[]);
-%$
-%$ % Instantiate a dates object.
-%$ dd = dates('1952Q1');
-%$
-%$ % modify first object.
-%$ try
-%$ ts1.dates = dd:(dd+(ts1.nobs-1));
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts1.vobs,3);
-%$ t(3) = dassert(ts1.nobs,40);
-%$ t(4) = dassert(ts1.name{2},'A2');
-%$ t(5) = dassert(ts1.name{1},'A1');
-%$ t(6) = dassert(ts1.name{3},'A3');
-%$ t(7) = dassert(ts1.data,A,1e-15);
-%$ t(8) = dassert(ts1.init,dd);
-%$ t(9) = dassert(ts1.dates(1),dd);
-%$ end
-%$ T = all(t);
-%@eof:20
-
-%@test:21
-%$ % Define a datasets.
-%$ A = rand(4,3);
-%$
-%$ % Instantiate an empty dseries object.
-%$ ts = dseries(dates('1950Q1'):dates('1950Q4'));
-%$
-%$ % Populate ts
-%$ try
-%$ ts(:) = A;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts.vobs,3);
-%$ t(3) = dassert(ts.nobs,4);
-%$ t(4) = dassert(ts.data,A,1e-15);
-%$ end
-%$ T = all(t);
-%@eof:21
-
-%@test:22
-%$ % Define a datasets.
-%$ A = rand(1,3);
-%$
-%$ % Instantiate an empty dseries object.
-%$ ts = dseries(dates('1950Q1'):dates('1950Q4'));
-%$
-%$ % Populate ts
-%$ try
-%$ ts(:) = A;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ % Instantiate a time series object.
-%$ if t(1)
-%$ t(2) = dassert(ts.vobs,3);
-%$ t(3) = dassert(ts.nobs,4);
-%$ t(4) = dassert(ts.data,repmat(A,4,1),1e-15);
-%$ end
-%$ T = all(t);
-%@eof:22
-
-%@test:23
-%$ % Instantiate a dseries object.
-%$ ts0 = dseries(randn(10,6), '1999y');
-%$
-%$ % Try to remove Variable_2 and Variable_3
-%$ try
-%$ ts0{'Variable_@2,3@'} = [];
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)
-%$ % Try to display Variable_2 and Variable_3 again (should fail because already removed)
-%$ try
-%$ ts0{'Variable_@2,3@'};
-%$ t(2) = 0;
-%$ catch
-%$ t(2) = 1;
-%$ end
-%$ end
-%$ T = all(t);
-%@eof:23
\ No newline at end of file
diff --git a/matlab/@dseries/subsref.m b/matlab/@dseries/subsref.m
deleted file mode 100644
index 67b99f0b2..000000000
--- a/matlab/@dseries/subsref.m
+++ /dev/null
@@ -1,689 +0,0 @@
-function B = subsref(A, S) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} subsref (@var{ts},S)
-%! @anchor{@dseries/subsref}
-%! @sp 1
-%! Overloads the subsref method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item ts
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @item S
-%! Matlab's structure array S with two fields, type and subs. The type field is string containing '()', '@{@}', or '.', where '()' specifies
-%! integer subscripts, '@{@}' specifies cell array subscripts, and '.' specifies subscripted structure fields. The subs field is a cell array
-%! or a string containing the actual subscripts (see matlab's documentation).
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item us
-%! Dynare time series object. Depending on the calling sequence @var{us} is a transformation of @var{ts} obtained by applying a public method on @var{ts},
-%! or a dseries object built by extracting a variable from @var{ts}, or a dseries object containing a subsample of the all the variable in @var{ts}.
-%! @end table
-%! @sp 2
-%! @strong{Example 1.} Let @var{ts} be a dseries object containing three variables named 'A1', 'A2' and 'A3'. Then the following syntax:
-%! @example
-%! us = ts.A1;
-%! @end example
-%!will create a new dseries object @var{us} containing the variable 'A1'.
-%! @sp 1
-%! @strong{Example 2.} Let @var{ts} be a dseries object. Then the following syntax:
-%! @example
-%! us = ts.log;
-%! @end example
-%!will create a new dseries object @var{us} containing all the variables of @var{ts} transformed by the neperian logarithm.
-%! @sp 1
-%! @strong{Example 3.} Let @var{ts} be a dseries object. The following syntax:
-%! @example
-%! us = ts(3:50);
-%! @end example
-%!will create a new dseries object @var{us} by selecting a subsample out of @var{ts}.
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2011-2014 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 .
-
-switch S(1).type
- case '.'
- switch S(1).subs
- case {'data','name','tex','dates'} % Public members.
- if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
- error(['dseries::subsref: ' S(1).subs ' is not a method but a member!'])
- end
- B = builtin('subsref', A, S(1));
- case {'log','exp','ygrowth','qgrowth','ydiff','qdiff','abs'} % Give "dot access" to public methods without args.
- B = feval(S(1).subs,A);
- if length(S)>1 && isequal(S(2).type,'()') && isempty(S(2).subs)
- S = shiftS(S,1);
- end
- case 'nobs'
- % Returns the number of observations.
- B = rows(A.data);
- case 'vobs'
- % Returns the number of variables.
- B = columns(A.data);
- case 'init'
- % Returns a dates object (first date).
- B = A.dates(1);
- case 'last'
- % Returns a dates object (last date).
- B = A.dates(end);
- case 'freq'
- % Returns an integer characterizing the data frequency (1, 4, 12 or 52)
- B = A.dates.freq;
- case {'lag','lead','hptrend','hpcycle','chain','detrend','exist'} % Methods with less than two arguments.
- if length(S)>1 && isequal(S(2).type,'()')
- if isempty(S(2).subs)
- B = feval(S(1).subs,A);
- S = shiftS(S,1);
- else
- if ~ischar(S(2).subs{1}) && length(S(2).subs{1})>1
- error(['dseries::subsref: ' S(1).subs{1} ' method admits no more than one argument!'])
- end
- B = feval(S(1).subs,A,S(2).subs{1});
- S = shiftS(S,1);
- end
- else
- B = feval(S(1).subs,A);
- end
- case {'cumsum','insert','pop','cumprod','remove'} % Methods with less than three argument.
- if length(S)>1 && isequal(S(2).type,'()')
- if isempty(S(2).subs)
- B = feval(S(1).subs,A);
- S = shiftS(S,1);
- else
- if length(S(2).subs)>2
- error(['dseries::subsref: ' S(1).subs{1} ' method admits no more than two arguments!'])
- end
- B = feval(S(1).subs,A,S(2).subs{:});
- S = shiftS(S,1);
- end
- else
- B = feval(S(1).subs,A);
- end
- case 'baxter_king_filter'
- if length(S)>1 && isequal(S(2).type,'()')
- if isempty(S(2).subs)
- B = feval(S(1).subs,A);
- S = shiftS(S,1);
- else
- B = feval(S(1).subs,A,S(2).subs{1})
- S = shiftS(S,1);
- end
- else
- B = feval(S(1).subs,A);
- end
- case 'save' % Save dseries object on disk (default is a csv file).
- B = NaN;
- if isequal(length(S),2)
- if strcmp(S(2).type,'()')
- if isempty(S(2).subs)
- save(A,inputname(1));
- else
- if isempty(S(2).subs{1})
- save(A,inputname(1),S(2).subs{2});
- else
- save(A,S(2).subs{:});
- end
- end
- S = shiftS(S,1);
- else
- error('dseries::subsref: Wrong syntax.')
- end
- elseif isequal(length(S),1)
- save(A,inputname(1));
- else
- error('dseries::subsref: Call to save method must come in last position!')
- end
- case 'size'
- if isequal(length(S),2) && strcmp(S(2).type,'()')
- if isempty(S(2).subs)
- [x,y] = size(A);
- B = [x, y];
- else
- B = size(A,S(2).subs{1});
- end
- S = shiftS(S,1);
- elseif isequal(length(S),1)
- [x,y] = size(A);
- B = [x, y];
- else
- error('dseries::subsref: Call to size method must come in last position!')
- end
- case {'set_names','rename','tex_rename'}
- B = feval(S(1).subs,A,S(2).subs{:});
- S = shiftS(S,1);
- case {'disp'}
- feval(S(1).subs,A);
- return
- otherwise % Extract a sub-object by selecting one variable.
- ndx = find(strcmp(S(1).subs,A.name));
- if ~isempty(ndx)
- B = dseries();
- B.data = A.data(:,ndx);
- B.name = A.name(ndx);
- B.tex = A.tex(ndx);
- B.tex = deblank(A.tex(ndx,:));
- B.dates = A.dates;
- else
- error('dseries::subsref: Unknown public method, public member or variable!')
- end
- end
- case '()'
- if ischar(S(1).subs{1}) && ~isdate(S(1).subs{1})
- % If ts is an empty dseries object, populate this object by reading data in a file.
- if isempty(A)
- B = dseries(S(1).subs{1});
- else
- error(['dseries::subsref: dseries object ''' inputname(1) ''' is not empty!'])
- end
- elseif isa(S(1).subs{1},'dynTimeIndex')
- % shift backward/forward (lag/lead) dseries object
- shift = S(1).subs{1}.index;
- if shift>0
- B = feval('lead',A,shift);
- elseif shift<0
- B = feval('lag',A,-shift);
- else
- % Do nothing.
- B = A;
- end
- elseif isscalar(S(1).subs{1}) && isnumeric(S(1).subs{1}) && isint(S(1).subs{1})
- % Input is also interpreted as a backward/forward operator
- if S(1).subs{1}>0
- B = feval('lead', A, S(1).subs{1});
- elseif S(1).subs{1}<0
- B = feval('lag', A, -S(1).subs{1});
- else
- % Do nothing.
- B = A;
- end
- elseif isdates(S(1).subs{1}) || isdate(S(1).subs{1})
- if isdate(S(1).subs{1})
- Dates = dates(S(1).subs{1});
- else
- Dates = S(1).subs{1};
- end
- % Test if Dates is out of bounds
- if min(Dates)max(A.dates)
- error(['dseries::subsref: Indices are out of bounds! Subsample cannot end after ' date2string(A.dates(end)) '.'])
- end
- % Extract a subsample using a dates object
- [junk,tdx] = intersect(A.dates.time,Dates.time,'rows');
- B = dseries();
- B.data = A.data(tdx,:);
- B.name = A.name;
- B.tex = A.tex;
- B.dates = A.dates(tdx);
- elseif isvector(S(1).subs{1}) && all(isint(S(1).subs{1}))
- error('dseries::subsref: It is not possible to select observations with a vector of integers. You have to index with a dates object instead!');
- else
- error('dseries::subsref: I have no idea of what you are trying to do!')
- end
- case '{}'
- if iscellofchar(S(1).subs)
- B = extract(A,S(1).subs{:});
- elseif isequal(length(S(1).subs),1) && all(isint(S(1).subs{1}))
- idx = S(1).subs{1};
- if max(idx)>size(A.data,2) || min(idx)<1
- error('dseries::subsref: Indices are out of bounds!')
- end
- B = dseries();
- B.data = A.data(:,idx);
- B.name = A.name(idx);
- B.tex = A.tex(idx);
- B.dates = A.dates;
- else
- error('dseries::subsref: What the Hell are you tryin'' to do?!')
- end
- otherwise
- error('dseries::subsref: What the Hell are you doin'' here?!')
-end
-
-S = shiftS(S,1);
-if ~isempty(S)
- B = subsref(B, S);
-end
-
-%@test:1
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ a = ts1(ts1.dates(2:9));
-%$
-%$ % Expected results.
-%$ e.data = [transpose(2:9),2*transpose(2:9)];
-%$ e.nobs = 8;
-%$ e.vobs = 2;
-%$ e.name = {'A1';'A2'};
-%$ e.freq = 1;
-%$ e.init = dates(1,2);
-%$
-%$ % Check the results.
-%$ t(1) = dassert(a.data,e.data);
-%$ t(2) = dassert(a.nobs,e.nobs);
-%$ t(3) = dassert(a.vobs,e.vobs);
-%$ t(4) = dassert(a.freq,e.freq);
-%$ t(5) = dassert(a.init,e.init);
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ a = ts1.A1;
-%$
-%$ % Expected results.
-%$ e.data = transpose(1:10);
-%$ e.nobs = 10;
-%$ e.vobs = 1;
-%$ e.name = {'A1'};
-%$ e.freq = 1;
-%$ e.init = dates(1,1);
-%$
-%$ % Check the results.
-%$ t(1) = dassert(a.data,e.data);
-%$ t(2) = dassert(a.init,e.init);
-%$ t(3) = dassert(a.nobs,e.nobs);
-%$ t(4) = dassert(a.vobs,e.vobs);
-%$ t(5) = dassert(a.freq,e.freq);
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ a = ts1.log;
-%$
-%$ % Expected results.
-%$ e.data = log(A);
-%$ e.nobs = 10;
-%$ e.vobs = 2;
-%$ e.name = {'A1';'A2'};
-%$ e.freq = 1;
-%$ e.init = dates(1,1);
-%$
-%$ % Check the results.
-%$ t(1) = dassert(a.data,e.data);
-%$ t(2) = dassert(a.nobs,e.nobs);
-%$ t(3) = dassert(a.vobs,e.vobs);
-%$ t(4) = dassert(a.freq,e.freq);
-%$ t(5) = dassert(a.init,e.init);
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ % Create an empty dseries object.
-%$ dataset = dseries();
-%$
-%$ t = zeros(5,1);
-%$
-%$ try
-%$ A = dataset('dynseries_test_data.csv');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ % Check the results.
-%$ if length(t)>1
-%$ t(2) = dassert(A.nobs,4);
-%$ t(3) = dassert(A.vobs,4);
-%$ t(4) = dassert(A.freq,4);
-%$ t(5) = dassert(A.init,dates('1990Q1'));
-%$ end
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10),3*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'B1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ a = ts1{'A1','B1'};
-%$
-%$ % Expected results.
-%$ e.data = A(:,[1,3]);
-%$ e.nobs = 10;
-%$ e.vobs = 2;
-%$ e.name = {'A1';'B1'};
-%$ e.freq = 1;
-%$ e.init = dates(1,1);
-%$
-%$ t(1) = dassert(e.data,a.data);
-%$ t(2) = dassert(e.nobs,a.nobs);
-%$ t(3) = dassert(e.vobs,a.vobs);
-%$ t(4) = dassert(e.name,a.name);
-%$ t(5) = dassert(e.init,a.init);
-%$ T = all(t);
-%@eof:5
-
-%@test:6
-%$ % Define a data set.
-%$ A = rand(10,24);
-%$
-%$ % Define names
-%$ A_name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'; 'HICP_1';'HICP_2';'HICP_3'; 'HICP_4'; 'HICP_5'; 'HICP_6'; 'HICP_7'; 'HICP_8'; 'HICP_9'; 'HICP_10'; 'HICP_11'; 'HICP_12';};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$
-%$ % Call the tested method.
-%$ a = ts1{'GDP_[0-9]'};
-%$ b = ts1{'[A-Z]_1$'};
-%$
-%$ % Expected results.
-%$ e1.data = A(:,1:12);
-%$ e1.nobs = 10;
-%$ e1.vobs = 12;
-%$ e1.name = {'GDP_1';'GDP_2';'GDP_3'; 'GDP_4'; 'GDP_5'; 'GDP_6'; 'GDP_7'; 'GDP_8'; 'GDP_9'; 'GDP_10'; 'GDP_11'; 'GDP_12'};
-%$ e1.freq = 1;
-%$ e1.init = dates(1,1);
-%$ e2.data = A(:,[1 13]);
-%$ e2.nobs = 10;
-%$ e2.vobs = 2;
-%$ e2.name = {'GDP_1';'HICP_1'};
-%$ e2.freq = 1;
-%$ e2.init = dates(1,1);
-%$
-%$ % Check results.
-%$ t(1) = dassert(e1.data,a.data);
-%$ t(2) = dassert(e1.nobs,a.nobs);
-%$ t(3) = dassert(e1.vobs,a.vobs);
-%$ t(4) = dassert(e1.name,a.name);
-%$ t(5) = dassert(e1.init,a.init);
-%$ t(6) = dassert(e2.data,b.data);
-%$ t(7) = dassert(e2.nobs,b.nobs);
-%$ t(8) = dassert(e2.vobs,b.vobs);
-%$ t(9) = dassert(e2.name,b.name);
-%$ t(10) = dassert(e2.init,b.init);
-%$ T = all(t);
-%@eof:6
-
-%@test:7
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts1.save('ts1');
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ T = all(t);
-%@eof:7
-
-%@test:8
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts1.save('test_generated_data_file','m');
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ T = all(t);
-%@eof:8
-
-%@test:9
-%$ % Define a data set.
-%$ A = [transpose(1:60),2*transpose(1:60),3*transpose(1:60)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'B1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,'1971Q1',A_name,[]);
-%$
-%$ % Define the range of a subsample.
-%$ range = dates('1971Q2'):dates('1971Q4');
-%$ % Call the tested method.
-%$ a = ts1(range);
-%$
-%$ % Expected results.
-%$ e.data = A(2:4,:);
-%$ e.nobs = 3;
-%$ e.vobs = 3;
-%$ e.name = {'A1';'A2';'B1'};
-%$ e.freq = 4;
-%$ e.init = dates('1971Q2');
-%$
-%$ t(1) = dassert(e.data,a.data);
-%$ t(2) = dassert(e.nobs,a.nobs);
-%$ t(3) = dassert(e.vobs,a.vobs);
-%$ t(4) = dassert(e.name,a.name);
-%$ t(5) = dassert(e.init,a.init);
-%$ T = all(t);
-%@eof:9
-
-%@test:10
-%$ % Define a data set.
-%$ A = [transpose(1:60),2*transpose(1:60),3*transpose(1:60)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'B1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,'1971Q1',A_name,[]);
-%$
-%$ % Test the size method.
-%$ B = ts1.size();
-%$ C = ts1.size(1);
-%$ D = ts1.size(2);
-%$ E = ts1.size;
-%$
-%$ t(1) = dassert(B,[60, 3]);
-%$ t(2) = dassert(E,[60, 3]);
-%$ t(3) = dassert(C,60);
-%$ t(4) = dassert(D,3);
-%$ T = all(t);
-%@eof:10
-
-%@test:11
-%$ % Define a data set.
-%$ A = [transpose(1:60),2*transpose(1:60),3*transpose(1:60)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2';'B1'};
-%$
-%$ % Instantiate a time series object.
-%$ ts1 = dseries(A,'1971Q1',A_name,[]);
-%$
-%$ % Test the size method.
-%$ B = ts1{1};
-%$ C = ts1{[1,3]};
-%$ D = ts1{'A1'};
-%$
-%$ t(1) = dassert(B.name{1},'A1');
-%$ t(2) = dassert(B.data,A(:,1));
-%$ t(3) = dassert(C.name{1},'A1');
-%$ t(4) = dassert(C.data(:,1),A(:,1));
-%$ t(5) = dassert(C.name{2},'B1');
-%$ t(6) = dassert(C.data(:,2),A(:,3));
-%$ t(7) = dassert(D.name{1},'A1');
-%$ t(8) = dassert(D.data,A(:,1));
-%$ T = all(t);
-%@eof:11
-
-%@test:12
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ if isoctave
-%$ ts1.save('ts1');
-%$ else
-%$ ts1.save();
-%$ end
-%$ t = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ T = all(t);
-%@eof:12
-
-%@test:13
-%$ try
-%$ data = transpose(0:1:50);
-%$ ts = dseries(data,'1950Q1');
-%$ a = ts.lag;
-%$ b = ts.lead;
-%$ tt = dynTimeIndex();
-%$ c = ts(tt-1);
-%$ d = ts(tt+1);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)>1
-%$ t(2) = (a==c);
-%$ t(3) = (b==d);
-%$ end
-%$
-%$ T = all(t);
-%@eof:13
-
-%@test:14
-%$ try
-%$ data = transpose(0:1:50);
-%$ ts = dseries(data,'1950Q1');
-%$ a = ts.lag;
-%$ b = ts.lead;
-%$ c = ts(-1);
-%$ d = ts(1);
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)>1
-%$ t(2) = (a==c);
-%$ t(3) = (b==d);
-%$ end
-%$
-%$ T = all(t);
-%@eof:14
-
-%@test:15
-%$ try
-%$ ds = dseries(transpose(1:5));
-%$ ts = ds(ds.dates(2:3));
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ if t(1)>1
-%$ t(2) = isdseries(ts);
-%$ t(3) = isequal(ts.data,ds.data(2:3));
-%$ end
-%$
-%$ T = all(t);
-%@eof:15
-
-%@test:16
-%$ try
-%$ ds = dseries(transpose(1:5));
-%$ ts = ds(ds.dates(2:6));
-%$ t(1) = 0;
-%$ catch
-%$ t(1) = 1;
-%$ end
-%$
-%$ T = all(t);
-%@eof:16
-
-%@test:17
-%$ try
-%$ ds = dseries(transpose(1:5));
-%$ ts = ds(dates('1Y'):dates('6Y'));
-%$ t(1) = 0;
-%$ catch
-%$ t(1) = 1;
-%$ end
-%$
-%$ T = all(t);
-%@eof:17
-
-%@test:18
-%$ try
-%$ ds = dseries(transpose(1:5));
-%$ ts = ds(dates('-2Y'):dates('4Y'));
-%$ t(1) = 0;
-%$ catch
-%$ t(1) = 1;
-%$ end
-%$
-%$ T = all(t);
-%@eof:18
\ No newline at end of file
diff --git a/matlab/@dseries/tex_rename.m b/matlab/@dseries/tex_rename.m
deleted file mode 100644
index 76a6967d3..000000000
--- a/matlab/@dseries/tex_rename.m
+++ /dev/null
@@ -1,88 +0,0 @@
-function ts = tex_rename(ts, varargin) % --*-- Unitary tests --*--
-
-% 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 .
-
-assert(nargin <= 3, 'dseries::tex_rename: accepts at most three args');
-
-if nargin == 2
- newtexname = varargin{1};
- assert(vobs(ts) == 1, ['dseries::tex_rename: with one argument, the dseries contain only one variable.']);
-else
- newtexname = varargin{2};
- name = varargin{1};
- assert(ischar(name), 'dseries::tex_rename: second input argument (name) must be a string');
-end
-
-assert(ischar(newtexname), 'dseries::tex_rename: third input argument (newtexname) name must be a string');
-
-if nargin == 2
- idname = 1;
-else
- idname = find(strcmp(name, ts.name));
- if isempty(idname)
- error(['dseries::tex_rename: Variable ' name ' is unknown in dseries object ' inputname(1) '!'])
- end
-end
-
-ts.tex(idname) = {newtexname};
-
-%@test:1
-%$ t = zeros(8,1);
-%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
-%$ try
-%$ ts = tex_rename(ts,'Output','\\Delta Y_t');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Output'; 'Consumption'});
-%$ t(8) = dassert(ts.tex,{'\\Delta Y_t'; 'C_t'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ t = zeros(8,1);
-%$ ts = dseries([transpose(1:5), transpose(6:10)],'1950q1',{'Output'; 'Consumption'}, {'Y_t'; 'C_t'});
-%$ try
-%$ ts = ts.tex_rename('Output','\\Delta Y_t');
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts.freq,4);
-%$ t(3) = dassert(ts.init.freq,4);
-%$ t(4) = dassert(ts.init.time,[1950, 1]);
-%$ t(5) = dassert(ts.vobs,2);
-%$ t(6) = dassert(ts.nobs,5);
-%$ t(7) = dassert(ts.name,{'Output'; 'Consumption'});
-%$ t(8) = dassert(ts.tex,{'\\Delta Y_t'; 'C_t'});
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dseries/uminus.m b/matlab/@dseries/uminus.m
deleted file mode 100644
index 6f0185311..000000000
--- a/matlab/@dseries/uminus.m
+++ /dev/null
@@ -1,81 +0,0 @@
-function A = uminus(B) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{A} =} plus (@var{B},@var{C})
-%! @anchor{@dseries/uminus}
-%! @sp 1
-%! Overloads the uminus method for the Dynare time series class (@ref{dseries}).
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item B
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @item C
-%! Dynare time series object instantiated by @ref{dseries}.
-%! @end table
-%! @sp 1
-%! @strong{Outputs}
-%! @sp 1
-%! @table @ @var
-%! @item A
-%! Dynare time series object.
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-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 .
-
-A = dseries();
-
-A.data = -(B.data);
-A.dates = B.dates;
-
-A.name = cell(vobs(A),1);
-A.tex = cell(vobs(A),1);
-for i = 1:vobs(A)
- A.name(i) = {[ '-' B.name{i}]};
- A.tex(i) = {[ '-' B.tex{i}]};
-end
-
-%@test:1
-%$ % Define a datasets.
-%$ A = rand(10,2);
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ A_tex = {'A_1';'A_2'};
-%$ t = zeros(6,1);
-%$
-%$ % Instantiate a time series object.
-%$ try
-%$ ts1 = dseries(A,[],A_name,A_tex);
-%$ ts2 = -ts1;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$ if length(t)>1
-%$ t(2) = dassert(ts2.vobs,2);
-%$ t(3) = dassert(ts2.nobs,10);
-%$ t(4) = dassert(ts2.data,-A,1e-15);
-%$ t(5) = dassert(ts2.name,{'-A1';'-A2'});
-%$ t(6) = dassert(ts2.tex,{'-A_1';'-A_2'});
-%$ end
-%$ T = all(t);
-%@eof:1
diff --git a/matlab/@dseries/vertcat.m b/matlab/@dseries/vertcat.m
deleted file mode 100644
index 093bee9c0..000000000
--- a/matlab/@dseries/vertcat.m
+++ /dev/null
@@ -1,142 +0,0 @@
-function a = vertcat(varargin) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function file} {@var{a} =} vertcat (@var{b},@var{c}, ...)
-%! @anchor{horzcat}
-%! @sp 1
-%! Method of the dseries class.
-%! @sp 1
-%! This method overloads the vertical concatenation operator, so that
-%! two (or more) time series objects containing the same variables
-%! can be merged using the following syntax:
-%!
-%! a = [b; c; d];
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @ @var
-%! @item b
-%! Dynare time series object, instantiated by @ref{dseries}.
-%! @item c
-%! Dynare time series object, instantiated by @ref{dseries}.
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item a
-%! Dynare time series object.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% 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==0
- a = DynSeries();
-elseif nargin == 1
- a = varargin{1};
-elseif nargin>1
- a = varargin{1};
- for i=2:nargin
- a = vertcat_(a,varargin{i});
- end
-end
-
-function d = vertcat_(b, c)
- d = NaN;
- if ~isequal(frequency(b), frequency(c))
- error('dseries::vertcat: Frequencies must be common!')
- end
- if ~isequal(vobs(b), vobs(c))
- error('dseries::vertcat: Number of variables must be common!')
- end
- if ~isequal(b.name, c.name)
- error('dseries::vertcat: Variables must be common!')
- end
- d = b;
- d.data = [b.data; c.data];
- d.dates = [b.dates; c.dates];
-
-%@test:1
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$ B = [transpose(1:10),2*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'A1';'A2'};
-%$
-%$ % Define expected results.
-%$ e.init = dates(1,1);
-%$ e.freq = 1;
-%$ e.name = {'A1';'A2'};
-%$ e.data = [A;B];
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts3 = [ts1;ts2];
-%$
-%$ % Check the results.
-%$
-%$ t(1) = dassert(ts3.init,e.init);
-%$ t(2) = dassert(ts3.freq,e.freq);
-%$ t(3) = dassert(ts3.data,e.data);
-%$ t(4) = dassert(ts3.name,e.name);
-%$ t(5) = dassert(ts3.nobs,20);
-%$ T = all(t);
-%@eof:1
-
-
-%@test:2
-%$ % Define a data set.
-%$ A = [transpose(1:10),2*transpose(1:10)];
-%$ B = [transpose(1:10),2*transpose(1:10)];
-%$ C = [transpose(1:10),3*transpose(1:10)];
-%$
-%$ % Define names
-%$ A_name = {'A1';'A2'};
-%$ B_name = {'A1';'A2'};
-%$ C_name = {'A1';'A2'};
-%$
-%$ % Define expected results.
-%$ e.init = dates(1,1);
-%$ e.freq = 1;
-%$ e.name = {'A1';'A2'};
-%$ e.data = [A;B;C];
-%$
-%$ % Instantiate two time series objects.
-%$ ts1 = dseries(A,[],A_name,[]);
-%$ ts2 = dseries(B,[],B_name,[]);
-%$ ts3 = dseries(C,[],C_name,[]);
-%$
-%$ % Call the tested method.
-%$ ts4 = [ts1; ts2; ts3];
-%$
-%$ % Check the results.
-%$
-%$ t(1) = dassert(ts4.init,e.init);
-%$ t(2) = dassert(ts4.freq,e.freq);
-%$ t(3) = dassert(ts4.data,e.data);
-%$ t(4) = dassert(ts4.name,e.name);
-%$ t(5) = dassert(ts4.nobs,30);
-%$ T = all(t);
-%@eof:2
diff --git a/matlab/@dseries/vobs.m b/matlab/@dseries/vobs.m
deleted file mode 100644
index 37c1c80dd..000000000
--- a/matlab/@dseries/vobs.m
+++ /dev/null
@@ -1,22 +0,0 @@
-function s = vobs(ts)
-
-% Returns the number of variables in a @dseries object.
-
-% Copyright (C) 2014 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 .
-
-s = columns(ts.data);
\ No newline at end of file
diff --git a/matlab/@dseries/ydiff.m b/matlab/@dseries/ydiff.m
deleted file mode 100644
index dbbd150fb..000000000
--- a/matlab/@dseries/ydiff.m
+++ /dev/null
@@ -1,171 +0,0 @@
-function us = ydiff(ts) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} ydiff (@var{ts})
-%! @anchor{ydiff}
-%! @sp 1
-%! Computes annual differences.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item us
-%! Dynare time series object with transformed data field.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-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 .
-
-us = ts;
-
-switch frequency(ts)
- case 1
- us.data(2:end,:) = ts.data(2:end,:)-ts.data(1:end-1,:);
- us.data(1,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ydiff(' us.name{i} ')']};
- us.tex(i) = {['\Delta ' us.tex{i}]};
- end
- case 4
- us.data(5:end,:) = ts.data(5:end,:)-ts.data(1:end-4,:);
- us.data(1:4,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ydiff(' us.name{i} ')']};
- us.tex(i) = {['\Delta_4 ' us.tex{i}]};
- end
- case 12
- us.data(13:end,:) = ts.data(13:end,:)-ts.data(1:end-12,:);
- us.data(1:12,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ydiff(' us.name{i} ')']};
- us.tex(i) = {['\Delta_{12} ' us.tex{i}]};
- end
- case 52
- us.data(53:end,:) = ts.data(53:end,:)-ts.data(1:end-52,:);
- us.data(1:52,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ydiff(' us.name{i} ')']};
- us.tex(i) = {['\Delta_{52} ' us.tex{i}]};
- end
- otherwise
- error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
-end
-
-%@test:1
-%$ t = zeros(4,1);
-%$
-%$ try
-%$ data = transpose(1:100);
-%$ ts = dseries(data,'1950Q1',{'A1'},{'A_1'});
-%$ ts = ts.ydiff;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$
-%$ if length(t)>1
-%$ DATA = NaN(4,ts.vobs);
-%$ DATA = [DATA; 4*ones(ts.nobs-4,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA);
-%$ t(3) = dassert(ts.name{1},['ydiff(A1)']);
-%$ t(4) = dassert(ts.tex{1},['\\Delta_4 A_1']);
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ t = zeros(4,1);
-%$
-%$ try
-%$ data = transpose(1:100);
-%$ ts = dseries(data,'1950M1',{'A1'},{'A_1'});
-%$ ts = ts.ydiff;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$
-%$ if length(t)>1
-%$ DATA = NaN(12,ts.vobs);
-%$ DATA = [DATA; 12*ones(ts.nobs-12,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA);
-%$ t(3) = dassert(ts.name{1},['ydiff(A1)']);
-%$ t(4) = dassert(ts.tex{1},['\\Delta_{12} A_1']);
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = transpose(1:100);
-%$ ts = dseries(data,'1950W1',{'A1'},{'A_1'});
-%$ ts = ts.ydiff;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$
-%$ if length(t)>1
-%$ DATA = NaN(52,ts.vobs);
-%$ DATA = [DATA; 52*ones(ts.nobs-52,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA);
-%$ t(3) = dassert(ts.name{1},['ydiff(A1)']);
-%$ t(4) = dassert(ts.tex{1},['\\Delta_{52} A_1']);
-%$ end
-%$
-%$ T = all(t);
-%@eof:3
-
-%@test:4
-%$ t = zeros(4,1);
-%$
-%$ try
-%$ data = transpose(1:100);
-%$ ts = dseries(data,'1950Y',{'A1'},{'A_1'});
-%$ ts = ts.ydiff;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$
-%$ if length(t)>1
-%$ DATA = NaN(1,ts.vobs);
-%$ DATA = [DATA; ones(ts.nobs-1,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA);
-%$ t(3) = dassert(ts.name{1},['ydiff(A1)']);
-%$ t(4) = dassert(ts.tex{1},['\\Delta A_1']);
-%$ end
-%$
-%$ T = all(t);
-%@eof:4
diff --git a/matlab/@dseries/ygrowth.m b/matlab/@dseries/ygrowth.m
deleted file mode 100644
index bc5deeb58..000000000
--- a/matlab/@dseries/ygrowth.m
+++ /dev/null
@@ -1,141 +0,0 @@
-function us = ygrowth(ts) % --*-- Unitary tests --*--
-
-%@info:
-%! @deftypefn {Function File} {@var{us} =} ygrowth (@var{ts})
-%! @anchor{ygrowth}
-%! @sp 1
-%! Computes annual growth rates.
-%! @sp 2
-%! @strong{Inputs}
-%! @sp 1
-%! @table @var
-%! @item ts
-%! Dynare time series object, instantiated by @ref{dseries}
-%! @end table
-%! @sp 2
-%! @strong{Outputs}
-%! @sp 1
-%! @table @var
-%! @item us
-%! Dynare time series object with transformed data field.
-%! @end table
-%! @end deftypefn
-%@eod:
-
-% Copyright (C) 2012-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 .
-
-us = ts;
-
-switch frequency(ts)
- case 1
- us.data(2:end,:) = ts.data(2:end,:)./ts.data(1:end-1,:) - 1;
- us.data(1,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ygrowth(' us.name{i} ')']};
- us.tex(i) = {['\delta ' us.tex{i}]};
- end
- case 4
- us.data(5:end,:) = ts.data(5:end,:)./ts.data(1:end-4,:) - 1;
- us.data(1:4,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ygrowth(' us.name{i} ')']};
- us.tex(i) = {['\delta_4 ' us.tex{i}]};
- end
- case 12
- us.data(13:end,:) = ts.data(13:end,:)./ts.data(1:end-12,:) - 1;
- us.data(1:12,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ygrowth(' us.name{i} ')']};
- us.tex(i) = {['\delta_{12} ' us.tex{i}]};
- end
- case 52
- us.data(53:end,:) = ts.data(53:end,:)./ts.data(1:end-52,:) - 1;
- us.data(1:52,:) = NaN;
- for i = 1:vobs(ts)
- us.name(i) = {['ygrowth(' us.name{i} ')']};
- us.tex(i) = {['\delta_{52} ' us.tex{i}]};
- end
- otherwise
- error(['dseries::ygrowth: object ' inputname(1) ' has unknown frequency']);
-end
-
-%@test:1
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = repmat(transpose(1:4),100,1);
-%$ ts = dseries(data,'1950Q1');
-%$ ts = ts.ygrowth;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$
-%$ if length(t)>1
-%$ DATA = NaN(4,ts.vobs);
-%$ DATA = [DATA; zeros(ts.nobs-4,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA);
-%$ end
-%$
-%$ T = all(t);
-%@eof:1
-
-%@test:2
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = repmat(transpose(1:12),100,1);
-%$ ts = dseries(data,'1950M1');
-%$ ts = ts.ygrowth;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$
-%$ if length(t)>1
-%$ DATA = NaN(12,ts.vobs);
-%$ DATA = [DATA; zeros(ts.nobs-12,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA);
-%$ end
-%$
-%$ T = all(t);
-%@eof:2
-
-%@test:3
-%$ t = zeros(2,1);
-%$
-%$ try
-%$ data = repmat(transpose(1:52),100,1);
-%$ ts = dseries(data,'1950W1');
-%$ ts = ts.ygrowth;
-%$ t(1) = 1;
-%$ catch
-%$ t = 0;
-%$ end
-%$
-%$
-%$ if length(t)>1
-%$ DATA = NaN(52,ts.vobs);
-%$ DATA = [DATA; zeros(ts.nobs-52,ts.vobs)];
-%$ t(2) = dassert(ts.data,DATA);
-%$ end
-%$
-%$ T = all(t);
-%@eof:3
diff --git a/matlab/utilities/dseries/from.m b/matlab/utilities/dseries/from.m
deleted file mode 100644
index 81fd5bc16..000000000
--- a/matlab/utilities/dseries/from.m
+++ /dev/null
@@ -1,494 +0,0 @@
-function from(varargin) % --*-- Unitary tests --*--
-
-% Copyright (C) 2014 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 .
-
-lvarargin = lower(varargin);
-
-to_id = strmatch('to',lvarargin);
-do_id = strmatch('do',lvarargin);
-
-if isempty(to_id) || isempty(do_id)
- error(get_error_message_0())
-end
-
-if do_idd2
- error('dseries::from: The first date must preceed the second one!')
-end
-
-if ~isequal(do_id,4)
- msg = sprintf('dseries::from: Wrong syntax! The second dates object must be immediately followed by the DO keyword.\n');
- error(get_error_message_0(msg))
-end
-
-% Build the recursive expression.
-EXPRESSION = char([varargin{5:end}]);
-
-% Check that the expression is an assignment
-equal_id = strfind(EXPRESSION,'=');
-if isempty(equal_id)
- error('dseries::from: Wrong syntax! The expression following the DO keyword must be an assignment (missing equal symbol).')
-end
-
-% Issue ann error message if the user attempts to do more than one assignment.
-if ~isequal(length(equal_id),1)
- error('dseries::from: Not yet implemented! Only one assignment is allowed in the FROM-TO-DO statement.')
-end
-
-% Get all the variables involved in the recursive expression.
-variables = unique(regexpi(EXPRESSION, '\w*\(t\)|\w*\(t\-\d\)|\w*\(t\+\d\)|\w*\.\w*\(t\)|\w*\.\w*\(t\-\d\)|\w*\.\w*\(t\+\d\)','match'));
-
-% Copy EXPRESSION in expression. In the next loop we will remove all indexed variables from expression.
-expression = EXPRESSION;
-
-% Build an incidence table (max lag/lead for each variable)
-%
-% Column 1: Name of the variable.
-% Column 2: Maximum lag order.
-% Column 3: Equal to 1 if the variable appears at the current period, 0 otherwise.
-% Column 4: Maximum lead order.
-% Column 5: Vector of effective lag orders.
-% Column 6: Vector of effective lead orders.
-%
-% Initialization.
-leadlagtable = cell(0,6);
-% Loop over the variables (dseries objects).
-for i=1:length(variables)
- expression = strrep(expression,variables{i},'');
- current = ~isempty(regexpi(variables{i},'\(t\)'));
- lag = ~isempty(regexpi(variables{i},'\(t\-\d\)'));
- lead = ~isempty(regexpi(variables{i},'\(t\+\d\)'));
- start = regexpi(variables{i},'\(t\)|\(t\-\d\)|\(t\+\d\)');
- index = variables{i}(start:end);
- variables(i) = {variables{i}(1:start-1)};
- if isempty(leadlagtable)
- leadlagtable(1,1) = {variables{i}};
- if current
- leadlagtable(1,3) = {1};
- else
- leadlagtable(1,3) = {0};
- end
- if lag
- tmp = regexpi(index,'\d','match');
- leadlagtable(1,2) = {str2double(tmp{1})};
- leadlagtable(1,5) = {str2double(tmp{1})};
- else
- leadlagtable(1,2) = {0};
- leadlagtable(1,5) = {[]};
- end
- if lead
- tmp = regexpi(index,'\d','match');
- leadlagtable(1,4) = {str2double(tmp{1})};
- leadlagtable(1,6) = {str2double(tmp{1})};
- else
- leadlagtable(1,4) = {0};
- leadlagtable(1,6) = {[]};
- end
- else
- linea = strmatch(variables{i},leadlagtable(:,1));
- if isempty(linea)
- % This is a new variable!
- linea = size(leadlagtable,1)+1;
- leadlagtable(linea,1) = {variables{i}};
- leadlagtable(linea,2) = {0};
- leadlagtable(linea,3) = {0};
- leadlagtable(linea,4) = {0};
- leadlagtable(linea,5) = {[]};
- leadlagtable(linea,6) = {[]};
- end
- if current
- leadlagtable(linea,3) = {1};
- end
- if lag
- tmp = regexpi(index,'\d','match');
- leadlagtable(linea,2) = {max(str2double(tmp{1}),leadlagtable{linea,2})};
- leadlagtable(linea,5) = {sortrows([leadlagtable{linea,5}; str2double(tmp{1})])};
- end
- if lead
- tmp = regexpi(index,'\d','match');
- leadlagtable(linea,4) = {max(str2double(tmp{1}),leadlagtable{linea,4})};
- leadlagtable(linea,6) = {sortrows([leadlagtable{linea,6}; str2double(tmp{1})])};
- end
- end
-end
-
-% Set the number of variables
-number_of_variables = size(leadlagtable,1);
-
-% Initialize a cell array containing the names of the variables.
-variable_names = cell(1);
-
-% Test that all the involved variables are available dseries objects. Also check that
-% these time series are defined over the time range given by d1 and d2 (taking care of
-% the lags and leads) and check that each object is a singleton
-for i=1:number_of_variables
- current_variable = leadlagtable{i,1};
- idvar = strfind(current_variable,'.');
- if isempty(idvar)
- idvar = 0;
- end
- if idvar
- current_variable_0 = current_variable(1:idvar-1);
- else
- current_variable_0 = current_variable;
- end
- try
- var = evalin('caller',current_variable_0);
- catch
- error(['dseries::from: Variable ' current_variable_0 ' is unknown!'])
- end
- if idvar
- try
- eval(sprintf('var = var.%s;',current_variable(idvar+1:end)))
- catch
- error(sprintf('dseries::from: Variable %s is not a member of dseries oject %s!', current_variable(idvar+1:end), current_variable_0))
- end
- end
- if ~isdseries(var)
- error(['dseries::from: Variable ' current_variable ' is not a dseries object!'])
- else
- if ~var.vobs
- msg = sprintf('dseries::from: Object %s must not be empty!\n',current_variable);
- error(msg)
- end
- if var.vobs>1
- msg = sprintf('dseries::from: Object %s must contain only one variable!\n',current_variable);
- error(msg)
- end
- if i>1
- if ismember(var.name,variable_names)
- % Locally change variable name.
- var = var.rename(var.name{1},get_random_string(20));
- end
- variable_names(i) = {var.name{1}};
- else
- variable_names(i) = {var.name{1}};
- end
- if d1var.dates(end)-leadlagtable{i,4}
- % The first variable should be the assigned variable (will be tested later)
- if ~isassignedvariable(leadlagtable{i,1},EXPRESSION)
- msg = sprintf('dseries::from: Last date of the loop (%s) is inconsistent with %s''s range!\n',char(d2),current_variable);
- msg = [msg, sprintf(' Last date should be less than or equal to %s.',char(var.dates(end)-leadlagtable{i,4}))];
- error(msg)
- else
- var = [var; dseries(NaN((d2-var.dates(end)),1),var.dates(end)+1:d2,var.name)];
- end
- end
- eval(sprintf('%s = var;',current_variable));
- end
-end
-
-% Get the name of the assigned variable (with time index)
-assignedvariablename = regexpi(EXPRESSION(1:equal_id-1), '\w*\(t\)|\w*\(t\-\d\)|\w*\(t\+\d\)|\w*\.\w*\(t\)|\w*\.\w*\(t\-\d\)|\w*\.\w*\(t\+\d\)','match');
-if isempty(assignedvariablename)
- error('dseries::from: Wrong syntax! The expression following the DO keyword must be an assignment (missing variable before the equal symbol).')
-end
-if length(assignedvariablename)>1
- error('dseries::from: No more than one variable can be assigned!')
-end
-% Check if the model is static
-start = regexpi(assignedvariablename{1},'\(t\)|\(t\-\d\)|\(t\+\d\)');
-index = assignedvariablename{1}(start:end);
-assignedvariablename = assignedvariablename{1}(1:start-1);
-indva = strmatch(assignedvariablename, leadlagtable(:,1));
-dynamicmodel = ~isempty(regexpi(EXPRESSION(equal_id:end), ...
- sprintf('%s\\(t\\)|%s\\(t\\-\\d\\)|%s\\(t\\+\\d\\)',assignedvariablename,assignedvariablename,assignedvariablename),'match'));
-% Check that the dynamic model for the endogenous variable is not forward looking.
-if dynamicmodel
- indum = index2num(index);
- if indum TMP314159).
-TMP3141 = regexp(TMP314,'(([0-9]*\.[0-9]*)|([0-9]*))','match');
-TMP31415 = find(cellfun(@isempty,TMP3141));
-TMP314159 = TMP314(TMP31415);
-
-if dynamicmodel
- % Transform EXPRESSION by replacing calls to the dseries objects by references to data.
- for i=1:number_of_variables
- EXPRESSION = regexprep(EXPRESSION,sprintf('%s\\(t\\)',leadlagtable{i,1}),sprintf('data(t,%s)',num2str(i)));
- for j=1:length(leadlagtable{i,5})
- lag = leadlagtable{i,5}(j);
- EXPRESSION = regexprep(EXPRESSION,sprintf('%s\\(t-%s\\)',leadlagtable{i,1},num2str(lag)), ...
- sprintf('data(t-%s,%s)',num2str(lag),num2str(i)));
- end
- for j=1:length(leadlagtable{i,6})
- lead = leadlagtable{i,6}(j);
- EXPRESSION = regexprep(EXPRESSION,sprintf('%s\\(t+%s\\)',leadlagtable{i,1},num2str(lead)), ...
- sprintf('data(t+%s,%s)',num2str(lead),num2str(i)));
- end
- end
- % Get values for the parameters (if any)
- if ~isempty(TMP314159)
- for i=1:length(TMP314159)
- wordcandidate = TMP314159{i};
- try % If succesful, word is a reference to a variable in the caller function/script.
- thiswordisaparameter = evalin('caller', wordcandidate);
- eval(sprintf('%s = thiswordisaparameter;',wordcandidate));
- catch
- % I assume that word is a reference to a function.
- end
- end
- end
- % Do the job. Evaluate the recursion.
- eval(sprintf('for t=%s:%s, %s; end',num2str(t1),num2str(t2),EXPRESSION));
-else
- % Transform EXPRESSION by replacing calls to the dseries objects by references to data.
- for i=1:number_of_variables
- EXPRESSION = regexprep(EXPRESSION,sprintf('%s\\(t\\)',leadlagtable{i,1}), ...
- sprintf('data(%s:%s,%s)',num2str(t1),num2str(t2),num2str(i)));
- for j=1:length(leadlagtable{i,5})
- lag = leadlagtable{i,5}(j);
- EXPRESSION = regexprep(EXPRESSION,sprintf('%s\\(t-%s\\)',leadlagtable{i,1},num2str(lag)), ...
- sprintf('data(%s:%s,%s)',num2str(t1-lag),num2str(t2-lag),num2str(i)));
- end
- for j=1:length(leadlagtable{i,6})
- lead = leadlagtable{i,6}(j);
- EXPRESSION = regexprep(EXPRESSION,sprintf('%s\\(t+%s\\)',leadlagtable{i,1},num2str(lead)), ...
- sprintf('data(%s:%s,%s)',num2str(t1-lead),num2str(t2-lead),num2str(i)));
- end
- end
- % Transform some operators (^ -> .^, / -> ./ and * -> .*)
- EXPRESSION = strrep(EXPRESSION,'^','.^');
- EXPRESSION = strrep(EXPRESSION,'*','.*');
- EXPRESSION = strrep(EXPRESSION,'/','./');
- % Get values for the parameters (if any)
- if ~isempty(TMP314159)
- for i=1:length(TMP314159)
- wordcandidate = TMP314159{i};
- try % If succesful, word is a reference to a variable in the caller function/script.
- thiswordisaparameter = evalin('caller', wordcandidate);
- eval(sprintf('%s = thiswordisaparameter;',wordcandidate));
- catch
- % I assume that word is a reference to a function.
- end
- end
- end
- % Do the job. Evaluate the static expression.
- eval(sprintf('%s;',EXPRESSION));
-end
-
-% Put assigned variable back in the caller workspace...
-if isempty(strfind(assignedvariablename,'.'))
- eval(sprintf('assignin(''caller'', ''%s'', dseries(data(:,indva),%s.init,%s.name,%s.tex));', ...
- assignedvariablename,assignedvariablename,assignedvariablename,assignedvariablename))
-else
- DATA = num2cell(data(:,indva));
- strdata = sprintf('%f ', DATA{:});
- evalin('caller',sprintf('%s = dseries(transpose([%s]),%s.init,%s.name,%s.tex);', ...
- assignedvariablename,strdata,assignedvariablename,assignedvariablename,assignedvariablename))
-end
-
-function msg = get_error_message_0(msg)
- if ~nargin
- msg = sprintf('Wrong syntax! The correct syntax is:\n\n');
- else
- msg = [msg, sprintf('The correct syntax is:\n\n')];
- end
- msg = [msg, sprintf(' from d1 to d2 do SOMETHING\n\n')];
- msg = [msg, sprintf('where d10)-1;
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ T = all(t);
-%@eof:4
-
-%@test:5
-%$ try
-%$ y = dseries(zeros(4000,1),dates('1950Q1')) ;
-%$ v = dseries(randn(4000,1),dates('1950Q1')) ;
-%$ u = dseries(randn(4000,1),dates('1950Q1')) ;
-%$ from 1950Q2 to 2949Q4 do y(t) = y(t-1)*(2*((v(t) -.5*v(t-1))>u(t))-1)+u(t); %plot(y)
-%$ t(1) = 1;
-%$ catch
-%$ t(1) = 0;
-%$ end
-%$
-%$ T = all(t);
-%@eof:5
diff --git a/matlab/utilities/dseries/isdseries.m b/matlab/utilities/dseries/isdseries.m
deleted file mode 100644
index 9d2c7d249..000000000
--- a/matlab/utilities/dseries/isdseries.m
+++ /dev/null
@@ -1,20 +0,0 @@
-function B = isdseries(A)
-
-% Copyright (C) 2011-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 .
-
-B = isa(A,'dseries');
\ No newline at end of file