From 7cadaf1a332c11a000970a044bd103b8e1865545 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 3 Oct 2009 10:18:46 +0100 Subject: [PATCH] Optimise for per-league too --- yarrg/rssearch.c | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) 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; -- 2.30.2