9 typedef uint32_t AdjWord;
10 #define PRADJ "08"PRIx32
13 static AdjWord *adjmatrix;
14 static AdjWord adjall;
18 static void prep(void) {
19 adjall = ~((~(AdjWord)0) << m);
20 adjmatrix = xmalloc(sizeof(*adjmatrix)*n);
23 static int count_set_adj_bits(AdjWord w) {
25 for (j=0, total=0; j<m; j++)
26 total += !!(w & ((AdjWord)1 << j));
30 static void optimise(void) {
33 printf("%"PRADJ" ", adjmatrix[i]);
34 double maxminsize = (double)m / count_set_adj_bits(adjmatrix[i]);
35 if (maxminsize < best) {
36 printf(" too fine\n");
44 static void iterate_recurse(int i, AdjWord min) {
49 for (adjmatrix[i] = min;
52 iterate_recurse(i+1, adjmatrix[i]);
53 if (adjmatrix[i] == adjall)
58 static void iterate(void) {
59 iterate_recurse(0, 1);
62 int main(int argc, char **argv) {
67 if (ferror(stdout) || fclose(stdout)) { perror("stdout"); exit(-1); }