Skip to content
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

BDD/RelPrev/Renaming (Preliminary Work) #676

Merged
merged 30 commits into from
Jun 22, 2024
Merged

Conversation

SSoelvsten
Copy link
Owner

@SSoelvsten SSoelvsten commented Jun 21, 2024

While working on adding O(1) variable replacement if m(x) = x + b ( #502 ), there was a lot of clean-up and few optimisations done. This PR includes all but the actual feature - these ought to be included on main regardless of whether the later PR is acceptable or not.

Doing it this way can also make us better able to measure the overhead (independently of the possible speedup/slowdown due to the cnot(...) optimisation)

Currently, every stream can be negated and so it ends up adding lots of conditional statements
where none is necessary. Hence, if we move the '_negate' test into 'node_stream' only, then we
can regain some performance
This 'dd' independent interface has bothered me for years...
This is the only place it is used, and there is no need to add the additional
instructions to every other instance
@SSoelvsten SSoelvsten added ✨ optimisation It's all about speed / space ✨ code quality Uncle Bob would be proud labels Jun 21, 2024
@SSoelvsten SSoelvsten self-assigned this Jun 21, 2024
@SSoelvsten SSoelvsten added this to the v2.1 : Relational Product milestone Jun 21, 2024
@SSoelvsten SSoelvsten changed the title Bdd/relprev/renaming prework BDD/RelPrev/Renaming (Preliminary Work) Jun 21, 2024
Comment on lines 161 to 165
level_info
operator!() const
{
return *this;
}
Copy link
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This function is dead, right?

Copy link

codecov bot commented Jun 21, 2024

Codecov Report

Attention: Patch coverage is 96.96970% with 9 lines in your changes missing coverage. Please review.

Project coverage is 97.937%. Comparing base (f374d2f) to head (e01d502).

Files Patch % Lines
src/adiar/bdd/if_then_else.cpp 90.909% 7 Missing ⚠️
src/adiar/internal/algorithms/pred.h 93.103% 2 Missing ⚠️
Additional details and impacted files
@@              Coverage Diff              @@
##              main      #676       +/-   ##
=============================================
+ Coverage   97.871%   97.937%   +0.066%     
=============================================
  Files           93        93               
  Lines         6999      7029       +30     
=============================================
+ Hits          6850      6884       +34     
+ Misses         149       145        -4     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

Copy link

🟡 Regression Test (Picotrav 'adder')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of -0.10% (stdev: 1.35%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 9434.67 9444.33
Standard Deviation 127.79 18.34

Number of samples: 3

Copy link

🟡 Regression Test (12-Queens)

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of -1.22% (stdev: 0.81%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 11331.33 11469.67
Standard Deviation 31.34 93.30

Number of samples: 3

Copy link

🟢 Regression Test (Picotrav 'arbiter')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 1.14% (stdev: 1.35%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 64694.33 63958.67
Standard Deviation 875.84 244.31

Number of samples: 3

Copy link

🟡 Regression Test (QBF 'ep_dual/8x8_6_e-8-1_p-2-3_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of -0.68% (stdev: 0.67%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 4995.67 5029.67
Standard Deviation 15.18 33.50

Number of samples: 3

Copy link

🟢 Regression Test (QBF 'breakthrough/3x4_19_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 0.47% (stdev: 0.77%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 21950.00 21847.00
Standard Deviation 52.85 167.14

Number of samples: 3

Copy link

🟢 Regression Test (QBF 'connect4/6x6_11_connect4_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 0.59% (stdev: 0.42%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 12067.67 11996.33
Standard Deviation 50.93 21.46

Number of samples: 3

Copy link

🟢 Regression Test (QBF 'breakthrough_dual/3x6_10_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 1.21% (stdev: 1.93%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 5259.00 5195.33
Standard Deviation 24.52 100.32

Number of samples: 3

Copy link

🟢 Regression Test (QBF 'httt/4x4_9_tippy_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 0.92% (stdev: 2.94%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 9656.67 9567.67
Standard Deviation 237.29 281.62

Number of samples: 3

Copy link

🟢 Regression Test (QBF 'domineering/5x5_13_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 1.09% (stdev: 0.36%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 15368.00 15200.00
Standard Deviation 55.00 31.24

Number of samples: 3

Copy link

🟢 Regression Test (QBF 'hex/hein_08_5x5-11_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 2.53% (stdev: 1.16%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 17206.67 16771.00
Standard Deviation 199.30 48.59

Number of samples: 3

Copy link

🟢 Regression Test (QBF 'ep/8x8_7_e-8-1_p-3-4_bwnib')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of 1.67% (stdev: 0.76%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 29823.00 29324.33
Standard Deviation 228.09 94.85

Number of samples: 3

Copy link

🟡 Regression Test (Picotrav 'mem_ctrl')

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of -0.92% (stdev: 0.83%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 113801.67 114845.33
Standard Deviation 943.97 274.86

Number of samples: 3

Copy link

🟡 Regression Test (14-Queens)

'ssoelvsten/adiar/bdd/relprev/renaming_prework' is a change in performance of -0.42% (stdev: 0.52%).

... origin/main ssoelvsten/adiar/bdd/relprev/renaming_prework
Mean 262573.00 263664.67
Standard Deviation 1372.97 1339.97

Number of samples: 3

@SSoelvsten SSoelvsten merged commit 4e8060a into main Jun 22, 2024
56 of 60 checks passed
@SSoelvsten SSoelvsten deleted the bdd/relprev/renaming_prework branch June 22, 2024 11:00
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
✨ code quality Uncle Bob would be proud ✨ optimisation It's all about speed / space
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant