def plus(*args):
n = len(args)<EOL>if   n == <NUM_LIT:0>: return np.asarray(<NUM_LIT:0>)<EOL>elif n == <NUM_LIT:1>: return np.asarray(args[<NUM_LIT:0>])<EOL>elif n >  <NUM_LIT:2>: return reduce(plus, args)<EOL>(a,b) = unbroadcast(*args)<EOL>return a + b<EOL>
plus(a, b...) returns the sum of all the values as a numpy array object. Unlike numpy's add
  function or a+b syntax, plus will thread over the earliest dimension possible; thus if a.shape
  a.shape is (4,2) and b.shape is 4, plus(a,b) is a equivalent to
  [ai+bi for (ai,bi) in zip(a,b)].