#1199 CIF/BDD: Improve performance of BddUtils.getVarDomain + avoid using BDDDomain.ithVar in it
- Best to review per commit.
- End-user visible changes:
- The CIF data-based synthesis tool now more efficiently creates certain predicates for variables with many possible values, namely initial value predicates for discrete variables initialized using
in any, update relation predicates for input variables, and implicit variable-never-out-of-range requirements. - The CIF controller properties checker, for BDD-based checks, now more efficiently creates certain predicates for variables with many possible values, namely initial value predicates for discrete variables initialized using
in any, and update relation predicates for input variables.
- The CIF data-based synthesis tool now more efficiently creates certain predicates for variables with many possible values, namely initial value predicates for discrete variables initialized using
- Detailed/other changes:
-
BddUtils.getVarDomainhas been optimized, deferring its work to eitherBddUtils.getVarDomainByDisjunctionorBddUtils.getVarDomainByComparison. The latter is new. -
BddUtils.getVarDomainByDisjunctionhas some code improvements. -
BddUtils.getVarDomain*methods have improved JavaDocs. -
BddUtils.getVarValuemethod added to replaceBDDDomain.ithVar. This is in preparation for other changes in #458 (closed).
-
- Note that CIF/BDD variables don't yet support negative values, and neither do
BddUtils.getVarDomain*andBddUtils.getVarValuemethods. That is to be done as a next step in #458 (closed).
Closes #1199 (closed)
Edited by Dennis Hendriks