function varargout=promote(varargin)
% promote -  repmats all args to be the same size
%
% promote :: var {I:[N]->[[Size(I)]->A]} ~'variable argument list of arrays'
% -> var {I:[[N]]->[[MSize]->A]} ~'all arrays of same size'.
%
% Target size is the maximum along each dimensions of all the input sizes.

maxdims=max(cellcat(1,cellmap(@numdims,varargin)));
target=max(cellcat(1,cellmap(@(x)pad1s(maxdims,size1(x)),varargin)),[],1);
varargout=cellmap(@(x)repmat_to(x,tosize(target)),varargin);


				
