* Make two_val_model_counts_logic generic in heuristic
* Update API and provide two different heuristics
* Increment patch-version of lib and binary
Co-authored-by: Maximilian Marx <mmarx@wh2.tu-dresden.de>
* Remove `unwrap()` from code
Remove `unwrap()` from the code (except tests).
Replaced it by either using `expect()` or handling the error more
gracefully.
* Improve documentation
Add examples on how to use the library
Add explanaitions on the dual use of crate::datatypes::Term
Relates to #33
* Update README
* Add contributing guidelines
* directly hooked into the internal BDD-primitive functions
* has worse performance than the approach without the primitive functions
* foreseeable for easy problems
* surprise for more complex problems, because recursion can be
escaped much earlier
* ADD the default-feature "variablelist" to have a compile-flag to either
enable or disable this feature.
* updated rust to the current version
Update clap to version 3.1.3, so
- structopt gets obsolete
- Errors are differently named, therefore tests needed to be adapted
- updated Cargo.lock for the binary
Fixed an issue with clippy warnings
Implemented various optimisations of the 0.2.0 version, including different filtering and rewriting approaches for model enumerations
* ADD prefilter for stable model computation (hybrid and naive)
* ADD implementation with one big rewritten formula instead of many
* ADD second version of bdd rewriting method
* FIX documentation, UPD flake
* UPD Readme, usage
* ADD hybrid options for grounded and transformation
State of the art BDD library, naive implementation, and Hybrid-approach available in the first beta-release version 0.2.0
* ADD biodivine as an obdd library to adf-obdd
* Implement restrict-wrapper on Biodivine
* Testcases changed to use biodivine for grounded.
* API unified
* ADD stable and complete with biodivine
* moved main.rs to bin folder
* ADD biodivine -> naive translation
* ADD hybrid approach
instantiation + grounded by biodivine, then naive approach with memoization
* TIDY Readme, doc, tests
A couple of bugs have been identified, where the complete interpretation either identified too many interpretations as being complete (bug in complete_iter) or too less interpretations (bug in ThreeValuedInterpretationsIterator)
They are fixed now