samer@1: % this is weird but it works samer@1: % nan means variable, so max(nan,x)=x samer@1: % inf means failure so max(inf,x)=inf samer@1: function z=unify(x,y) samer@1: if ~isfinite(x) || ~isfinite(y), z=max(x,y); samer@1: elseif x==y, z=x; samer@1: else z=inf; samer@1: end samer@1: end