text: #!/usr/bin/env python
  
  
  import emcee
  import numpy as np
  
  np.random.seed(42)
  
  x = np.sort(np.random.uniform(0, 10, 20))
  y = (2 * x + 5) + np.random.randn(x.size)
  
  def lnprior(params):
      return 0.0
  
  def lnlike(params):
      model = params[0] * x + params[1]
      residuals = y - model
      return -np.sum(residuals ** 2)
  
  def lnprob(params):
      lnp = lnprior(params)
      if np.isfinite(lnp):
          return lnp + lnlike(params)
      return -np.inf
  
  
  if __name__ == '__main__':
      print('x: {}'.format(x))
      print('y: {}'.format(y))
      p0 = np.array([0.0, 0.0])
      nwalkers = 4
      pos = np.array([p0 + np.random.randn() * 1E-5 for _ in range(nwalkers)])
  
      print('raw lnprob: {}'.format(lnprob(p0)))
  
      print('pos: {}'.format(pos))
  
      sampler = emcee.EnsembleSampler(nwalkers, p0.size, lnprob)
      print(sampler._get_lnprob(pos))
  