50template <
typename Gnl,
typename GainMgr,
typename ConstrMgr>
90 void init(std::span<std::uint8_t> part);
113 void _optimize_1pass(std::span<std::uint8_t> part);
120 auto final_check(std::span<const std::uint8_t> part) ->
bool {
121 return this->validator.final_check(part);
LegalCheck
Check if the move of v can satisfied, GetBetter, or NotSatisfied.
Definition FMConstrMgr.hpp:22
No-Nonsense Partitioning Algorithm Manager Base.
Definition NNPartMgr.hpp:51
ConstrMgr & validator
Constraint manager for validating partition constraints.
Definition NNPartMgr.hpp:65
const Gnl & hyprgraph
Reference to the hypergraph being partitioned.
Definition NNPartMgr.hpp:61
void init(std::span< std::uint8_t > part)
Initializes the partition manager with the given partition.
GainMgr & gain_mgr
Gain manager for computing and managing gains.
Definition NNPartMgr.hpp:63
GainMgr GainMgr_
Definition NNPartMgr.hpp:54
typename GainMgr::GainCalc_ GainCalc_
Definition NNPartMgr.hpp:53
size_t num_parts
Number of partitions.
Definition NNPartMgr.hpp:67
int total_cost
Definition NNPartMgr.hpp:72
ConstrMgr ConstrMgr_
Definition NNPartMgr.hpp:55
auto legalize(std::span< std::uint8_t > part) -> LegalCheck
Legalizes the partition to satisfy balance constraints.
NNPartMgr(const Gnl &hyprgraph, GainMgr &gain_mgr, ConstrMgr &constr_mgr, size_t num_parts)
Construct a new Part Mgr Base object.
Definition NNPartMgr.hpp:82
void optimize(std::span< std::uint8_t > part)
Optimizes the partition using the FM algorithm.