Program Listing for File RefinementFacade.h

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

#ifndef PARTITION_REFINEMENT_FACADE_H_
#define PARTITION_REFINEMENT_FACADE_H_

#include "refine/core/RefinementContext.h"
#include "refine/core/RefinementRunTypes.h"
#include "refine/pipeline/CandidatePoolService.h"
#include "refine/pipeline/CandidateProjectionService.h"
#include "refine/pipeline/CandidateSelector.h"
#include "refine/pipeline/StrategyRunner.h"
#include "refine/pipeline/TimingMetricService.h"


class Refinement {
 private:
  RefinementConfig config_;
  RefinementSession session_;

  void finalizeStrategyChoices();

  void initSession();

 public:
  Refinement(const PartitionConstraintConfig &constraints,
             const RefineStageConfig &refine, const fpga &fpgas, int thread);

  Metrics refinement(MultilevelCoarsener &mc,
                     vector<vector<int>> &candidate_parts,
                     vector<vector<VectorXi>> &candidate_occupied_resources,
                     int COCP_flag, HSFullTiming::HSPartitionFlow &pFlow);
};

#endif