.. _program_listing_file_src_sta_HSTimingSlackRange.h: Program Listing for File HSTimingSlackRange.h ============================================= |exhale_lsh| :ref:`Return to documentation for file ` (``src/sta/HSTimingSlackRange.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #pragma once namespace HSFullTiming { inline constexpr int kDefaultSlackRange = 50; inline int g_slack_range = kDefaultSlackRange; inline bool setSlackRange(int slack_range) { if (slack_range <= 0) { return false; } g_slack_range = slack_range; return true; } inline bool initSlackRange(int slack_range) { return setSlackRange(slack_range); } inline int getSlackRange() { return g_slack_range; } inline int slackToBucketIndex(float slack) { const int slack_range = getSlackRange(); if (slack < 0) { return static_cast(slack / slack_range) - 1; } return static_cast(slack / slack_range); } inline int maxHopToSlackRangeStart(int max_hop) { return -max_hop * getSlackRange(); } inline int maxHopToSlackRangeEnd(int max_hop) { return maxHopToSlackRangeStart(max_hop) + getSlackRange(); } } // namespace HSFullTiming