2 typedef uint32_t AdjWord;
6 static AdjWord adjmatrix[n];
10 static AdjWord adjmatrix_best[n];
12 static void prep(void) {
13 adjall = ~((~(AdjWord)0) << m);
16 static int count_set_adj_bits(AdjWord w) {
17 for (int j=0, total=0; j<m; j++)
18 total += !!(w & ((AdjWord)1 << j));
22 static void optimise(void) {
24 printf("%"PRADJ" ", adjmatrix[i]);
25 double maxminsize = (double)m / count_set_adj_bits(adjmatrix[i]);
26 if (maxminsize < best) {
27 printf(" too fine\n");
35 static void iterate_recurse(int i, AdjWord min) {
40 for (adjmatrix[i] = min;
43 iterate_recurse(i+1, adjmatrix[i]);
47 static void iterate(void) {
48 iterate_recurse(0, 1);
51 int main(int argc, char **argv) {
56 if (ferror(stdout) || fclose(stdout)) { perror("stdout"); exit(-1); }