v2.0.0-beta.2
Pre-release
Pre-release
·
774 commits
to main
since this release
Following up on the prior major rewrite and updating the interface for nested sweeping.
New Features
- Added new overloads for
bdd_exists
,bdd_forall
andzdd_project
using [1] (pure) label predicates, [2] (stateful) label generator functions, and [3] iterators. For example,bdd_exists
is now overloaded with the following alternativesbdd_exists(f, pred)
: quantify all variables i in f where pred(i) evaluates to true.bdd_exists(f, gen)
: quantify all variables i generated by gen(). Here it is important that gen() provides the variables in descending order.bdd_exists(f, begin, end)
: quantify all variables i from begin to end (assuming these are sorted in descending order).
Bug Fixes
- The result of
adiar_stats()
is now fixed such that the values for reduce and substitute are correct. - Many small fixes to make Adiar compile with GCC, Clang, and MSVC on Linux, Mac, and Windows. Simultaneously, we have now set up continuous integration, such that we can truly ensure we support all platforms.
Breaking Changes
- Turned
assignment
into a class similar to the changes with v2.0.0-beta.1 - Generalized
assignment
into avar_map
class with an enum for its second value. This is used for inheritance to the (new)evaluation
class used for outputs ofbdd_satmin
andbdd_satmax
. This will probably again be broken later, as their default output is turned into abdd
.
Contributors
- Steffan Sølvsten ( @SSoelvsten )
Also thanks to Ayoub Aboutarbouch ( @itsmeYO92 ), Maxim Smolskiy ( @MaximSmolskiy ), and Sai Rugveth Vankayala ( @rugveth1210 ) for their small fixes and clean-ups.