def E_logpX(self, SS):
    D = self.D
    lpX = np.zeros(self.K)
    for k in range(self.K):
      if SS.N[k] < 1e-9:
        continue
      ElogLam_N = self.comp[k].E_sumlogLam() * SS.N[k]
      ELam_S2 = np.inner(self.comp[k].E_Lam(), SS.xx[k])
      ELamMu_S = np.inner(self.comp[k].E_LamMu(), SS.x[k])
      ELamMu2_N = np.sum(self.comp[k].E_LamMu2()) * SS.N[k]
      lpX[k] = ElogLam_N - (ELam_S2 - 2*ELamMu_S + ELamMu2_N)
    logNormC = -0.5 * D * np.sum(SS.N) * LOGTWOPI
    return logNormC + 0.5 * np.sum(lpX)
E_q [ log p(X | Z, Phi) ]
dataset/ETHPy150Open daeilkim/refinery/refinery/bnpy/bnpy-dev/bnpy/obsmodel/DiagGaussObsModel.py/DiagGaussObsModel.E_logpX