Remove debug traces, inline matrix index function
[morpheus.git] / pkg / src / functions.c
index f251eb3..1c7295a 100644 (file)
@@ -1,13 +1,13 @@
 #include <stdlib.h>
 
 // Index matrix (by columns)
-int mi(int i, int j, int d1, int d2)
+int inline mi(int i, int j, int d1, int d2)
 {
   return j*d1 + i;
 }
 
 // Index 3-tensor (by columns, matrices ordered by last dim)
-int ti(int i, int j, int k, int d1, int d2, int d3)
+int inline ti(int i, int j, int k, int d1, int d2, int d3)
 {
   return k*d1*d2 + j*d1 + i;
 }
@@ -54,11 +54,9 @@ void Moments_M3(double* X, double* Y, int* pn, int* pd, double* M3)
   }
 }
 
-#include <stdio.h>
-
 // W = 1/N sum( t(g(Zi,theta)) g(Zi,theta) )
 // with g(Zi, theta) = i-th contribution to all moments (size dim) - real moments
-void Compute_Omega(double* X, double* Y, double* M, int* pn, int* pd, double* W)
+void Compute_Omega(double* X, int* Y, double* M, int* pn, int* pd, double* W)
 {
   int n=*pn, d=*pd;
   int dim = d + d*d + d*d*d;
@@ -99,8 +97,6 @@ void Compute_Omega(double* X, double* Y, double* M, int* pn, int* pd, double* W)
         g[j] -= Y[i] * X[mi(i,idx1,n,d)];
       g[j] += Y[i] * X[mi(i,idx1,n,d)]*X[mi(i,idx2,n,d)]*X[mi(i,idx3,n,d)] - M[j];
     }
-
-    // TODO: 1/n des gj empirique doit tendre vers 0
     // Add 1/n t(gi) %*% gi to W
     for (int j=0; j<dim; j++)
     {