Skip to content

v2.0.0-beta.4.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@SSoelvsten SSoelvsten released this 26 Jun 14:37
· 635 commits to main since this release

New Features

  • zdd_project(...)
    Added new overloads using (stateful) label generator functions and iterators.
  • adiar_set_domain(...)
    Add overload to set domain given a generator function, or an iterator.
  • bdd_satmin(...), bdd_satmax(...), zdd_minelem, and zdd_maxelem(...)
    Add overload with a callback function to be compatible with all desired output data structures.

Optimisations

  • Nested Sweeping
    Implemented this framework to add support for an I/O-efficient simulation of BDD operations that (may) recurse on intermediate results. The multi-variable quantification operations, i.e. bdd_exists, bdd_forall, and zdd_project, use this to decrease their memory usage and their running time.

Breaking Changes

  • bdd_exists, bdd_forall, and zdd_project
    Removed the overload for multi-variable quantification when given a file with labels.
  • bdd_satmin(f) and bdd_satmax(f), resp. zdd_minelem(A) and zdd_maxelem(A):
    • The return type when called without a callback function has been turned into a bdd, resp. zdd. This ought to make their return type more usable in a symbolic context.
    • Semantics has been changed if the global domain has been set. If so, then it will return the assignment to the variables in the domain rather than specifically the levels present in the BDD.
  • Every deprecated function from v1.x has been removed.
  • The two-level granularity of statistics has been removed. If you want to compile Adiar with statistics you just have to set the CMake variable ADIAR_STATS to ON,

Contributors