X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~yarrgweb/git?a=blobdiff_plain;f=yarrg%2Frsmain.c;h=551018fabc329873649a58fc297a2eeaa13fe9fc;hb=2bed6e5f821385bd05e8a412554b91798028df14;hp=7904c013c1362b622d13017d54ce6ed351e689b1;hpb=ea160a28fd378be423dfe60d9ad3bdfa6f0d8295;p=ypp-sc-tools.main.git diff --git a/yarrg/rsmain.c b/yarrg/rsmain.c index 7904c01..551018f 100644 --- a/yarrg/rsmain.c +++ b/yarrg/rsmain.c @@ -7,26 +7,34 @@ double max_mass=-1, max_volu=-1, max_capi=-1; double distance_loss_factor_per_league; int max_dist= -1; +#define CTR(x) int ctr_##x; + COUNTER_LIST +#undef CTR + +static PotentialResult ****results; + /* results[start_isle_ix][finalisle][midisle]-> */ + int main(int argc, const char **argv) { const char *arg; +#ifndef debug_flags debug_flags= ~( dbg_sql2 ); +#endif sysassert( !setvbuf(debug,0,_IOLBF,0) ); for (;;) { arg= *++argv; if (arg[0] != '-') break; +#ifndef debug_flags if (!strcmp(arg,"-DN")) { debug_flags= 0; - } else { + } else +#endif + { abort(); } } - setup_sql(); - setup_value(); - setup_search(); - max_mass= atof(*argv++); max_volu= atof(*argv++); max_capi= atof(*argv++); @@ -34,6 +42,12 @@ int main(int argc, const char **argv) { if (!loss_per_league) loss_per_league= 1e-7; distance_loss_factor_per_league= 1.0 - loss_per_league; + + setup_sql(); + setup_value(); + setup_search(); + + fprintf(stderr,"setup complete, starting search\n"); arg= *argv++; if (!strcmp(arg,"specific")) { @@ -41,14 +55,51 @@ int main(int argc, const char **argv) { while ((arg= *argv++)) ia[ni++]= atoi(arg); - double val= value_route(ni, ia); + double val= value_route(ni, ia, 0); printf("route value is %g\n", val); } else if (!strcmp(arg,"search")) { + results= mcalloc(sizeof(*results)*argc); max_dist= atoi(*argv++); - while ((arg= *argv++)) - search(atoi(arg)); + int resultsix= 0; + while ((arg= *argv++)) { + search(atoi(arg), &results[resultsix]); + resultsix++; + } + + int i, midarch, finarch; + for (i=0; iabsolute)); + fprintf(stderr," "); + fprintf(stderr,"%4d",(int)(result->perleague)); + } + } + fprintf(stderr,"\n"); + } + } } else { abort(); } + +#define CTR(x) fprintf(stderr," %-30s %10d\n",#x,ctr_##x); + COUNTER_LIST +#undef CTR + return 0; }