class_docstr: A proposal using differential evolution.
  
  This `Differential evolution proposal
  <http://www.stat.columbia.edu/~gelman/stuff_for_blog/cajo.pdf>`_ is
  implemented following `Nelson et al. (2013)
  <https://doi.org/10.1088/0067-0049/210/1/11>`_.
  
  Args:
      sigma (float): The standard deviation of the Gaussian used to stretch
          the proposal vector.
      gamma0 (Optional[float]): The mean stretch factor for the proposal
          vector. By default, it is :math:`2.38 / \sqrt{2\,\mathrm{ndim}}`
          as recommended by the two references.
code: def setup(self, coords):
      self.g0 = self.gamma0
      if self.g0 is None:
          # Pure MAGIC:
          ndim = coords.shape[1]
          self.g0 = 2.38 / np.sqrt(2 * ndim)
  
file_path: emcee/src/emcee/moves/de.py
imports: from functools import lru_cache
  import numpy
  from .red_blue import RedBlueMove
label_desc: Use image node_id 2 for calling the DEMove obj's underlying member method code with example usage: obj.setup(coords) without return types