chiark
/
gitweb
/
~yarrgweb
/
ypp-sc-tools.main.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
routesearch: make #define debug_flags work again, but still not faster
[ypp-sc-tools.main.git]
/
yarrg
/
rscommon.h
diff --git
a/yarrg/rscommon.h
b/yarrg/rscommon.h
index b4e780362b5286b5a3fbe849f552f16ee9fd290a..1e6679db087035d3a8e7e9da964a94fa94f1ef45 100644
(file)
--- a/
yarrg/rscommon.h
+++ b/
yarrg/rscommon.h
@@
-7,11
+7,15
@@
DF(sql) \
DF(sql2) \
DF(value) \
DF(sql) \
DF(sql2) \
DF(value) \
+ DF(value2) \
DF(search) \
DF(filter) \
DF(check) \
DF(search) \
DF(filter) \
DF(check) \
+ DF(tableau) \
DF(lp)
DF(lp)
+//#define debug_flags 0
+
#define debug debug_file
#include "common.h"
#define debug debug_file
#include "common.h"
@@
-20,6
+24,8
@@
extern FILE *debug_file;
#define DEBUG_DEV "/dev/stdout" /* just for glpk */
#define DEBUG_DEV "/dev/stdout" /* just for glpk */
+#define GRANUS 3
+
#define COUNTER_LIST \
CTR(commodities_loaded) \
CTR(trades_loaded) \
#define COUNTER_LIST \
CTR(commodities_loaded) \
CTR(trades_loaded) \
@@
-29,17
+35,18
@@
extern FILE *debug_file;
CTR(routes_considered) \
CTR(routes_wrongfinalelim) \
CTR(routes_quickelim) \
CTR(routes_considered) \
CTR(routes_wrongfinalelim) \
CTR(routes_quickelim) \
- CTR(routes_
stratelim)
\
+ CTR(routes_
bucketelim)
\
CTR(routes_valued) \
CTR(routes_wrongfinal) \
CTR(routes_valued) \
CTR(routes_wrongfinal) \
- CTR(newbests_strat_absolute) \
- CTR(newbests_strat_perleague) \
+ CTRA(newbests_granu,GRANUS*2) \
CTR(subroute_tails_valued) \
CTR(subroutes_valued) \
CTR(subroutes_nonempty)
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
COUNTER_LIST
#undef CTR
+#undef CTRA
#define SQL_MUST( call ) ({ \
/* `call' is an expression returning result, using const char *sqe; \
#define SQL_MUST( call ) ({ \
/* `call' is an expression returning result, using const char *sqe; \
@@
-96,7
+103,7
@@
void sql_bind(sqlite3_stmt *ss, int index, int value,
extern sqlite3 *db;
extern sqlite3 *db;
-void setup_sql(
void
);
+void setup_sql(
const char *database
);
typedef struct {
typedef struct {
@@
-110,19
+117,27
@@
IslandPair *ipair_get_maybe(int si, int di);
double value_route(int nislands, const int *islands, int exclude_arbitrage);
void setup_value(void);
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 {
typedef struct {
- double absolute, perleague;
- int absolute_ports[MAX_ROUTELEN], perleague_ports[MAX_ROUTELEN];
-} PotentialResult;
+ double value[AP];
+ int ports[MAX_ROUTELEN];
+} OnePotentialResult;
+
+typedef struct {
+ OnePotentialResult prs[AP];
+} Bucket;
void setup_search(void);
void search(int start_isle, int final_isle /* -1 means any */,
void setup_search(void);
void search(int start_isle, int final_isle /* -1 means any */,
- PotentialResult ****strat_base_io
- /*
strat_base[finalarch][midarch
]-> */);
+ Bucket ****buckets_base_io[GRANUS]
+ /*
bucket_base[granui][finalthing][midthing
]-> */);
extern double max_mass, max_volu, max_capi;
extern double distance_loss_factor_per_league;
extern double max_mass, max_volu, max_capi;
extern double distance_loss_factor_per_league;
-extern int max_dist;
+extern int max_dist
, min_trade_maxprofit
;
#define LOSS_FACTOR_PER_DELAY_SLOT (1-1e-8)
#define LOSS_FACTOR_PER_DELAY_SLOT (1-1e-8)
@@
-132,6
+147,8
@@
extern int narches;
extern char **archnames;
extern int *islandid2arch;
extern char **archnames;
extern int *islandid2arch;
+extern int granusz_fin[GRANUS], granusz_mid[GRANUS];
+
extern FILE *output;
extern FILE *output;
@@
-152,12
+169,12
@@
extern FILE *output;
typedef struct {
double value;
typedef struct {
double value;
-
PotentialResult *pr
;
+
Bucket *bucket
;
} HighScoreEntry;
} HighScoreEntry;
-extern int
nhighscores_absolute, nhighscores_perleague
;
-extern
HighScoreEntry *highscores_absolute
;
-extern HighScoreEntry *highscores
_perleague
;
+extern int
granus
;
+extern
int nhighscores[GRANUS][AP]
;
+extern HighScoreEntry *highscores
[GRANUS][AP]
;
#define ONDEMAND(pointer_lvalue, calloc_size_count) \
#define ONDEMAND(pointer_lvalue, calloc_size_count) \