X-Git-Url: https://git.auder.net/?p=morpheus.git;a=blobdiff_plain;f=pkg%2Fsrc%2Ffunctions.c;h=79deff46c702b718b4b9bebeb8d24720d98a3bc2;hp=94ea12dd5e52036f45b6792160944d851329a874;hb=a27d53c381a88e0f8c8788a772575e35464294ef;hpb=5af71d43f3f2dba21c6667939fcff88923af3b7b diff --git a/pkg/src/functions.c b/pkg/src/functions.c index 94ea12d..79deff4 100644 --- a/pkg/src/functions.c +++ b/pkg/src/functions.c @@ -64,8 +64,9 @@ void Compute_Omega(double* X, int* Y, double* M, int* pnc, int* pn, int* pd, dou W[j*dim+k] = 0.0; } double* g = (double*)malloc(dim*sizeof(double)); - omp_set_num_threads(nc >= 1 ? nc : omp_get_num_procs()); - #pragma omp parallel for + // TODO: stabilize this (for now, random result) +// omp_set_num_threads(nc >= 1 ? nc : omp_get_num_procs()); +// #pragma omp parallel for for (int i=0; i=0; j--) + for (int j=0; j=0; k--) + #pragma GCC unroll 32 + for (int k=j; k>=0; k--) W[baseIdx+k] += gj * g[k]; } } // Normalize W: x 1/n for (int j=0; j j + for (int j=0; j