From 389c33c026a77fb0e9e1e405f84a8632fe109f2a Mon Sep 17 00:00:00 2001
From: Josef Kamleitner <josef.kamleitner@epfl.ch>
Date: Wed, 19 Jun 2013 07:49:48 +0000
Subject: [PATCH] fixed bug in input variable check, structured code; no change
 in how the function works

git-svn-id: https://spcsvn.epfl.ch/repos/TCV/gdat/trunk@3931 d63d8f72-b253-0410-a779-e742ad2e26cf
---
 crpptbx/TCV/private/common_ece.m | 78 +++++++++++++++++++++++---------
 1 file changed, 56 insertions(+), 22 deletions(-)

diff --git a/crpptbx/TCV/private/common_ece.m b/crpptbx/TCV/private/common_ece.m
index 941fbb1c..62bee6da 100755
--- a/crpptbx/TCV/private/common_ece.m
+++ b/crpptbx/TCV/private/common_ece.m
@@ -10,32 +10,66 @@ function [t,i1,i2,i12,t1no,t2no,i1no,i2no]=common_ece(t1,t2,tol,mode,bounds)
 % mode: 'a' all or 'n' nearest matches
 % bounds: [bmin,bmax] limits search interval for t1
 
-if exist('tol')==0,tol=eps;end
-if exist('bounds')==0,bounds=[min([min(t1),min(t2)])-tol;max([max(t2),max(t1)])+tol];end
-if exist('mode')==0,mode='n';end
-i1=zeros(size(t1));i2=zeros(size(t2));t=[];i12=zeros(size(t1));
-t1no=[];t2no=[];i1no=[];i2no=[];match=0;
-for j=1:length(t1);
- if t1(j)>=bounds(1) & t1(j)<=bounds(2)
-  tt1=t1(j)*ones(size(t2));
-  ii2=find(abs(t2-tt1)<=tol);
-  if (mode=='n') & length(ii2)>0
-   if (length(ii2)>1),[x,ii2]=min(abs(t2-tt1));end
-   match=match+1;i2(ii2)=ii2;i1(j)=ii2;i12(j)=ii2;
-  end
-  if (mode=='a' & ii2~=[]),match=match+1;i1(j)=j;i12=ii2(1);i2(ii2)=ii2;end	
- end
+if(nargin<3 || ~exist('tol','var'))
+    tol=eps;
 end
+if(nargin<4 || ~exist('bounds','var'))
+    bounds=[min([min(t1),min(t2)])-tol;
+    max([max(t2),max(t1)])+tol];
+end
+if(nargin<5 || ~exist('mode','var'))
+    mode='n';
+end
+
+i1=zeros(size(t1));
+i2=zeros(size(t2));
+t=[];
+i12=zeros(size(t1));
+
+t1no=[];
+t2no=[];
+
+match=0;
+
+for j=1:length(t1)
+    if(t1(j)>=bounds(1) && t1(j)<=bounds(2))
+        tt1=t1(j)*ones(size(t2));
+        ii2=find(abs(t2-tt1)<=tol);
+        if(strcmp(mode,'n') && ~isempty(ii2))
+            if (length(ii2)>1)
+                [~,ii2]=min(abs(t2-tt1));
+            end
+            match=match+1;
+            i2(ii2)=ii2;
+            i1(j)=ii2;
+            i12(j)=ii2;
+        end
+        if(strcmp(mode,'a') && ~isempty(ii2))
+            match=match+1;
+            i1(j)=j;
+            i12=ii2(1);
+            i2(ii2)=ii2;
+        end	
+    end
+end
+
 %disp(['matches found: ',int2str(match)])
 %keyboard
 
-  i1no=find(i1==0);
-  i2no=find(i2==0);
-  i1=find(i1~=0);
-  i2=find(i2~=0);
-  if length(i1)>0,t=t1(i1);end
-if length(i1no)>0,t1no=t1(i1no);end
-if length(i2no)>0,t2no=t2(i2no);end
+i1no=find(i1==0);
+i2no=find(i2==0);
+i1=find(i1~=0);
+i2=find(i2~=0);
+if(~isempty(i1))
+    t=t1(i1);
+end
+if(~isempty(i1no))
+    t1no=t1(i1no);
+end
+if(~isempty(i2no))
+    t2no=t2(i2no);
+end
 
 %keyboard
 
+end
-- 
GitLab