DF(search) \
DF(filter) \
DF(check) \
+ DF(tableau) \
DF(lp)
#define debug debug_file
CTR(routes_stratelim) \
CTR(routes_valued) \
CTR(routes_wrongfinal) \
- CTR(newbests_strat_absolute) \
- CTR(newbests_strat_perleague) \
+ CTRA(newbests_strat,2) \
CTR(subroute_tails_valued) \
CTR(subroutes_valued) \
CTR(subroutes_nonempty)
-#define CTR(x) extern int ctr_##x;
+#define CTR(x) extern int ctr_##x;
+#define CTRA(x,n) extern int ctr_##x[n];
COUNTER_LIST
#undef CTR
+#undef CTRA
#define SQL_MUST( call ) ({ \
/* `call' is an expression returning result, using const char *sqe; \
extern sqlite3 *db;
-void setup_sql(void);
+void setup_sql(const char *database);
typedef struct {
double value_route(int nislands, const int *islands, int exclude_arbitrage);
void setup_value(void);
+#define AP 2 /* 0=absolute, 1=perleague */
+#define A 0
+#define P 1
+
typedef struct {
- double absolute, perleague;
- int absolute_ports[MAX_ROUTELEN], perleague_ports[MAX_ROUTELEN];
+ double value[AP];
+ int ports[AP][MAX_ROUTELEN];
} PotentialResult;
void setup_search(void);
PotentialResult *pr;
} HighScoreEntry;
-extern int nhighscores_absolute, nhighscores_perleague;
-extern HighScoreEntry *highscores_absolute;
-extern HighScoreEntry *highscores_perleague;
+extern int nhighscores[AP];
+extern HighScoreEntry *highscores[AP];
#define ONDEMAND(pointer_lvalue, calloc_size_count) \