docs: def cplus(*args):
      '''
      cplus(a, b...) returns the sum of all the values as a numpy array object. Like numpy's add
        function or a+b syntax, plus will thread over the latest dimension possible.
  
      Additionally, cplus works correctly with sparse arrays.
      '''
      n = len(args)
      if   n == 0: return np.asarray(0)
      elif n == 1: return np.asarray(args[0])
      elif n >  2: return reduce(plus, args)
      (a,b) = args
      if sps.issparse(a):
          if not sps.issparse(b):
              b = np.asarray(b)
              if len(b.shape) == 0: b = np.reshape(b, (1,1))
      elif sps.issparse(b):
          a = np.asarray(a)
          if len(a.shape) == 0: a = np.reshape(a, (1,1))
      else:
          a = np.asarray(a)
          b = np.asarray(b)
      return a + b