docs: protected double[] firstHitNB(Instance inst) {
  		int countFired = 0;
  		boolean fired = false;
  		double[] votes = new double[this.numClass];
  		for (int j = 0; j < this.ruleSet.size(); j++) {
  			if (this.ruleSet.get(j).ruleEvaluate(inst) == true) {
  				countFired = countFired + 1;
  				if (this.ruleSet.get(j).obserClassDistrib.sumOfValues() >= this.nbThresholdOption.getValue()) {
  					votes = NaiveBayes.doNaiveBayesPredictionLog(inst, this.ruleSet.get(j).obserClassDistrib, this.ruleSet.get(j).observers, this.ruleSet.get(j).observersGauss);
  		    	    votes = exponential(votes);
  		    	    votes = normalize(votes);
  		    	    } else {
  		    	    	for (int z = 0; z < this.numClass; z++) {
  		    	    		votes[z] = this.ruleSet.get(j).obserClassDistrib.getValue(z) 
  		    	    				/ this.ruleSet.get(j).obserClassDistrib.sumOfValues();
  		    	    		}
  		    	    	}
  				break;
  				}
  			}
  		if (countFired > 0) {
  			fired = true;
  			} else {
  				fired = false;
  				}
  		if (fired == false) {
  			if (super.getWeightSeen() >= this.nbThresholdOption.getValue()) {
  				votes = NaiveBayes.doNaiveBayesPredictionLog(inst, this.observedClassDistribution, this.attributeObservers, this.attributeObserversGauss);
  				votes = exponential(votes);
  				votes = normalize(votes);
  				} else {
  					votes = super.oberversDistribProb(inst, this.observedClassDistribution);
  					}
  			}
  		return votes;
  		}