From 52f5717ff34c5880d7600231df6f0f8e2232c6f4 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Fri, 2 Oct 2009 21:47:33 +0100 Subject: [PATCH 1/1] WIP routesearch: trade value; before separate query for qties --- yarrg/rssetup.c | 3 ++- yarrg/rsvalue.c | 5 +++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/yarrg/rssetup.c b/yarrg/rssetup.c index 88b6fc6..dadeca6 100644 --- a/yarrg/rssetup.c +++ b/yarrg/rssetup.c @@ -48,7 +48,8 @@ int sql_step_wrap(sqlite3_stmt *ssh, const char *ssh_string, fprintf(stderr,"SQL %s R",ssh_string); for (i=0; i", stderr); } fputs("\n",stderr); } diff --git a/yarrg/rsvalue.c b/yarrg/rsvalue.c index 9cc9ec7..ad301b0 100644 --- a/yarrg/rsvalue.c +++ b/yarrg/rsvalue.c @@ -108,6 +108,7 @@ static int setup_leg_constraints(double max_thing, int legs, const char *wh) { static void add_leg_c(int startrow, int leg, double value) { if (startrow<=0) return; + assert(value > 0); add_constraint(startrow+leg, value); } @@ -243,6 +244,7 @@ void value_route(int nislands, const int *islands) { if (islands[already_d] == di) /* visited this island already since we left s, uninteresting */ goto next_d; + if (d>s && di==si) /* route has returned to si, no need to think more about s */ goto next_s; @@ -252,6 +254,9 @@ void value_route(int nislands, const int *islands) { IslandPair *ip= ipair_get(islands[s], islands[d]); TradesBlock *block= ip->trades; int tradestodo= ip->ntrades; + if (!tradestodo) + goto next_d; + int inblock= 0; int col= lpx_add_cols(lp,ip->ntrades); -- 2.30.2