v2.0.0-beta.5
Pre-release
Pre-release
SSoelvsten
released this
09 Oct 14:57
·
480 commits
to main
since this release
New Features
- Functional Bridge:
Fully generalized and committed to the use of functions to bridge between Adiar and the user's code (as was started in v2.0-beta.2). To this end, Adiar now provides the typespredicate<...>
andgenerator<...>
to pass information into Adiar andconsumer<...>
to pass information back out again. All functions of v1.x that used some file, e.g.bdd_restrict
,zdd_onset
,bdd_varprofile
etc. all now provide one (or more) of these functions instead. - Execution Policy:
Each algorithm (when relevant) has been overloaded with anexec_policy
as its first argument. This class provides a thread-safe way of passing options into an algorithm, e.g. whether the algorithm should use internal or external memory data structures. This replaces the use of the globally set enum values, e.g.memory_mode
. bdd_top()
,bdd_bot()
,zdd_top(...)
, andzdd_bot(...)
:
Provide a uniform interface for getting the top and the bot value of the lattice. This provides a more uniform and interchangeable interface between BDDs and ZDDs where you do not need to think about the reduction rules.
Optimisations
bdd_satmin
andbdd_satmax
Stores the intermediate result in an internal memory stack (since it can at most be 8 MiB in size) rather than writing it out to disk. This should improve their performance slightly.
Breaking Changes
- The function overloads with an auxiliary file as an input, e.g.
bdd_restrict
,zdd_onset
,bdd_varprofile
, have been removed in favour of the new functional input instead. - The enums
memory_mode
,access_mode
, andquantify_mode
have been removed in favour of using the new Execution Policy. - Removed the functions
bdd_counter
andzdd_sized_set
. They may be added anew, assuming someone sends in a feature request. - Fixed inconsistency of naming scheme. For example, the function
is_true(const bdd &)
has been renamed tobdd_istrue(const bdd&)
. This makes them consistent with the rest of the API. The domain and statistics functions have also been renamed for consistency. - Removed the
map_pair
class introduced in v2.0-beta.2 as it has become redundant with the simpler function interface.
Contributors
- Steffan Sølvsten ( @SSoelvsten )