chiark
/
gitweb
/
~ianmdlvl
/
matchsticks-search.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
733c8e9
)
output improvements
author
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Fri, 7 Mar 2014 16:08:58 +0000
(16:08 +0000)
committer
Ian Jackson
<ijackson@chiark.greenend.org.uk>
Fri, 7 Mar 2014 16:08:58 +0000
(16:08 +0000)
main.c
patch
|
blob
|
history
diff --git
a/main.c
b/main.c
index 86b5d7329b49aae0bd85b1ac527d9534c58e9d4a..f8348cbf4860cc6fb05a235a0ba0d256580c9ce3 100644
(file)
--- a/
main.c
+++ b/
main.c
@@
-27,6
+27,7
@@
static AdjWord *xalloc_adjmatrix(void) {
static void prep(void) {
adjall = ~((~(AdjWord)0) << m);
adjmatrix = xalloc_adjmatrix();
static void prep(void) {
adjall = ~((~(AdjWord)0) << m);
adjmatrix = xalloc_adjmatrix();
+ glp_term_out(GLP_OFF);
}
static AdjWord one_adj_bit(int bitnum) {
}
static AdjWord one_adj_bit(int bitnum) {
@@
-41,6
+42,7
@@
static int count_set_adj_bits(AdjWord w) {
}
static void optimise(void) {
}
static void optimise(void) {
+ glp_prob *prob = 0;
int i, j, totalfrags;
for (i=0, totalfrags=0; i<n; i++) {
int i, j, totalfrags;
for (i=0, totalfrags=0; i<n; i++) {
@@
-49,8
+51,8
@@
static void optimise(void) {
printf("%"PRADJ" ", adjmatrix[i]);
double maxminsize = (double)m / frags;
if (maxminsize < best) {
printf("%"PRADJ" ", adjmatrix[i]);
double maxminsize = (double)m / frags;
if (maxminsize < best) {
- printf(" too fine
\n
");
-
return
;
+ printf(" too fine
");
+
goto out
;
}
}
}
}
@@
-78,12
+80,13
@@
static void optimise(void) {
* which we build up as we go.
*/
* which we build up as we go.
*/
-
glp_prob *
prob = glp_create_prob();
+ prob = glp_create_prob();
int Y_totals_i = glp_add_rows(prob, n);
int Y_totals_j = glp_add_rows(prob, m);
int X_minimum = glp_add_cols(prob, 1);
int Y_totals_i = glp_add_rows(prob, n);
int Y_totals_j = glp_add_rows(prob, m);
int X_minimum = glp_add_cols(prob, 1);
+ {
int next_matrix_entry = 1; /* wtf GLPK! */
int matrix_entries_size = next_matrix_entry + n + m + totalfrags*2;
double matrix_entries[matrix_entries_size];
int next_matrix_entry = 1; /* wtf GLPK! */
int matrix_entries_size = next_matrix_entry + n + m + totalfrags*2;
double matrix_entries[matrix_entries_size];
@@
-147,11
+150,11
@@
static void optimise(void) {
printf(" simplex=%d", r);
#define OKERR(e) \
printf(" simplex=%d", r);
#define OKERR(e) \
- case e: printf(" " #e
"\n"
); goto out;
+ case e: printf(" " #e ); goto out;
#define BADERR(e) \
#define BADERR(e) \
- case e: printf(" " #e " CRASHING
\n
"); exit(-1);
+ case e: printf(" " #e " CRASHING"); exit(-1);
#define DEFAULT \
#define DEFAULT \
- default: printf(" ! CRASHING
\n
"); exit(-1);
+ default: printf(" ! CRASHING"); exit(-1);
switch (r) {
OKERR(GLP_ESING);
switch (r) {
OKERR(GLP_ESING);
@@
-184,10
+187,8
@@
static void optimise(void) {
double got = glp_get_obj_val(prob);
printf(" %g", got);
double got = glp_get_obj_val(prob);
printf(" %g", got);
- if (got <= best) {
- printf("\n");
+ if (got <= best)
goto out;
goto out;
- }
best = got;
best = got;
@@
-198,11
+199,14
@@
static void optimise(void) {
best_adjmatrix = xalloc_adjmatrix();
memcpy(best_adjmatrix, adjmatrix, sizeof(*adjmatrix)*n);
best_adjmatrix = xalloc_adjmatrix();
memcpy(best_adjmatrix, adjmatrix, sizeof(*adjmatrix)*n);
- printf("
<--
\n");
+ printf("
BEST
\n");
return;
return;
+ }
out:
out:
- glp_delete_prob(prob);
+ if (prob)
+ glp_delete_prob(prob);
+ printf("\r");
}
static void iterate_recurse(int i, AdjWord min) {
}
static void iterate_recurse(int i, AdjWord min) {
@@
-228,6
+232,7
@@
int main(int argc, char **argv) {
m = atoi(argv[2]);
prep();
iterate();
m = atoi(argv[2]);
prep();
iterate();
+ printf("\n");
if (ferror(stdout) || fclose(stdout)) { perror("stdout"); exit(-1); }
return 0;
}
if (ferror(stdout) || fclose(stdout)) { perror("stdout"); exit(-1); }
return 0;
}