docs: def divide(a, b):
      '''
      divide(a, b) returns the quotient a / b as a numpy array object. Unlike numpy's divide function
        or a/b syntax, divide will thread over the earliest dimension possible; thus if a.shape is
        (4,2) and b.shape is 4, divide(a,b) is a equivalent to [ai/bi for (ai,bi) in zip(a,b)].
  
      Note that divide(a,b) supports sparse array arguments, but if b is a sparse matrix, then it will
      be reified. Additionally, errors are raised by this function when divide-by-zero occurs, so it
      is usually not useful to use divide() with sparse matrices--see zdivide instead.
      '''
      (a,b) = unbroadcast(a,b)
      return cdivide(a,b)