docs: private final void offerEntry(ChartEntry entry, double probability, int spanStart, int spanEnd) {
      HeapUtils.offer(chart[spanStart][spanEnd], probabilities[spanStart][spanEnd],
          chartSizes[spanEnd + (numTerminals * spanStart)], entry, probability);
      chartSizes[spanEnd + (numTerminals * spanStart)]++;
      totalChartSize++;
  
      if (chartSizes[spanEnd + (numTerminals * spanStart)] > beamSize) {
        HeapUtils.removeMin(chart[spanStart][spanEnd], probabilities[spanStart][spanEnd],
            chartSizes[spanEnd + (numTerminals * spanStart)]);
        chartSizes[spanEnd + (numTerminals * spanStart)]--;
        totalChartSize--;
      }
    }