/****************************************************************************** * * * COMPUTE MERTENS FUNCTION * * 12/07/15 (dkc) * * * ******************************************************************************/ #include <math.h> long long newlocl(unsigned long long x, unsigned int u, char *mob, int *M) { char temp; unsigned int j,k,m; unsigned long long xom; long long sumb; int i; sumb=0; for (m=1; m<=u; m++) { temp=mob[m-1]; if (temp==0) continue; j=u/m+1; xom=x/m; k=(unsigned int)sqrt((double)xom); #pragma omp parallel for reduction (+:sumb) for (i=(int)j; i<=(int)k; i++) { sumb=sumb+(long long)(M[xom/(unsigned int)i-1]*temp); } } return(sumb); }