class_docstr: Implementation of Walker's alias method.
  
  This method generates a random sample from given probabilities
  :math:`p_1, \dots, p_n` in :math:`O(1)` time.
  It is more efficient than :func:`~numpy.random.choice`.
  This class works on both CPU and GPU.
  
  Args:
      probs (float list): Probabilities of entries. They are normalized with
                          `sum(probs)`.
  
  See: `Wikipedia article <https://en.wikipedia.org/wiki/Alias_method>`_
code: def device_resident_accept(self, visitor):
      super(WalkerAlias, self).device_resident_accept(visitor)
      self.threshold = visitor.visit_array(self.threshold)
      self.values = visitor.visit_array(self.values)
  
file_path: chainer/chainer/utils/walker_alias.py
imports: import numpy
  import chainer
  from chainer.backends import cuda
  from chainer import device_resident
label_desc: Use image node_id 3 for calling the WalkerAlias obj's underlying member method code with example usage: obj.device_resident_accept(visitor) without return types