All notable changes to this project will be documented in this file.
BDD.pathCount
andBDD.satCount
now return aBigInteger
rather than adouble
, giving better precision for larger BDDs, and preventing wrong results for very large BDDs, at the cost of being a bit slower and requiring more memory for the cache in which the results for these operations are stored.BDDDomain.getVarIndices
methods no longer produce invalid results in case of too many satisfying assignments to fit in a Java array, but instead throw an exception.BDDFactory
now hassetSaturationCallback
andunsetSaturationCallback
methods, that allow configuring a callback for the various saturation reachability computation operations. The callback is invoked after each application of a transition during saturation reachability computations, allowing to print debug information, check for termination requests, and so on.
- Several new operations for BDDs were added, namely
relnextUnion
,relprevUnion
,saturationForward
,boundedSaturationForward
,saturationBackward
andboundedSaturationBackward
. - Fixed an integer overflow bug, which may trigger while checking for the need to resize the node array, causing large node arrays to grow unnecessary.
- Several new operations for BDDs were added, namely
relnext
,relnextIntersection
,relprev
andrelprevIntersection
. - A proper
OutOfMemoryError
is now thrown when the BDD nodes array is to be resized larger than the Java array limit, rather than crashing with aNegativeArraySizeException
. - The BDD node array can now be resized to the largest size supported by Java, before getting an
OutOfMemoryError
on the next resize, thus allowing slightly larger problems to be solved with JavaBDD. - Extended the
README
file with information about where to find the plugin on Maven Central. - Improved the copyright headers in source files.
- Inverted the meaning of the operation cache ratio option, and improved its precision and documentation.
- Added an OSGi-compatible manifest.
- Improved Maven metadata.
- Added maximum memory statistics, which are a best-effort approximation only.
- Small fix in README file.
- Improved license headers, and related changes.
- Completely reworked the statistics callbacks API.
- No statistics callbacks are registered by default any more, but they are still available to be registered manually.
- Added statistics callbacks for operation cache statistics, maximum used BDD node statistics and continuous performance statistics.
- Removed non-callback use of garbage collection statistics, variable reordering statistics and continuous performance statistics.
- The maximum used BDD nodes statistics are now properly copied when a
JFactory
is cloned.
- Added CHANGES.md to track changes between releases.
- Added the collection of platform-independent performance statistics.
- Added
bdd_used_nodes_count()
that counts the number of used nodes. - Replaced static
CACHESTATS
by non-staticcachestats.enabled
, which is adaptable by user and configurable per BDD factory instance. - Removed global JVM shutdown hook, that prints cache statistics to
stdout
, fromJFactory
. - Cache statistics are now measured using
longs
rather thanints
to reduce integer overflow issues. - Added
opAccess
statistic to cache statistics. - Added functionality to reset statistics.
- Removed
MicroFactory
,UberMicroFactory
,TypedBDDFactory
andTestBDDFactory
. - Upgrade to Java 11. Java 11 is now required to use this library.
- Cleaned up source formatting, warnings, etc.
- Enabled Checkstyle static code checks.
- Fixed operation cache hashing.
- Various other small code improvements.
- Most stdout printing now disabled by default.
- Removed
BDDFactory.getVersion
.
- Updated SCM URL for proper Maven Central metadata.
- This project is a fork of the JavaBDD project on Sourceforge (see https://sourceforge.net/projects/javabdd/ and http://javabdd.sourceforge.net/), based on trunk revision r483 from 2011-11-24.
- Kept only the pure Java implementations, removing the interfaces to the JDD, BuDDy, CUDD and CAL libraries.
- Cleaned up the project setup.
- Adapted project to allow deployment to Maven Central.
- First release of com.github.javabdd.