if (debug) {
if (debugPrune) {
  public void prune(int start, int end) {    Map items = chart[start][end].map;    if (pruneFact > 0.0) {      // remove the lowest probability elements until the lowest one      // left is within pruneFact of highest      double topProb = chart[start][end].topLogProb;      double lowestProbAllowed = topProb - pruneFact;      Iterator it = items.keySet().iterator();      while (it.hasNext()) {	CKYItem currItem = (CKYItem)it.next();	if (currItem.logProb() < lowestProbAllowed) {	  if (debug) {	    System.err.println(className + ": pruning away item: " + currItem +			       " because its prob is less than " +			       lowestProbAllowed);	  }	  totalItems--;	  it.remove();	  reclaimItem(currItem);	}	else	  break;      }    }    if (cellLimit > 0) {      /*        int numItems = items.size();        if (numItems > cellLimit) { // don't create iterator if no need	// remove lowest prob items until the set size is equal to the limit	int numToRemove = numItems - cellLimit;	Iterator it = items.keySet().iterator();	while (it.hasNext() && numToRemove > 0) {	Item currItem = (Item)it.next();  // get the item so we can remove it	numToRemove--;	chart[start][end].numItems--;	totalItems--;	it.remove();	reclaimItem(currItem);	}        }      */      throw new UnsupportedOperationException("need to implement cell " +					      "limiting, now that we no " +					      "longer have sorted [NT,i,j] " +					      "cells!");    }  }