From: Ian Jackson Date: Sat, 3 Oct 2009 09:18:46 +0000 (+0100) Subject: Optimise for per-league too X-Git-Tag: 5.0^2~86 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=commitdiff_plain;h=7cadaf1a332c11a000970a044bd103b8e1865545;ds=sidebyside Optimise for per-league too --- diff --git a/yarrg/rssearch.c b/yarrg/rssearch.c index c51aae0..88ea451 100644 --- a/yarrg/rssearch.c +++ b/yarrg/rssearch.c @@ -32,26 +32,35 @@ static Neighbour *get_neighbours(int isle) { return head; } -static double bestsofar; +static double best_absolute, best_perleague; -static void process_route(int nports) { - double value= value_route(nports, ports); - if (value < bestsofar) return; +static void process_route(int nports, int totaldist) { + double absolute= value_route(nports, ports); + double perleague= absolute / totaldist; + + if (absolute < best_absolute && perleague < best_perleague) return; + +#define CHK(absperl) \ + fprintf(stderr,#absperl " %15f", absperl); \ + if (absperl < best_##absperl) fputs(" ",stderr); \ + else { best_##absperl= absperl; fputs("** ",stderr); } + + CHK(absolute) + CHK(perleague) + + fputs(" route",stderr); - fprintf(stderr,"value %20f route", value); int i; for (i=0; i= MAX_ROUTELEN) return; Neighbour *add;