docs: public void mainFindBestValEntropy(Node root) {
  		if (root != null) {
  			DoubleVector parentClassCL = new DoubleVector();
  			DoubleVector classCountL = root.classCountsLeft; //class count left
  			DoubleVector classCountR = root.classCountsRight; //class count left
  			double numInst = root.classCountsLeft.sumOfValues() + root.classCountsRight.sumOfValues();
  			double classCountLSum = root.classCountsLeft.sumOfValues();
  			double classCountRSum = root.classCountsRight.sumOfValues();
  			double classCountLEntropy = entropy(classCountL);
  			double classCountREntropy = entropy(classCountR);
  			this.minEntropyTemp = ( classCountLSum / numInst) * classCountLEntropy 
  					+ (classCountRSum / numInst)* classCountREntropy;
  			for (int f = 0; f < root.classCountsLeft.numValues(); f++) {
  				parentClassCL.setValue(f, root.classCountsLeft.getValue(f));
  				}
  			findBestValEntropy(root ,classCountL , classCountR, true, this.minEntropyTemp, parentClassCL);
  			}
  		}