Program Listing for File CandidatePoolService.h¶
↰ Return to documentation for file (src/partition/refine/pipeline/CandidatePoolService.h)
#ifndef PARTITION_REFINE_PIPELINE_CANDIDATEPOOLSERVICE_H_
#define PARTITION_REFINE_PIPELINE_CANDIDATEPOOLSERVICE_H_
#include "refine/core/RefinementRunTypes.h"
class CandidatePoolService {
public:
using RefinementFn = std::function<double(CandidateRefinementRequest &)>;
static void localSearch(const fpga &fpgas, const graph &level_graph,
vector<int> &offspring,
vector<VectorXi> &occupied_resources,
HSFullTiming::HSPartitionFlow &pFlow,
float &worst_slack,
const RefinementFn &refinement_fn);
static void runLocalSearchBatch(
const fpga &fpgas, int thread, const graph &level_graph,
vector<vector<int>> &candidate_parts,
vector<vector<VectorXi>> &candidate_occupied_resources,
HSFullTiming::HSPartitionFlow &pFlow, vector<float> &worst_slacks,
const RefinementFn &refinement_fn);
static void runRefinementBatch(
int thread, const graph &level_graph, const fpga &fpgas,
vector<vector<int>> &candidate_parts,
vector<vector<VectorXi>> &candidate_occupied_resources,
int remaining_solutions, HSFullTiming::HSPartitionFlow &pFlow,
vector<float> &worst_slacks, const RefinementFn &refinement_fn,
bool decreaseMaxHopCntPriority = true);
};
#endif