Program Listing for File StrategyFactory.h

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

#ifndef PARTITION_REFINE_STRATEGY_STRATEGYFACTORY_H_
#define PARTITION_REFINE_STRATEGY_STRATEGYFACTORY_H_

#include "LegacyRefine.h"


class StrategyFactory {
 public:
  static vector<unique_ptr<IRefineStrategy>> createMainStrategies(
      const StrategyPlan &plan, int max_hop, int large_net_threshold,
      double penalty, vector<vector<int>> &cut_weights, const fpga &fpgas,
      const TimingRefineConfig &timing_cfg, int max_move, int max_neg_move);

  static unique_ptr<IRefineStrategy> createLegacyOldStrategy(
      int max_hop, int large_net_threshold, double penalty,
      vector<vector<int>> &cut_weights, const fpga &fpgas,
      const TimingRefineConfig &timing_cfg, bool has_fix, bool has_timing,
      bool enable_parallel_refine, int thread_order, int current_level,
      int multilevel_id);

  static unique_ptr<IRefineStrategy> createLegacyGreedyStrategy(
      int max_hop, int large_net_threshold, double penalty,
      vector<vector<int>> &cut_weights, const fpga &fpgas,
      const TimingRefineConfig &timing_cfg, bool has_fix);
};

#endif