From 5105a29bde6d6f87ccbfcc8a61cb7bdfef17c2f5 Mon Sep 17 00:00:00 2001
From: Houtan Bastani <houtan@dynare.org>
Date: Fri, 1 Feb 2019 15:44:19 +0100
Subject: [PATCH] add isinf

---
 src/@dseries/isinf.m   | 51 ++++++++++++++++++++++++++++++++++++++++++
 src/@dseries/subsref.m |  1 +
 2 files changed, 52 insertions(+)
 create mode 100644 src/@dseries/isinf.m

diff --git a/src/@dseries/isinf.m b/src/@dseries/isinf.m
new file mode 100644
index 0000000..a412d10
--- /dev/null
+++ b/src/@dseries/isinf.m
@@ -0,0 +1,51 @@
+function b = isinf(o) % --*-- Unitary tests --*--
+
+% Returns an array of logicals (true/false).
+% Element (t,i) is true iff the i-th variable at period number t is an Inf.
+%
+% INPUTS
+% - o [dseries]    with N variables and T periods.
+%
+% OUTPUTS
+% - b [logical]    T*N array of logicals.
+
+
+% Copyright (C) 2019 Dynare Team
+%
+% This file is part of Dynare.
+%
+% Dynare is free software: you can redistribute it and/or modify
+% it under the terms of the GNU General Public License as published by
+% the Free Software Foundation, either version 3 of the License, or
+% (at your option) any later version.
+%
+% Dynare is distributed in the hope that it will be useful,
+% but WITHOUT ANY WARRANTY; without even the implied warranty of
+% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+% GNU General Public License for more details.
+%
+% You should have received a copy of the GNU General Public License
+% along with Dynare.  If not, see <http://www.gnu.org/licenses/>.
+
+b = isinf(o.data);
+
+%@test:1
+%$ try
+%$     data = randn(100, 10);
+%$     cnan = randi(10, 50, 1);
+%$     rnan = randi(100, 50, 1);
+%$     for i=1:50, data(rnan(i),cnan(i)) = Inf; end
+%$     iinf = isinf(data);
+%$     ts = dseries(data);
+%$     dd = ts.isinf();
+%$     t(1) = true;
+%$ catch
+%$     t(1) = false;
+%$ end
+%$
+%$ if t(1)
+%$     t(2) = isequal(dd, iinf);
+%$ end
+%$
+%$ T = all(t);
+%@eof:1
diff --git a/src/@dseries/subsref.m b/src/@dseries/subsref.m
index fcf5341..d2f2150 100644
--- a/src/@dseries/subsref.m
+++ b/src/@dseries/subsref.m
@@ -115,6 +115,7 @@ switch S(1).type
             'mdiff','mdiff_', ...
             'abs','abs_', ...
             'isnan', ...
+            'isinf', ...
             'firstdate', ...
             'lastdate', ...
             'firstobservedperiod', ...
-- 
GitLab