X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=yarrg%2Frscommon.h;h=873ff30810f708bf7282ebcdcc0f21c828dcb3b1;hp=965b6db7205413286a3ba65a2cf7966809a915cb;hb=cf1aa28767bcecb39ff18b2ee80952ed38f40e0d;hpb=8fecbed75b67d8e1ebbb84ac2ad7a2173e5e5c7c;ds=sidebyside diff --git a/yarrg/rscommon.h b/yarrg/rscommon.h index 965b6db..873ff30 100644 --- a/yarrg/rscommon.h +++ b/yarrg/rscommon.h @@ -8,6 +8,7 @@ DF(sql2) \ DF(value) \ DF(search) \ + DF(filter) \ DF(check) \ DF(lp) @@ -17,6 +18,20 @@ #include "common.h" +#define COUNTER_LIST \ + CTR(commodities_loaded) \ + CTR(trades_loaded) \ + CTR(quantities_loaded) \ + CTR(routes_considered) \ + CTR(routes_eliminated) \ + CTR(routes_valued) \ + CTR(subroute_tails_valued) \ + CTR(subroutes_valued) \ + CTR(subroutes_nonempty) +#define CTR(x) extern int ctr_##x; + COUNTER_LIST +#undef CTR + #define SQL_MUST( call ) ({ \ /* `call' is an expression returning result, using const char *sqe; \ * chk1 and chk2 are blocks using sqe and int sqr; */ \ @@ -86,8 +101,14 @@ IslandPair *ipair_get_maybe(int si, int di); double value_route(int nislands, const int *islands, int exclude_arbitrage); void setup_value(void); +typedef struct { + double absolute, perleague; + int absolute_ports[MAX_ROUTELEN], perleague_ports[MAX_ROUTELEN]; +} PotentialResult; + void setup_search(void); -void search(int start_isle); +void search(int start_isle, PotentialResult ****strat_base_io + /* strat_base[finalisle][midisle]-> */); extern double max_mass, max_volu, max_capi; extern double distance_loss_factor_per_league; @@ -98,4 +119,9 @@ extern int max_dist; extern int islandtablesz; +#define ONDEMAND(pointer_lvalue, calloc_size_count) \ + ((pointer_lvalue) ? : \ + ((pointer_lvalue) = mcalloc(sizeof(*(pointer_lvalue)) * calloc_size_count))) + + #endif /*RSCOMMON_H*/