docs: @Override
  	public void resetLearningImpl() {
  		this.numClusters = this.numClustersOption.getValue();
  		this.numDimensions = this.numDimensionsOption.getValue();
  		this.maxNumClusterFeatures = this.maxNumClusterFeaturesOption.getValue();
  		this.numProjections = this.numProjectionsOption.getValue();
  
  		this.bufferPhase = true;
  		this.buffer = new ArrayList<double[]>(
  				this.maxNumClusterFeaturesOption.getValue() + 1);
  		this.minDistance = Double.POSITIVE_INFINITY;
  		this.pairwiseDifferent = 0;
  
  		int hashSize = (int) Math.ceil(Math.log(
  				5 * this.maxNumClusterFeaturesOption.getValue()) / Math.log(2));
  		this.root = new ClusteringTreeHeadNode(null, new ClusteringFeature(
  				new double[0], 1), this.numDimensionsOption.getValue(),
  				this.numProjectionsOption.getValue(), Math.min(hashSize, 30),
  				this.clustererRandom);
  		this.rootCount = 0;
  	}