chiark / gitweb /
routesearch: abandon higher granuarities when tables become full
[ypp-sc-tools.main.git] / yarrg / rssearch.c
index 9676640..31ec3d7 100644 (file)
@@ -139,6 +139,7 @@ static double process_route(int nports, int totaldist,
     debugf(" SOMEHOW %d BEST\n",granui);
 
     fildebugf("final %d:%3d mid %d ",finarch,finisle,midarch);
+    int relevant=0;
 
     for (ap=0; ap<AP; ap++) {
       HighScoreEntry *scores= highscores[granui][ap];
@@ -170,11 +171,16 @@ static double process_route(int nports, int totaldist,
        if (pos>0) {
          scores[pos].value= value[ap];
          scores[pos].pr= bucket;
+         relevant=1;
        }
        fildebugf("@%2d", pos);
-      }
-    }
-  }
+      } /* new best */
+    } /* ap */
+    if (!relevant)
+      /* both absolute and perleague are full at this granularity,
+       * so we don't care about anything more granular */
+      granus= granui+1;
+  } /* granui */
 
   fildebugf(" route");