Skip to content

v2.0.0-beta.2

Pre-release
Pre-release
Compare
Choose a tag to compare
@SSoelvsten SSoelvsten released this 16 Mar 13:40
· 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 and zdd_project using [1] (pure) label predicates, [2] (stateful) label generator functions, and [3] iterators. For example, bdd_exists is now overloaded with the following alternatives
    • bdd_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 a var_map class with an enum for its second value. This is used for inheritance to the (new) evaluation class used for outputs of bdd_satmin and bdd_satmax. This will probably again be broken later, as their default output is turned into a bdd.

Contributors

Also thanks to Ayoub Aboutarbouch ( @itsmeYO92 ), Maxim Smolskiy ( @MaximSmolskiy ), and Sai Rugveth Vankayala ( @rugveth1210 ) for their small fixes and clean-ups.