code: def incidence(boundary):
      
      return GroupBy(boundary).split(np.arange(boundary.size) // boundary.shape[1])
docs: given an Nxm matrix containing boundary info between simplices,
      compute indidence info matrix
      not very reusable; should probably not be in this lib