code: def poisson_log_likelihood(x, data):
      
      if np.any(np.less(x, 0)):
          raise ValueError('`x` must be non-negative')
  
      return np.sum(data * np.log(x + 1e-8) - x)
docs: Poisson log-likelihood of ``data`` given noise parametrized by ``x``.
  
      Parameters
      ----------
      x : ``op.domain`` element
          Value to condition the log-likelihood on.
      data : ``op.range`` element
          Data whose log-likelihood given ``x`` shall be calculated.