function C = myunion(A,B)
% MYUNION Union of two sets of positive integers
%
% C = MYUNION(A,B)

% Jerod Weinman
% jerod@acm.org

% $Id: myunion.m 1 2009-05-07 13:41:00Z weinman $
 
% Jerod Weinman
% jerod@acm.org
% Copyright 2004, 2008, 2009
 
%    This file is part of Matlab GridCRF.
%
%    Matlab GridCRF 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.
%
%    Matlab GridCRF 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 Matlab GridCRF.  If not, see <http://www.gnu.org/licenses/>.

if isempty(A)
    szA = 0;
else
    szA = max(A);
end

if isempty(B)
    szB = 0;
else
    szB = max(B);
end

if (~szA && ~szB)
    C = [];
elseif (~szA && szB)
    C = B;
elseif (szA && ~szB)
    C = A;
else
    I = false(1, max(szA,szB));
    I(A) = 1;
    I(B) = 1;
    C = find(I);
end
