:github_url: https://github.com/svenevs/exhale-companion .. _program_listing_file_ckpttncpp_FMKWayConstrMgr.hpp: Program Listing for File FMKWayConstrMgr.hpp ============================================ |exhale_lsh| :ref:`Return to documentation for file ` (``ckpttncpp/FMKWayConstrMgr.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once #include "FMConstrMgr.hpp" #include #include // #include // Check if (the move of v can satisfied, makebetter, or notsatisfied class FMKWayConstrMgr : public FMConstrMgr { private: std::vector illegal; public: FMKWayConstrMgr(const SimpleNetlist& H, double BalTol, std::uint8_t K) : FMConstrMgr {H, BalTol, K} , illegal(K, 1) { } [[nodiscard]] auto select_togo() const -> std::uint8_t { auto it = ranges::min_element(this->diff); return std::uint8_t(std::distance(this->diff.cbegin(), it)); } auto init(gsl::span part) -> void { FMConstrMgr::init(part); auto it = this->diff.begin(); for (auto& il : this->illegal) { il = (*it < this->lowerbound); ++it; } } auto check_legal(const MoveInfoV& move_info_v) -> LegalCheck; };