From f8cc97714d99ca156961e027efb7e529089d147c Mon Sep 17 00:00:00 2001
From: Olivier Sauter <olivier.sauter@epfl.ch>
Date: Thu, 19 Sep 2024 09:47:01 +0200
Subject: [PATCH] simplify interpos_nan and use isfinite

---
 matlab/interpos_nan.m            | 28 +++++-----------------------
 matlab/tests/test_requestnames.m |  2 +-
 2 files changed, 6 insertions(+), 24 deletions(-)

diff --git a/matlab/interpos_nan.m b/matlab/interpos_nan.m
index 396b06b3..1b2e116b 100644
--- a/matlab/interpos_nan.m
+++ b/matlab/interpos_nan.m
@@ -2,7 +2,7 @@ function [varargout] = interpos_nan(var1, var2, var3, varargin);
 %
 % see help interpos for details
 %
-% pre-exclude NaNs from either xin or yin before calling interpos
+% pre-exclude non-finite values from either xin or yin before calling interpos
 %
 nverbose = 1; % warnings
 %
@@ -18,35 +18,17 @@ else
     yin = var2;
     kopt_provided = 0;
   end
-  if nverbose >= 1 && (any(isnan(xin)) || any(isnan(yin))), warning('NaNs removed by interpos_nan'); end
+  if nverbose >= 1 && (any(~isfinite(xin)) || any(~isfinite(yin))), warning('NaNs removed by interpos_nan'); end
 end
 
-ij = find(~isnan(xin) & ~isnan(yin));
+ij = find(isfinite(xin) & isfinite(yin));
 if ~isempty(ij)
   xin_eff = xin(ij);
   yin_eff = yin(ij);
   if kopt_provided == 1
-    switch nargout
-      case 1
-        [varargout{1}] = interpos(var1, xin_eff, yin_eff, varargin{:});
-      case 2
-        [varargout{1},varargout{2}] = interpos(var1, xin_eff, yin_eff, varargin{:});
-      case 3
-        [varargout{1},varargout{2},varargout{3}] = interpos(var1, xin_eff, yin_eff, varargin{:});
-      otherwise
-        [varargout{1},varargout{2},varargout{3},varargout{4}] = interpos(var1, xin_eff, yin_eff, varargin{:});
-    end
+    [varargout{1:nargout}] = interpos(var1, xin_eff, yin_eff, varargin{:});
   else
-    switch nargout
-      case 1
-        [varargout{1}] = interpos(xin_eff, yin_eff, var3, varargin{:});
-      case 2
-        [varargout{1},varargout{2}] = interpos(xin_eff, yin_eff, var3, varargin{:});
-      case 3
-        [varargout{1},varargout{2},varargout{3}] = interpos(xin_eff, yin_eff, var3, varargin{:});
-      otherwise
-        [varargout{1},varargout{2},varargout{3},varargout{4}] = interpos(xin_eff, yin_eff, var3, varargin{:});
-    end
+    [varargout{1:nargout}] = interpos(xin_eff, yin_eff, var3, varargin{:});
   end
 else
   if nargout > 0
diff --git a/matlab/tests/test_requestnames.m b/matlab/tests/test_requestnames.m
index b8fae2bb..b37be790 100644
--- a/matlab/tests/test_requestnames.m
+++ b/matlab/tests/test_requestnames.m
@@ -37,7 +37,7 @@ classdef (SharedTestFixtures={...
           shot = 81102;
           gdat_call = sprintf(['gdat_' lower(testCase.Machine) '(%s,''%s'')'],shot,request);
         case {'mpx', 'xte'}
-          % need a older shot
+          % need an older shot
           shot = 65555;
           gdat_call = sprintf(['gdat_' lower(testCase.Machine) '(%s,''%s'')'],shot,request);
       end
-- 
GitLab