docs: protected void bicoCFUpdate(ClusteringTreeNode x) {
  		// Starts with the global root node as the current root node
  		ClusteringTreeNode r = this.root;
  		int i = 1;
  		while (true) {
  			ClusteringTreeNode y = r.nearestChild(x.getCenter());
  			// Checks if the node can not be merged to the current level
  			if (r.hasNoChildren()
  					|| y == null
  					|| Metric.distanceSquared(x.getCenter(), y.getCenter()) > calcRSquared(i)) {
  				// Adds the node to the current root node
  				x.setThreshold(calcR(i));
  				r.addChild(x);
  				this.rootCount++;
  				break;
  			} else {
  				// Checks if the node can be merged to the nearest node without
  				// exceeding the global threshold
  				if (y.getClusteringFeature().calcKMeansCosts(y.getCenter(),
  						x.getClusteringFeature()) <= this.T) {
  					// Merges the ClusteringFeature of the node to the
  					// ClusteringFeature of the nearest node
  					y.getClusteringFeature().merge(x.getClusteringFeature());
  					break;
  				} else {
  					// Navigates one level down in the tree
  					r = y;
  					i++;
  				}
  			}
  		}
  	}