-
Notifications
You must be signed in to change notification settings - Fork 24
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
✨ Option for efficient determination of non-operational status #602
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: GitHub Actions <[email protected]>
…efficient_non_operational
Signed-off-by: GitHub Actions <[email protected]>
…efficient_non_operational
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #602 +/- ##
==========================================
- Coverage 98.13% 98.11% -0.02%
==========================================
Files 232 232
Lines 35410 35680 +270
Branches 1691 1703 +12
==========================================
+ Hits 34748 35009 +261
- Misses 660 670 +10
+ Partials 2 1 -1
... and 3 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
Signed-off-by: GitHub Actions <[email protected]>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
clang-tidy made some suggestions
Signed-off-by: GitHub Actions <[email protected]>
Signed-off-by: GitHub Actions <[email protected]>
7245945 shows the following runtimes: |
Signed-off-by: GitHub Actions <[email protected]>
…efficient_non_operational
… the input iterator.
Signed-off-by: GitHub Actions <[email protected]>
…efficient_non_operational
@marcelwa, I have now fixed the Windows CI issue. This means that this PR will no longer change significantly. |
Fantastic! 🎉 In other words, I can finalize my review? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Drewniok, add the latest version before merging.
That would be great! I think we will be the fastest overall if you finish it, although there might be some issues I could realize if I go through it again carefully. |
[[nodiscard]] inline uint64_t determine_output(const std::vector<kitty::dynamic_truth_table>& truth_tables, | ||
const uint64_t current_input_index) noexcept | ||
{ | ||
std::bitset<64> bits{}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The choice of return type and this variable limit the input size of truth_tables
to 64. However, no error handling is conducted in case truth_tables.size() > 64
. Maybe an std::vector<bool>
is a more suitable return type for this function.
Description
This PR adds an option to efficiently determine if a layout is non-operational. This is achieved by applying the pruning strategies from QuickCell.
Checklist: