/*CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC C C C COMPUTE GAINS (due to effectively setting M(3), M(4) or M(5) to 0 in the C C sum of sgn(M(x/i))i) C C 12/21/14 (dkc) C C C CCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCCC*/ #include <stdio.h> #include <math.h> unsigned int maxn=10250; unsigned int flag=0; // 0 for s(x), 1 for t(x), 2 for u(x), 3 for v(x) // t(x) is the effective increase due to setting M(3) to 0 // u(x) is the effective increase due to setting M(4) to 0 // v(x) is the effective increase due to setting M(5) to 0 void main() { int s[6]={1,0,1,1,1,1}; int t[12]={1,0,0,1,1,0,1,1,1,1,1,1}; int u[20]={1,0,0,0,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,1}; int v[30]={1,0,0,0,0,1,1,0,0,0,1,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1}; int k; unsigned int i,j,w,size; FILE *Outfp; Outfp = fopen("out20.dat","w"); size=(flag+2)*(flag+3); for (i=0; i<flag; i++) { printf(" %d\n",0); fprintf(Outfp," %d\n",0); } k=1; // "normalization" variable (for comparisons with sum of n(x/i)-m(x/i), etc.) j=0; // wrap-around variable (for input arrays) w=0; // wrap-around variable (for normalization variable) for (i=(flag+1); i<maxn; i++) { if (flag==0) { printf(" %d\n",s[j]); fprintf(Outfp," %d\n",k-s[j]); // "normalized value" s[j]=s[j]+1; } else { if (flag==1) { printf(" %d\n",t[j]); fprintf(Outfp," %d\n",k-t[j]); // "normalized value" t[j]=t[j]+1; } else { if (flag==2) { printf(" %d\n",u[j]); fprintf(Outfp," %d\n",k-u[j]); // "normalized value" u[j]=u[j]+1; } else { printf(" %d\n",v[j]); fprintf(Outfp," %d\n",k-v[j]); // "normalized value" v[j]=v[j]+1; } } } j=j+1; if (j==size) j=0; w=w+1; if (w==(flag+3)) { k=k+1; w=0; } } fclose(Outfp); return; }