System.err.println("Warning: estimated probability " + probs[i] + ". Rounding to 0.");
  public double [] distributionForInstance(Instance inst) throws Exception {        if (m_Classifiers.length == 1) {      return ((DistributionClassifier)m_Classifiers[0])        .distributionForInstance(inst);    }    double [] probs = new double[inst.numClasses()];        double [][] distributions = new double[m_ClassFilters.length][0];    for(int i = 0; i < m_ClassFilters.length; i++) {      m_ClassFilters[i].input(inst);      m_ClassFilters[i].batchFinished();            distributions[i] = ((DistributionClassifier)m_Classifiers[i])	.distributionForInstance(m_ClassFilters[i].output());          }    for (int i = 0; i < inst.numClasses(); i++) {      if (i == 0) {	probs[i] = distributions[0][0];      } else if (i == inst.numClasses() - 1) {	probs[i] = distributions[i - 1][1];      } else {	probs[i] = distributions[i - 1][1] - distributions[i][1];	if (!(probs[i] > 0)) {	  System.err.println("Warning: estimated probability " + probs[i] +			     ". Rounding to 0.");	  probs[i] = 0;	}      }    }    if (Utils.gr(Utils.sum(probs), 0)) {      Utils.normalize(probs);      return probs;    } else {      return m_ZeroR.distributionForInstance(inst);    }  }