code: def pdf_link(self, inv_link_f, y, Y_metadata=None):
          
          assert np.atleast_1d(inv_link_f).shape == np.atleast_1d(y).shape
          e = y - inv_link_f
          #Careful gamma(big_number) is infinity!
          objective = ((np.exp(gammaln((self.v + 1)*0.5) - gammaln(self.v * 0.5))
                       / (np.sqrt(self.v * np.pi * self.sigma2)))
                       * ((1 + (1./float(self.v))*((e**2)/float(self.sigma2)))**(-0.5*(self.v + 1)))
                      )
          return np.prod(objective)
docs: Likelihood function given link(f)
  
          .. math::
              p(y_{i}|\\lambda(f_{i})) = \\frac{\\Gamma\\left(\\frac{v+1}{2}\\right)}{\\Gamma\\left(\\frac{v}{2}\\right)\\sqrt{v\\pi\\sigma^{2}}}\\left(1 + \\frac{1}{v}\\left(\\frac{(y_{i} - \\lambda(f_{i}))^{2}}{\\sigma^{2}}\\right)\\right)^{\\frac{-v+1}{2}}
  
          :param inv_link_f: latent variables link(f)
          :type inv_link_f: Nx1 array
          :param y: data
          :type y: Nx1 array
          :param Y_metadata: Y_metadata which is not used in student t distribution
          :returns: likelihood evaluated for this point
          :rtype: float