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

Simple overloads of bdd_restrict, zdd_offset, and zdd_onset (and add bdd_topvar(f)/zdd_topvar(A) for later) #564

Merged
merged 8 commits into from
Nov 4, 2023

Conversation

SSoelvsten
Copy link
Owner

@SSoelvsten SSoelvsten commented Nov 4, 2023

Adds overloads for Restrict

I've gone over all of the previous unit tests for the iterator and ensured they
actually made use of more than one assignment.
This will become important later, as 'minvar(...)' will get an extended meaning
with the introduction of dynamic variable ordering
As requested by Anna Blume Jakobsen based on her prior experience.
@SSoelvsten SSoelvsten added ✨ feature New operation or other feature 📁 bdd Binary Decision Diagrams 📁 zdd Zero-suppressed Decision Diagrams labels Nov 4, 2023
@SSoelvsten SSoelvsten added this to the v2.2 : Variable Reordering milestone Nov 4, 2023
@SSoelvsten SSoelvsten self-assigned this Nov 4, 2023
Copy link

codecov bot commented Nov 4, 2023

Codecov Report

All modified and coverable lines are covered by tests ✅

Comparison is base (3952968) 96.653% compared to head (d801bcf) 96.891%.

Additional details and impacted files
@@              Coverage Diff              @@
##              main      #564       +/-   ##
=============================================
+ Coverage   96.653%   96.891%   +0.238%     
=============================================
  Files           83        83               
  Lines         5767      5822       +55     
=============================================
+ Hits          5574      5641       +67     
+ Misses         193       181       -12     
Files Coverage Δ
src/adiar/bdd.h 100.000% <ø> (ø)
src/adiar/bdd/bdd.cpp 88.421% <100.000%> (+2.400%) ⬆️
src/adiar/bdd/restrict.cpp 100.000% <100.000%> (ø)
src/adiar/internal/dd_func.h 100.000% <100.000%> (+9.524%) ⬆️
src/adiar/zdd.h 100.000% <ø> (ø)
src/adiar/zdd/subset.cpp 100.000% <100.000%> (ø)
src/adiar/zdd/zdd.cpp 80.556% <100.000%> (+4.140%) ⬆️

... and 1 file with indirect coverage changes

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

Copy link

github-actions bot commented Nov 4, 2023

Benchmark Report 🟢

origin/bdd/restrict_overloads is an improvement of 0.40% (compared to origin/main).

Minimum running time (s) for 14-Queens:

origin/main origin/bdd/restrict_overloads
268.43 267.37
Raw Data

Running times (s) for 14-Queens:

origin/main origin/bdd/restrict_overloads
369.85 267.86
269.44 267.37
271.23 268.98
268.43 268.47

Copy link

github-actions bot commented Nov 4, 2023

Benchmark Report 🟢

origin/bdd/restrict_overloads is an improvement of 0.18% (compared to origin/main).

Minimum running time (s) for 9-Queens:

origin/main origin/bdd/restrict_overloads
0.25 0.25
Raw Data

Running times (s) for 9-Queens:

origin/main origin/bdd/restrict_overloads
0.25 0.25
0.26 0.25
0.25 0.25
0.25 0.26
0.25 0.25
0.25 0.25
0.25 0.25
0.25 0.26
0.25 0.25
0.25 0.25
0.27 0.25
0.25 0.25
0.25 0.25
0.25 0.25
0.25 0.26
0.25 0.25

Copy link

github-actions bot commented Nov 4, 2023

Benchmark Report 🟡

origin/bdd/restrict_overloads is a regression of 1.88% (compared to origin/main).

Minimum running time (s) for 12-Queens:

origin/main origin/bdd/restrict_overloads
14.64 14.92
Raw Data

Running times (s) for 12-Queens:

origin/main origin/bdd/restrict_overloads
14.86 14.92
14.64 14.97
14.68 14.93
14.68 14.99
14.69 14.95
14.65 14.99
14.84 15.04
14.71 15.04
14.69 15.03
14.73 14.99
14.69 14.97
14.69 15.03
14.74 15.02
14.71 15.03
14.71 15.01
14.73 15.02

@SSoelvsten SSoelvsten force-pushed the bdd/restrict_overloads branch 2 times, most recently from 63d1f89 to 783d537 Compare November 4, 2023 09:49
@SSoelvsten SSoelvsten force-pushed the bdd/restrict_overloads branch from 783d537 to 5ece0cd Compare November 4, 2023 09:53
Anna Blume Jakobsen requested the 'bdd_low(f)' and 'bdd_high(f)' functions, so
one would expect an end-user also needs the ZDD equivalents
@SSoelvsten
Copy link
Owner Author

2000 Unit Tests 🎉

@SSoelvsten SSoelvsten changed the title Simple overloads of bdd_restrict (and add bdd_topvar(f) for later) Simple overloads of bdd_restrict, zdd_offset, and zdd_onset (and add bdd_topvar(f)/zdd_topvar(A) for later) Nov 4, 2023
@SSoelvsten SSoelvsten merged commit c13164a into main Nov 4, 2023
43 of 50 checks passed
Copy link

github-actions bot commented Nov 4, 2023

Benchmark Report 🟢

origin/bdd/restrict_overloads is an improvement of 0.32% (compared to origin/main).

Minimum running time (s) for 14-Queens:

origin/main origin/bdd/restrict_overloads
269.06 268.20
Raw Data

Running times (s) for 14-Queens:

origin/main origin/bdd/restrict_overloads
371.38 268.83
269.06 269.67
270.03 268.20
269.92 270.24

Copy link

github-actions bot commented Nov 4, 2023

Benchmark Report 🟡

origin/bdd/restrict_overloads is a regression of 1.74% (compared to origin/main).

Minimum running time (s) for 9-Queens:

origin/main origin/bdd/restrict_overloads
0.24 0.25
Raw Data

Running times (s) for 9-Queens:

origin/main origin/bdd/restrict_overloads
0.24 0.25
0.25 0.26
0.25 0.25
0.25 0.25
0.25 0.28
0.25 0.25
0.25 0.26
0.25 0.25
0.25 0.25
0.25 0.25
0.25 0.29
0.25 0.25
0.25 0.25
0.25 0.25
0.25 0.30
0.25 0.30

Copy link

github-actions bot commented Nov 4, 2023

Benchmark Report 🟡

origin/bdd/restrict_overloads is a regression of 1.97% (compared to origin/main).

Minimum running time (s) for 12-Queens:

origin/main origin/bdd/restrict_overloads
17.09 17.43
Raw Data

Running times (s) for 12-Queens:

origin/main origin/bdd/restrict_overloads
17.70 17.90
17.46 17.75
17.42 17.58
17.28 17.92
17.39 17.76
17.71 17.75
17.34 17.84
17.46 17.94
17.92 17.43
17.57 17.82
17.39 17.72
17.40 18.34
17.29 17.68
17.09 17.55
17.58 17.84
17.63 17.64

@SSoelvsten SSoelvsten deleted the bdd/restrict_overloads branch November 5, 2023 06:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
📁 bdd Binary Decision Diagrams ✨ feature New operation or other feature 📁 zdd Zero-suppressed Decision Diagrams
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Add bdd_topvar(...) and zdd_topvar(...) Add bdd_then/bdd_else
1 participant