fix indexations: test.EMGLLF without errors (but R <> C)
[valse.git] / src / sources / EMGLLF.c
index 087116b..87fd199 100644 (file)
@@ -83,7 +83,7 @@ void EMGLLF_core(
                        {
                                //X2(i,:,r)=X(i,:).*sqrt(gam(i,r));
                                for (int u=0; u<p; u++)
-                                       X2[ai(i,u,r,n,m,k)] = sqrt(gam[mi(i,r,n,k)]) * X[mi(i,u,n,p)];
+                                       X2[ai(i,u,r,n,p,k)] = sqrt(gam[mi(i,r,n,k)]) * X[mi(i,u,n,p)];
                        }
                        for (int mm=0; mm<m; mm++)
                        {
@@ -93,7 +93,7 @@ void EMGLLF_core(
                                        Real dotProduct = 0.;
                                        for (int v=0; v<n; v++)
                                                dotProduct += X2[ai(v,u,r,n,m,k)] * Y2[ai(v,mm,r,n,m,k)];
-                                       ps2[ai(u,mm,r,n,m,k)] = dotProduct;
+                                       ps2[ai(u,mm,r,p,m,k)] = dotProduct;
                                }
                        }
                        for (int j=0; j<p; j++)
@@ -209,7 +209,7 @@ void EMGLLF_core(
                                        //< X2(i,:,r) , phi(:,mm,r) >
                                        Real dotProduct = 0.0;
                                        for (int u=0; u<p; u++)
-                                               dotProduct += X2[ai(i,u,r,n,p,k)] * phi[ai(u,mm,r,n,m,k)];
+                                               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)*dot(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)];
@@ -225,7 +225,7 @@ void EMGLLF_core(
                                        sumNy21 += nY21[ai(u,mm,r,n,m,k)];
                                nY2[mi(mm,r,m,k)] = sumNy21;
                                //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,k,m,m,k)] = ( ps[mi(mm,r,m,k)] + sqrt( ps[mi(mm,r,m,k)]*ps[mi(mm,r,m,k)]
+                               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)]);
                        }
                }