code: private void computeSubClusterSplit(final int[][] subDesignation, 
              int originalCluster, List<DataPoint> listOfDataPointsInCluster, DataSet fullDataSet,
              int[] fullDesignations, final int[][] originalPositions, 
              final double[] splitEvaluation, 
              PriorityQueue<Integer> clusterToSplit, boolean parallel) 
      {
          subDesignation[originalCluster] = new int[listOfDataPointsInCluster.size()];
          int pos = 0;
          for(int i = 0; i < fullDataSet.size(); i++)
          {
              if(fullDesignations[i] != originalCluster)
                  continue;
              originalPositions[originalCluster][pos++] = i;
          }
          //Cluster the sub cluster
          SimpleDataSet dpSubC1DataSet = new SimpleDataSet(listOfDataPointsInCluster);
          try
          {
              baseClusterer.cluster(dpSubC1DataSet, 2, parallel, subDesignation[originalCluster]);
              splitEvaluation[originalCluster] = clusterEvaluation.evaluate(subDesignation[originalCluster], dpSubC1DataSet);
              clusterToSplit.add(originalCluster);
          }
          catch (ClusterFailureException ex)
          {
              splitEvaluation[originalCluster] = Double.POSITIVE_INFINITY;
          }
  
  
      }
docs: Takes the data set and computes the clustering of a sub cluster, and
  stores its information, and places the result in the queue
  
  @param subDesignation the array of arrays to store the designation array
  for the sub clustering
  @param originalCluster the originalCluster that we want to store the
  split information of
  @param listOfDataPointsInCluster the list of all data points that belong
  to <tt>originalCluster</tt>
  @param fullDataSet the full original data set
  @param fullDesignations the designation array for the full original data
  set
  @param originalPositions the array of arrays to store the map from and
  index in <tt>listOfDataPointsInCluster</tt> to its index in the full data
  set.
  @param splitEvaluation the array to store the cluster evaluation of the
  data set
  @param clusterToSplit the priority queue that stores the cluster id and
  sorts based on how good the sub splits were.