X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?p=ypp-sc-tools.db-test.git;a=blobdiff_plain;f=yarrg%2Frsvalue.c;h=8fe5f229b04b00355817b7225475a9068e8d9621;hp=3bf98b47b397f8bca433d55045b193305de099c2;hb=e0e0711ed505eb9de89ac5a26848b30785e58816;hpb=2fedbd29b44d71058d0bdf0182028457b21cabce diff --git a/yarrg/rsvalue.c b/yarrg/rsvalue.c index 3bf98b4..8fe5f22 100644 --- a/yarrg/rsvalue.c +++ b/yarrg/rsvalue.c @@ -136,15 +136,18 @@ static IslandPair *ipair_get_create(int si, int di) { assert(di < islandtablesz); if (!(ipa= ipairs[si])) { - ipa= ipairs[si]= mcalloc(sizeof(*ipa) * islandtablesz); + ipairs[si]= MCALLOC(ipa, islandtablesz); } if ((ip= ipa[di])) return ip; - ipa[di]= ip= mmalloc(sizeof(*ip)); + ipa[di]= NEW(ip); ip->trades= 0; ip->route_tail_value= -1; + if (si==di) ctr_islands_arbitrage++; + else ctr_ipairs_relevant++; + debugf("VALUE ipair_get(i%d,i%d) running...\n", si,di); SQL_MUST( sqlite3_bind_int(ss_ipair_dist, 1, si) ); SQL_MUST( sqlite3_bind_int(ss_ipair_dist, 2, di) ); @@ -198,6 +201,7 @@ double value_route(int nislands, const int *islands, int exclude_arbitrage) { lp= lpx_create_prob(); lpx_set_obj_dir(lp, LPX_MAX); lpx_set_int_parm(lp, LPX_K_MSGLEV, DEBUGP(lp) ? 3 : 1); + lpx_set_int_parm(lp, LPX_K_PRESOL, 1); if (DEBUGP(value)) { lpx_set_prob_name(lp,(char*)"value_route"); @@ -336,7 +340,7 @@ static void read_trades(void) { IslandPair *ip= ipair_get_create(cols[1], cols[3]); TradesBlock *block= ip->trades; if (!block || ip->trades->ntrades >= TRADES_PER_BLOCK) { - block= mmalloc(sizeof(*block)); + NEW(block); block->next= ip->trades; ip->trades= block; block->ntrades= 0; @@ -378,7 +382,7 @@ static void read_islandtradeends(const char *bs, int srcdstoff) { goto found; /* not found, add new end */ - search= mmalloc(sizeof(*search)); + NEW(search); search->commodid= commodid; search->price= price; search->next= *trades; @@ -394,12 +398,11 @@ static void read_islandtradeends(const char *bs, int srcdstoff) { void setup_value(void) { sqlite3_stmt *sst; - int i; commodstabsz= sql_single_int("SELECT max(commodid) FROM commods") + 1; - commodstab= mmalloc(sizeof(*commodstab)*commodstabsz); - for (i=0; imass= this->volu= -1 + ); SQL_PREPARE(sst, "SELECT commodid,unitmass,unitvolume FROM commods"); @@ -412,8 +415,8 @@ void setup_value(void) { } sqlite3_finalize(sst); - ipairs= mcalloc(sizeof(*ipairs) * islandtablesz); - itradeends= mcalloc(sizeof(*itradeends) * islandtablesz); + MCALLOC(ipairs, islandtablesz); + MCALLOC(itradeends, islandtablesz); SQL_PREPARE(ss_ipair_dist, " SELECT dist FROM dists\n"