def Vr(self, bosons, T, bosons_ring):
     """
     The ring diagram (Daisy resummation)
     """
     T2 = (T*T)[..., np.newaxis] + 1e-100
          # the 1e-100 is to avoid divide by zero errors
     T4 = T*T*T*T
     m2, nb, c = bosons
     ring, nbring = bosons_ring
     y =np.sum(nbring*Jb((m2+ring)/T2), axis=-1) - np.sum(nbring*Jb(m2/T2), axis=-1)                
     return y*T4/(2*np.pi*np.pi)
    def V1T(self, bosons, fermions, T, include_radiation=False):
        """
        The one-loop finite-temperature potential.

        This is generally not called directly, but is instead used by
        :func:`Vtot`.

        Note
        ----
        The `Jf` and `Jb` functions used here are
        aliases for :func:`finiteT.Jf_spline` and :func:`finiteT.Jb_spline`,
        each of which accept mass over temperature *squared* as inputs
        (this allows for negative mass-squared values, which I take to be the
        real part of the defining integrals.

        .. todo::
            Implement new versions of Jf and Jb that return zero when m=0, only
            adding in the field-independent piece later if
            ``include_radiation == True``. This should reduce floating point
            errors when taking derivatives at very high temperature, where
            the field-independent contribution is much larger than the
            field-dependent contribution.
        """
        # This does not need to be overridden.
        T2 = (T * T)[..., np.newaxis] + 1e-100
        # the 1e-100 is to avoid divide by zero errors
        T4 = T * T * T * T
        m2, nb, c = bosons
        y = np.sum(nb * Jb(m2 / T2), axis=-1)
        m2, nf = fermions
        y += np.sum(nf * Jf(m2 / T2), axis=-1)
        if include_radiation:
            print("included")
            print(self.num_boson_dof)
            if self.num_boson_dof is not None:
                nb = self.num_boson_dof - np.sum(nb)
                y -= nb * np.pi**4 / 45.
            if self.num_fermion_dof is not None:
                nf = self.num_fermion_dof - np.sum(nf)
                y -= nf * 7 * np.pi**4 / 360.
        return y * T4 / (2 * np.pi * np.pi)