From: Ian Jackson Date: Fri, 7 Mar 2014 13:29:02 +0000 (+0000) Subject: wip, builds, before glpk X-Git-Tag: v1~23 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=matchsticks-search.git;a=commitdiff_plain;h=7ce4b64c6ec4aca492f00d612674b97fc36e0672 wip, builds, before glpk --- diff --git a/Makefile b/Makefile index af97bd2..fa230a6 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,5 @@ CFLAGS += -Wall -Wwrite-strings -Wstrict-prototypes LC_CTYPE=C +LDLIBS = -lpub all: main diff --git a/main.c b/main.c index 0c694c8..fa5c7db 100644 --- a/main.c +++ b/main.c @@ -1,25 +1,34 @@ +#include +#include +#include +#include + +#include + typedef uint32_t AdjWord; -#define PRADJ PRIx32 +#define PRADJ "08"PRIx32 static int n, m; -static AdjWord adjmatrix[n]; +static AdjWord *adjmatrix; static AdjWord adjall; static double best; -static AdjWord adjmatrix_best[n]; static void prep(void) { adjall = ~((~(AdjWord)0) << m); + adjmatrix = xmalloc(sizeof(*adjmatrix)*n); } static int count_set_adj_bits(AdjWord w) { - for (int j=0, total=0; j n) { + if (i >= n) { optimise(); return; } @@ -41,6 +50,8 @@ static void iterate_recurse(int i, AdjWord min) { ; adjmatrix[i]++) { iterate_recurse(i+1, adjmatrix[i]); + if (adjmatrix[i] == adjall) + return; } }