CkPttn 1.2.5
Loading...
Searching...
No Matches
NNPartMgr.hpp
Go to the documentation of this file.
1
6#pragma once
7
8#include <cstddef> // for size_t
9#include <cstdint> // for uint8_t
10#include <span> // for span
11
12#include "PartMgrBase.hpp" // for PartMgrBase
13
14// forward declare
15// template <typename graph_t> struct Netlist;
16// using SimpleNetlist = Netlist<xnetwork::SimpleGraph>;
17
32template <typename Gnl, typename GainMgr, typename ConstrMgr> //
33class NNPartMgr : public PartMgrBase<Gnl, GainMgr, ConstrMgr> {
35
36 public:
45 NNPartMgr(const Gnl& hyprgraph, GainMgr& gain_mgr, ConstrMgr& constr_mgr, size_t num_parts)
46 : Base{hyprgraph, gain_mgr, constr_mgr, num_parts} {}
47
48 protected:
59 void _optimize_1pass(std::span<std::uint8_t> part) override;
60};
Base class for Fiduccia-Mattheyses Partitioning Algorithm Manager.
No-Nonsense Partitioning Algorithm Manager.
Definition NNPartMgr.hpp:33
void _optimize_1pass(std::span< std::uint8_t > part) override
Performs a single pass of the No-Nonsense optimization algorithm.
NNPartMgr(const Gnl &hyprgraph, GainMgr &gain_mgr, ConstrMgr &constr_mgr, size_t num_parts)
Constructs a new NNPartMgr object.
Definition NNPartMgr.hpp:45
Fiduccia-Mattheyses Partitioning Algorithm Manager Base.
Definition PartMgrBase.hpp:68
size_t num_parts
Number of partitions.
Definition PartMgrBase.hpp:84
GainMgr & gain_mgr
Gain manager for computing and managing gains.
Definition PartMgrBase.hpp:80
const Gnl & hyprgraph
Reference to the hypergraph being partitioned.
Definition PartMgrBase.hpp:78