System.out.println("lowerBound " + lowerBound);
  public double[] distributionForInstance(Instance instance) throws Exception {        double[] probs = new double[m_Instances.numClasses()];    double prob, sum, temp;    double lowerBound = Math.pow(Double.MIN_VALUE, 1.0 / 				 (instance.numAttributes() - 1.0));     System.out.println("lowerBound " + lowerBound);    sum = Math.sqrt(Utils.sum(m_Counts));    updateMinMax(instance);    for (int i = 0; i < m_Instances.numInstances(); i++) {      Instance inst = m_Instances.instance(i);      if (!inst.classIsMissing()) {	prob = 1;	for (int j = 0; j < m_Instances.numAttributes(); j++) {	  if (j != m_Instances.classIndex()) {	    temp = normalKernel(distance(instance, inst, j) * sum) * sum;	    if (temp < lowerBound) {	      prob *= lowerBound;	    } else {	      prob *= temp;	    }	  }	}	probs[(int) inst.classValue()] += prob;      }    }    Utils.normalize(probs);    return probs;  }