m_numToSelect = final_rank.length;
m_calculatedNumToSelect = final_rank.length;
  public double [][] rankedAttributes() throws Exception {        if (m_rankedAtts == null || m_rankedSoFar == -1) {      throw new Exception("Search must be performed before attributes "			  +"can be ranked.");    }    m_doRank = true;    search (m_ASEval, null);    double [][] final_rank = new double [m_rankedSoFar][2];    for (int i=0;i<m_rankedSoFar;i++) {      final_rank[i][0] = m_rankedAtts[i][0];      final_rank[i][1] = m_rankedAtts[i][1];    }        resetOptions();    m_doneRanking = true;    if (m_numToSelect > final_rank.length) {      throw new Exception("More attributes requested than exist in the data");    }    if (m_numToSelect <= 0) {      if (m_threshold == -Double.MAX_VALUE) {	m_numToSelect = final_rank.length;      } else {	determineNumToSelectFromThreshold(final_rank);      }    }    return final_rank;  }