code: public Point getPointAtRecall(double recall) {
          Point foundPoint = null;
          //Find the HIGHEST threshold that gives the specified recall
          for (int i = this.recall.length - 1; i >= 0; i--) {
                  if (this.recall[i] >= recall) {
                          if (foundPoint == null ||(this.recall[i] == foundPoint.getRecall() && this.precision[i] >= foundPoint.getPrecision())) {
                                  foundPoint = new Point(i, threshold[i], precision[i], this.recall[i]);
                          }
                  }
          }
          if (foundPoint == null){
          	//Not found - return first point. Should never happen...
          	foundPoint = new Point(0, threshold[0], precision[0], this.recall[0]);
          }
          return foundPoint;
      }
docs: Get the point (index, threshold, precision, recall) at the given recall.<br>
  Specifically, return the points at the highest threshold that has recall equal to or greater than the
  requested recall.
  
  @param recall Recall to get the point for
  @return point (index, threshold, precision, recall) at (or closest exceeding) the given recall