code: def dp(self, y, f, var):
          r
          var = self._check_param(var)
          y, f = np.broadcast_arrays(y, f)
          ivar = 1. / var
          return 0.5 * (((y - f) * ivar)**2 - ivar)
docs: r"""
          Derivative of Gaussian log likelihood w.r.t.\ the variance
          :math:`\sigma^2`.
  
          Parameters
          ----------
          y: ndarray
              array of 0, 1 valued integers of targets
          f: ndarray
              latent function from the GLM prior (:math:`\mathbf{f} =
              \boldsymbol\Phi \mathbf{w}`)
          var: float, ndarray, optional
              The variance of the distribution, if not input, the initial value
              of variance is used.
  
          Returns
          -------
          dp: float
              the derivative
              :math:`\partial \log p(y|f, \sigma^2)/ \partial \sigma^2`
              where :math:`sigma^2` is the variance.