From: Ian Jackson Date: Wed, 7 Oct 2009 23:58:45 +0000 (+0100) Subject: WIP routesearch; stratify by archipelagoes - much better X-Git-Tag: 5.0^2~64 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=commitdiff_plain;h=39c06791f9cefbedf3438c2a661716142c889bee WIP routesearch; stratify by archipelagoes - much better --- diff --git a/yarrg/rscommon.h b/yarrg/rscommon.h index f0215b2..79f38a4 100644 --- a/yarrg/rscommon.h +++ b/yarrg/rscommon.h @@ -108,7 +108,7 @@ typedef struct { void setup_search(void); void search(int start_isle, PotentialResult ****strat_base_io - /* strat_base[finalisle][midisle]-> */); + /* strat_base[finalarch][midarch]-> */); extern double max_mass, max_volu, max_capi; extern double distance_loss_factor_per_league; diff --git a/yarrg/rsmain.c b/yarrg/rsmain.c index 2fc2bdf..a498022 100644 --- a/yarrg/rsmain.c +++ b/yarrg/rsmain.c @@ -66,22 +66,22 @@ int main(int argc, const char **argv) { resultsix++; } - int i, midisle, finisle; + int i, midarch, finarch; for (i=0; i=0); + return arch; +} + static double process_route(int nports, int totaldist, double overestimate_excepting_tail) { int i; @@ -51,11 +57,11 @@ static double process_route(int nports, int totaldist, debugf(" %d",ports[i]); debugf("\n"); - int finalisle= ports[nports-1]; - int midisle= ports[nports/2]; + int finisle= ports[nports-1]; int finarch= isle2arch(finisle); + int midisle= ports[nports/2]; int midarch= isle2arch(midisle); - PotentialResult **strat_fin= ONDEMAND(strat_base[finalisle], islandtablesz); - PotentialResult *strat= ONDEMAND(strat_fin[midisle], 1); + PotentialResult **strat_fin= ONDEMAND(strat_base[finarch], narches); + PotentialResult *strat= ONDEMAND(strat_fin[midarch], 1); if (nports>=2) { int pair[2], i; @@ -94,7 +100,7 @@ static double process_route(int nports, int totaldist, debugf(" SOMEHOW BEST\n"); - fildebugf("final %3d mid %3d ",finalisle,midisle); + fildebugf("final %d:%3d mid %d:%3d ",finarch,finisle,midarch,midisle); #define CHK(absperl) \ fildebugf(#absperl " %15f", absperl); \ @@ -136,7 +142,7 @@ static void recurse(int last_isle, } void search(int start_isle, PotentialResult ****strat_base_io) { - strat_base= ONDEMAND(*strat_base_io, islandtablesz); + strat_base= ONDEMAND(*strat_base_io, narches); recurse(start_isle,0,0,1e6); }