def _epfitcZ(self,d,P,R,nn,gg,ttau,tnu,d0,R0,P0,y,likfunc,m,inffunc):
        '''
        Compute the marginal likelihood approximation
        effort is O(n*nu^2) provided that nu<n
        '''
        T = np.dot(np.dot(R,R0),P)              # temporary variable
        diag_sigma = d + np.array([(T*T).sum(axis=0)]).T
        mu = nn + np.dot(P.T,gg)                # post moments O(n*nu^2)
        tau_n = old_div(1.,diag_sigma)-ttau              # compute the log marginal likelihood
        nu_n  = old_div(mu,diag_sigma) - tnu + m*tau_n   # vectors of cavity parameters
        lZ = likfunc.evaluate(y, old_div(nu_n,tau_n), old_div(1,tau_n), inffunc, None, 1)
        nu = gg.shape[0]
        U = np.dot(R0,P0).T*np.tile(old_div(1,np.sqrt(d0+old_div(1,ttau))),(1,nu))
        #L = np.linalg.cholesky(np.eye(nu)+np.dot(U.T,U)).T
        L = jitchol(np.eye(nu)+np.dot(U.T,U)).T
        ld = 2.*np.log(np.diag(L)).sum() + (np.log(d0+old_div(1,ttau))).sum() + (np.log(ttau)).sum()
        t = np.dot(T,tnu); tnu_Sigma_tnu = np.dot(tnu.T,(d*tnu)) + np.dot(t.T,t)
        nlZ = old_div(ld,2.) - lZ.sum() -old_div(tnu_Sigma_tnu,2.) \
            -old_div(np.dot((nu_n-m*tau_n).T,(old_div((tau_n*(nu_n-m*tau_n)/ttau-2.*tnu),(ttau+tau_n)))),2.) \
            + old_div((old_div(tnu**2,(tau_n+ttau))).sum(),2.) - old_div((np.log(1+old_div(ttau,tau_n))).sum(),2.)
        return nlZ,nu_n,tau_n
dataset/ETHPy150Open marionmari/pyGPs/pyGPs/Core/inf.py/Inference._epfitcZ/swapped operands of `/`