code: def d3logpdf_dlink3(self, inv_link_f, y, Y_metadata=None):
          
          e = y - inv_link_f
          d3lik_dlink3 = ( -(2*(self.v + 1)*(-e)*(e**2 - 3*self.v*self.sigma2)) /
                         ((e**2 + self.sigma2*self.v)**3)
                      )
          return d3lik_dlink3
docs: Third order derivative log-likelihood function at y given link(f) w.r.t link(f)
  
          .. math::
              \\frac{d^{3} \\ln p(y_{i}|\lambda(f_{i}))}{d^{3}\\lambda(f)} = \\frac{-2(v+1)((y_{i} - \lambda(f_{i}))^3 - 3(y_{i} - \lambda(f_{i})) \\sigma^{2} v))}{((y_{i} - \lambda(f_{i})) + \\sigma^{2} v)^3}
  
          :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: third derivative of likelihood evaluated at points f
          :rtype: Nx1 array