2 research outputs found

    SSoelvsten/adiar: v2.0.0-beta.5

    No full text
    New Features Functional Bridge: Fully generalised 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 types predicate and generator to pass information into Adiar and consumer 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 an exec_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(...), and zdd_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 and bdd_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, and quantify_mode have been removed in favour of using the new Execution Policy. Removed the functions bdd_counter and zdd_sized_set. They may be added anew, assuming someone sends in a feature request. Fixed inconsistency of naming scheme in predicates. For example, the function is_true(const bdd &) has been renamed to bdd_istrue(const bdd&) to be consistent with the rest of the API. 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
    corecore