21#ifndef ABC__OPT__ESLIM__SELECTIONSTRATEGY_h
22#define ABC__OPT__ESLIM__SELECTIONSTRATEGY_h
58 bool filterSubcircuit(
const Subcircuit& subcir);
59 void forbiddenPairsRec(
Gia_Obj_t * pObj,
int input,
int min_level, std::unordered_map<
int, std::unordered_set<int>>& pairs,
const std::unordered_map<int,int>& out_ids );
62 static constexpr unsigned int min_size = 2;
65 std::bernoulli_distribution bdist;
66 std::uniform_int_distribution<std::mt19937::result_type> udistr;
76 void checkCandidate(
Subcircuit& subcircuit, std::queue<int>&
candidate, std::queue<int>& rejected,
bool add);
88 bool filterSubcircuitImpl(
const Subcircuit& subcir);
97 Subcircuit getSubcircuitImpl() {
return findSubcircuit();};
98 bool filterSubcircuitImpl(
const Subcircuit& subcir);
99 bool filterSubcircuitRec(
Gia_Obj_t * pObj,
unsigned int min_level);
117 udistr.param(std::uniform_int_distribution<std::mt19937::result_type>::param_type(lower, upper));
128 :
SelectionStrategy<T>(gia_man, cfg, log), nPis(Gia_ManPiNum(gia_man)), nPos(Gia_ManPoNum(gia_man)) {
135 inline Subcircuit randomizedBFSFP::getSubcircuitImpl() {
145 inline bool randomizedBFSFP::filterSubcircuitImpl(
const Subcircuit& subcir) {
152#include "selectionStrategy.tpp"
#define ABC_NAMESPACE_CXX_HEADER_START
#define ABC_NAMESPACE_CXX_HEADER_END
typedefABC_NAMESPACE_IMPL_START struct Vec_Int_t_ Vec_Int_t
DECLARATIONS ///.
Subcircuit getSubcircuit()
int getSubcircuitIO(Vec_Int_t *subcircuit, Vec_Int_t *io)
std::unordered_map< int, std::unordered_set< int > > computeForbiddenPairs(const Subcircuit &subcir)
unsigned int getUniformRandomNumber(unsigned int lower, unsigned int upper)
SelectionStrategy(Gia_Man_t *&gia_man, const eSLIMConfig &cfg, eSLIMLog &log)
randomizedBFSFP(Gia_Man_t *&gia_man, const eSLIMConfig &cfg, eSLIMLog &log)
randomizedBFSnoFP(Gia_Man_t *&gia_man, const eSLIMConfig &cfg, eSLIMLog &log)
struct Gia_Obj_t_ Gia_Obj_t
struct Gia_Man_t_ Gia_Man_t
std::unordered_map< int, std::unordered_set< int > > forbidden_pairs