template<typename Gnl>
FMKWayConstrMgr class

Fiduccia-Mattheyses num_parts-Way Partition Constraint Manager.

Template parameters
Gnl

Base classes

template<typename Gnl>
class FMConstrMgr<Gnl>
Fiduccia-Mattheyses Partition Constraint Manager.

Constructors, destructors, conversion operators

FMKWayConstrMgr(const Gnl& hyprgraph, double bal_tol, std::uint8_t num_parts)
Constructs a new FMKWayConstrMgr object.

Public functions

auto select_togo() const -> std::uint8_t -> auto
Selects the next partition to move a node to.
auto init(gsl::span<const std::uint8_t> part) -> void -> auto
Initializes the FMKWayConstrMgr object with the given partition information.
auto check_legal(const MoveInfoV<typename Gnl::node_t>& move_info_v) -> LegalCheck -> auto
Checks if the given move information is legal according to the constraints.

Function documentation

template<typename Gnl>
FMKWayConstrMgr<Gnl>::FMKWayConstrMgr(const Gnl& hyprgraph, double bal_tol, std::uint8_t num_parts)

Constructs a new FMKWayConstrMgr object.

Parameters
hyprgraph in The hypergraph to use.
bal_tol in The balance tolerance to use.
num_parts in The number of partitions.

template<typename Gnl>
auto FMKWayConstrMgr<Gnl>::select_togo() const -> std::uint8_t

Selects the next partition to move a node to.

Returns The index of the partition to move the node to.

template<typename Gnl>
auto FMKWayConstrMgr<Gnl>::init(gsl::span<const std::uint8_t> part) -> void

Initializes the FMKWayConstrMgr object with the given partition information.

Parameters
part in A span of the partition indices for each node.

template<typename Gnl>
auto FMKWayConstrMgr<Gnl>::check_legal(const MoveInfoV<typename Gnl::node_t>& move_info_v) -> LegalCheck

Checks if the given move information is legal according to the constraints.

Parameters
move_info_v in The move information to check.
Returns LegalCheck The result of the legality check.