Program Listing for File CandidateProjectionService.h

Return to documentation for file (src/partition/refine/pipeline/CandidateProjectionService.h)

#ifndef PARTITION_REFINE_PIPELINE_CANDIDATEPROJECTIONSERVICE_H_
#define PARTITION_REFINE_PIPELINE_CANDIDATEPROJECTIONSERVICE_H_

#include "refine/core/RefinementContext.h"
#include "refine/core/RefinementRunTypes.h"


class CandidateProjectionService {
 public:
  static void remapForTopology(RefinementConfig &config,
                               const graph &level_graph,
                               vector<vector<int>> &candidate_parts,
                               vector<vector<VectorXi>> &candidate_resources,
                               vector<vector<int>> &cut_weights);

  static void trimInitialCandidates(const RefinementConfig &config,
                                    bool has_timing, CandidateBuffers &buffers);

  static LevelWorkset buildLevelWorkset(const RefinementConfig &config,
                                        const RefinementSession &session,
                                        const MultilevelCoarsener &mc,
                                        int level, int best_solution_id,
                                        const CandidateBuffers &buffers,
                                        HSFullTiming::HSPartitionFlow &pFlow);

  static void keepOnlyBestIfNeeded(
      int COCP_flag, int best_solution_id, vector<vector<int>> &candidate_parts,
      vector<vector<VectorXi>> &candidate_resources);
};

#endif