From 37e11bb06399b30c3a26d5e21a80a921898053d6 Mon Sep 17 00:00:00 2001 From: Benjamin Auder <benjamin.auder@somewhere> Date: Mon, 20 Mar 2017 04:18:01 +0100 Subject: [PATCH] remove also NY21 as in R code --- pkg/src/sources/EMGLLF.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/pkg/src/sources/EMGLLF.c b/pkg/src/sources/EMGLLF.c index e41fe3c..a028919 100644 --- a/pkg/src/sources/EMGLLF.c +++ b/pkg/src/sources/EMGLLF.c @@ -54,7 +54,6 @@ void EMGLLF_core( const Real EPS = 1e-15; // Additional (not at this place, in R file) Real* gam2 = (Real*)malloc(k*sizeof(Real)); - Real* nY21 = (Real*)malloc(n*m*k*sizeof(Real)); Real* sqNorm2 = (Real*)malloc(k*sizeof(Real)); gsl_matrix* matrix = gsl_matrix_alloc(m, m); gsl_permutation* permutation = gsl_permutation_alloc(m); @@ -216,18 +215,17 @@ void EMGLLF_core( dotProduct += X2[ai(i,u,r,n,p,k)] * phi[ai(u,mm,r,p,m,k)]; //ps1[i,mm,r] = Y2[i,mm,r] * sum(X2[i,,r] * phi[,mm,r]) ps1[ai(i,mm,r,n,m,k)] = Y2[ai(i,mm,r,n,m,k)] * dotProduct; - nY21[ai(i,mm,r,n,m,k)] = Y2[ai(i,mm,r,n,m,k)] * Y2[ai(i,mm,r,n,m,k)]; } //ps[mm,r] = sum(ps1[,mm,r]) Real sumPs1 = 0.; for (int u=0; u<n; u++) sumPs1 += ps1[ai(u,mm,r,n,m,k)]; ps[mi(mm,r,m,k)] = sumPs1; - //nY2[mm,r] = sum(nY21[,mm,r]) - Real sumNy21 = 0.; + //nY2[mm,r] = sum(nY2[,mm,r]) + Real sumNy2 = 0.; for (int u=0; u<n; u++) - sumNy21 += nY21[ai(u,mm,r,n,m,k)]; - nY2[mi(mm,r,m,k)] = sumNy21; + sumNy2 += nY2[ai(u,mm,r,n,m,k)]; + nY2[mi(mm,r,m,k)] = sumNy2; //rho[mm,mm,r] = (ps[mm,r]+sqrt(ps[mm,r]^2+4*nY2[mm,r]*(gam2[r]))) / (2*nY2[mm,r]) rho[ai(mm,mm,r,m,m,k)] = ( ps[mi(mm,r,m,k)] + sqrt( ps[mi(mm,r,m,k)]*ps[mi(mm,r,m,k)] + 4*nY2[mi(mm,r,m,k)] * gam2[r] ) ) / (2*nY2[mi(mm,r,m,k)]); @@ -380,6 +378,8 @@ void EMGLLF_core( ite++; } + //TODO: affec = apply(gam, 1,which.max) Ã traduire, et retourner affec aussi. + //free memory free(b); free(gam); @@ -390,7 +390,6 @@ void EMGLLF_core( free(ps); free(nY2); free(ps1); - free(nY21); free(Gram2); free(ps2); gsl_matrix_free(matrix); -- 2.44.0