docs: def compare(items, params, rank=False):
      """Generate a comparison outcome that follows Luce's axiom.
  
      This function samples an outcome for the comparison of a subset of items,
      from a model parametrized by ``params``. If ``rank`` is True, it returns a
      ranking over the items, otherwise it returns a single item.
  
      Parameters
      ----------
      items : list
          Subset of items to compare.
      params : array_like
          Model parameters.
      rank : bool, optional
          If true, returns a ranking over the items instead of a single item.
  
      Returns
      -------
      outcome : int or list of int
          The chosen item, or a ranking over ``items``.
      """
      probs = probabilities(items, params)
      if rank:
          return np.random.choice(items, size=len(items), replace=False, p=probs)
      else:
          return np.random.choice(items, p=probs)