code: def logpdf_link(self, link_f, y, Y_metadata=None):
          
          #alpha = self.gp_link.transf(gp)*self.beta
          #return (1. - alpha)*np.log(obs) + self.beta*obs - alpha * np.log(self.beta) + np.log(special.gamma(alpha))
          alpha = link_f*self.beta
          log_objective = alpha*np.log(self.beta) - np.log(special.gamma(alpha)) + (alpha - 1)*np.log(y) - self.beta*y
          return log_objective
docs: Log Likelihood Function given link(f)
  
          .. math::
              \\ln p(y_{i}|\lambda(f_{i})) = \\alpha_{i}\\log \\beta - \\log \\Gamma(\\alpha_{i}) + (\\alpha_{i} - 1)\\log y_{i} - \\beta y_{i}\\\\
              \\alpha_{i} = \\beta y_{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 poisson distribution
          :returns: likelihood evaluated for this point
          :rtype: float