X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.main.git;a=blobdiff_plain;f=yarrg%2Frscommon.h;h=5cbf5b77b0cf84cdce30526713169ecf2cca94a7;hp=7c70ca4d800a647dbc2d322f8e9fdb59cc305480;hb=d0f65e91f071ebb0fbc6791ee168e2be5ba8e5ae;hpb=2fedbd29b44d71058d0bdf0182028457b21cabce diff --git a/yarrg/rscommon.h b/yarrg/rscommon.h index 7c70ca4..5cbf5b7 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) @@ -100,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[finalarch][midarch]-> */); extern double max_mass, max_volu, max_capi; extern double distance_loss_factor_per_league; @@ -111,5 +118,28 @@ extern int max_dist; extern int islandtablesz; +extern int narches; +extern char **archnames; +extern int *islandid2arch; + + +#define NEW(ptr) ((ptr)= mmalloc(sizeof(*ptr))) + +#define MCALLOC(array, count) ((array)= mcalloc(sizeof(*(array)) * (count))) + +#define MCALLOC_INITEACH(array, count, init_this) ({ \ + MCALLOC((array), (count)); \ + int initi; \ + typeof(&(array)[0]) this; \ + for (initi=0, this=(array); initi<(count); initi++, this++) { \ + init_this; \ + } \ + }) + + +#define ONDEMAND(pointer_lvalue, calloc_size_count) \ + ((pointer_lvalue) ? : \ + ((pointer_lvalue) = mcalloc(sizeof(*(pointer_lvalue)) * calloc_size_count))) + #endif /*RSCOMMON_H*/