From 39c06791f9cefbedf3438c2a661716142c889bee Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 8 Oct 2009 00:58:45 +0100 Subject: [PATCH] WIP routesearch; stratify by archipelagoes - much better --- yarrg/rscommon.h | 2 +- yarrg/rsmain.c | 20 ++++++++++---------- yarrg/rssearch.c | 18 ++++++++++++------ 3 files changed, 23 insertions(+), 17 deletions(-) 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); } -- 2.30.2