public void countData(int index,Instances uncovered,double[][] prevRuleStats){
  if ((m_Filtered != null) || (m_Ruleset == null)) {
    return;
  }
  int size=m_Ruleset.size();
  m_Filtered=new ArrayList<Instances[]>(size);
  m_SimpleStats=new ArrayList<double[]>(size);
  Instances[] data=new Instances[2];
  data[1]=uncovered;
  for (int i=0; i < index; i++) {
    m_SimpleStats.add(prevRuleStats[i]);
    if (i + 1 == index) {
      m_Filtered.add(data);
    }
 else {
      m_Filtered.add(new Instances[0]);
    }
  }
  for (int j=index; j < size; j++) {
    double[] stats=new double[6];
    Instances[] filtered=computeSimpleStats(j,data[1],stats,null);
    m_Filtered.add(filtered);
    m_SimpleStats.add(stats);
    data=filtered;
  }
}

public void countData ( int index , Instances uncovered , double [ ] [ ] prevRuleStats ) { if ( ( m_Filtered != null ) || ( m_Ruleset == null ) ) { return ; } int size = m_Ruleset . size ( ) ; m_Filtered = new ArrayList < Instances [ ] > ( size ) ; m_SimpleStats = new ArrayList < double [ ] > ( size ) ; Instances [ ] data = new Instances [ 2 ] ; data [ 1 ] = uncovered ; for ( int i = 0 ; i < index ; i ++ ) { m_SimpleStats . add ( prevRuleStats [ i ] ) ; if ( i + 1 == index ) { m_Filtered . add ( data ) ; } else { m_Filtered . add ( new Instances [ 0 ] ) ; } } for ( int j = index ; j < size ; j ++ ) { double [ ] stats = new double [ 6 ] ; Instances [ ] filtered = computeSimpleStats ( j , data [ 1 ] , stats , null ) ; m_Filtered . add ( filtered ) ; m_SimpleStats . add ( stats ) ; data = filtered ; } }
count data from the position index in the ruleset assuming that given data are not covered by the rules in position 0 . . . ( index - 1 ) , and the statistics of these rules are provided . < br > this procedure is typically useful when a temporary object of rulestats is constructed in order to efficiently calculate the relative dl of rule in position index , thus all other stuff is not needed .
