code: def pdf_link(self, link_f, y, Y_metadata=None):
          
          assert np.atleast_1d(link_f).shape == np.atleast_1d(y).shape
          log_objective = link_f*np.exp(-y*link_f)
          return np.exp(np.sum(np.log(log_objective)))
docs: Likelihood function given link(f)
  
          .. math::
              p(y_{i}|\\lambda(f_{i})) = \\lambda(f_{i})\\exp (-y\\lambda(f_{i}))
  
          :param link_f: latent variables link(f)
          :type link_f: Nx1 array
          :param y: data
          :type y: Nx1 array
          :param Y_metadata: Y_metadata which is not used in exponential distribution
          :returns: likelihood evaluated for this point
          :rtype: float