Add a few indications for debug
[valse.git] / src / test / generate_test_data / helpers / EMGLLF.R
index 7c80081..7100f29 100644 (file)
@@ -72,7 +72,8 @@ EMGLLF = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,lambda,X,Y,tau)
       pi2AllPositive = all(pi2 >= 0)
       kk = kk+1
     }
-    
+
+#if (ite==2) browser()
     #t[m] la plus grande valeur dans la grille O.1^k tel que ce soit décroissante ou constante
     while( kk < 1000 && -a/n + lambda * sum(pi^gamma * b) <
                        -sum(gam2 * log(pi2))/n + lambda * sum(pi2^gamma * b) )
@@ -95,6 +96,8 @@ EMGLLF = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,lambda,X,Y,tau)
         }
         ps[mm,r] = sum(ps1[,mm,r])
         nY2[mm,r] = sum(nY21[,mm,r])
+
+#TODO: debug rho computation
         rho[mm,mm,r] = (ps[mm,r]+sqrt(ps[mm,r]^2+4*nY2[mm,r]*gam2[r])) / (2*nY2[mm,r])
       }
     }
@@ -135,7 +138,7 @@ EMGLLF = function(phiInit,rhoInit,piInit,gamInit,mini,maxi,gamma,lambda,X,Y,tau)
                        {
                                #FIXME: numerical problems, because 0 < det(Rho[,,r] < EPS; what to do ?!
         #       consequence: error in while() at line 77
-                               Gam[i,r] = pi[r] * exp(-0.5*sqNorm2[r] + shift) * det(rho[,,r])
+                               Gam[i,r] = pi[r] * exp(-0.5*sqNorm2[r] + shift) #* det(rho[,,r])
         sumLLF1 = sumLLF1 + Gam[i,r] / (2*base::pi)^(m/2)
       }
       sumLogLLF2 = sumLogLLF2 + log(sumLLF1)