} }
  private double getProbs(int classIndex, Instance instance, 			  double weight) throws Exception {        double [] weights;    double prob = 0;    int treeIndex;    int i,j;        if (m_isLeaf) {      return weight*localModel().classProb(classIndex,instance);    }else{      treeIndex = localModel().whichSubset(instance);      if (treeIndex == -1) {	weights = localModel().weights(instance);	for (i=0;i<m_sons.length;i++)	  if (!son(i).m_isEmpty) {	    prob += son(i).getProbs(classIndex, instance, weights[i]*weight);}	return prob;      }else	if (son(treeIndex).m_isEmpty)	  return weight*localModel().classProb(classIndex, instance);	else	  return son(treeIndex).getProbs(classIndex, instance, weight);    }  }