X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-live.git;a=blobdiff_plain;f=yarrg%2Frssearch.c;h=eb5e9583a3ef92c4c8e02a0fc30b2bd739d625b9;hp=c51aae02f655571571b246aec89e578e2aef2b58;hb=051cadee0203526bac95936a28d8fa35901cc925;hpb=0145dc7f4fcaf62090a77fb2d69d5d7807c8d48d diff --git a/yarrg/rssearch.c b/yarrg/rssearch.c index c51aae0..eb5e958 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 + nports); + + 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;