public void Uncoarsen(IEnumerable <IPartition> partitions, IPartitionRefiner refiner) { logger.Info("Uncoarsening starts"); // TODO make check faster while (partitions.SelectMany(p => p.Nodes).OfType <ISuperNode>().Any()) { // pop last level of supernodes in place partitions.ForEach(p => p.Inflate()); if (refiner != null) { refiner.Refine(partitions); } } logger.Info("Uncoarsening finished."); }
public PartitionManager(ICoarsener coarsener, IPartitioner partitioner, IPartitionRefiner refiner) { this.partitioner = partitioner; this.coarsener = coarsener; this.refiner = refiner; }