.. _program_listing_file_src_partition_tools.h: Program Listing for File tools.h ================================ |exhale_lsh| :ref:`Return to documentation for file ` (``src/partition/tools.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef TOOLS_H #define TOOLS_H #include "../modeling/tool.h" #include "../sta/HSCutNetFlow.h" #include "../sta/HSPartitionFlow.h" #include "../sta/HSTimingLocalData.h" #include "defs.h" bool floatNumEqual(const float &v1, const float &v2); bool floatNumLess(const float &v1, const float &v2); int compute_group_constrain( const graph &finest, const unordered_map> &group_assignment, const flat_hash_map &name_map, vector &group_map); bool checkFixTopo(const graph &circuit, const vector &fixed_assign, const vector> &topology); double tdm_delay(double tdm_ratio); void calculateSmallestDelayPaths(const graph &g, const vector &parts, const fpga &fpgas, vector> &tdm, vector>> &paths); void getPinMinslackC(const graph &fine, const int &e, const vector &hyperedge_cluster_id_vec, const vector &map, flat_hash_map, pinSlack> &pin_minslack_c); void readPartitionResult(vector &parts, const string &partition_result_file); string formatHierarchyPath(const vector &path); inline constexpr double kMaxHierarchyResourceSlack = 2.0; void collectLeafResources(const hierarchy &node, fpga &flat_fpgas); bool applyLeafResources(hierarchy &node, const vector &flat_resources, int &cursor); vector getDistributedResourceDims( const vector &required_resources, const vector &full_leaf_resources); vector computeHierarchySlacks( const vector &required_resources, const vector &full_leaf_resources, const vector &distributed_dims); bool aggregateHierarchyResourcesWithDistributedSlack( hierarchy &node, int consumed_levels, const vector &distributed_dims, const vector &resource_slacks); void writeHierarchyPartitionArtifacts( const graph &finest, const hierarchy &hierarchy_root, const vector> &node_paths, const vector &cut_records, const string &parts_filename, const string &aux_filename); vector convertSubConnetsToCutConnections( const vector> &subConnets); bool convertCutNetPathsToSimpleTimings( const HSFullTiming::HSCutNetFlow &cutNetFlow, const vector &cutNetPaths, vector &converted); void evaluatePartitionTimingComparison(const graph &finest, fpga &fpgas, const vector &parts, HSFullTiming::HSPartitionFlow &pFlow, int topk); #endif