Skip to content

Commit

Permalink
Updated for 0.17.7 release
Browse files Browse the repository at this point in the history
  • Loading branch information
asminer committed Jan 24, 2025
1 parent 814fa4f commit 636bb71
Show file tree
Hide file tree
Showing 5 changed files with 72 additions and 59 deletions.
2 changes: 2 additions & 0 deletions docs/_data/navigation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,8 @@ side:
children:
- title: "Since last release"
url: "/releases/unreleased"
- title: "Version 0.17.7"
url: "/releases/0.17.7"
- title: "Version 0.17.6"
url: "/releases/0.17.6"
- title: "Version 0.17.5"
Expand Down
67 changes: 67 additions & 0 deletions docs/_releases/0.17.7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
---
title: New in Version 0.17.7
shorttitle: Version 0.17.7
number: 0.17.7
date: 2025-01-23
---

### Interface Changes

* Added classes ```minterm``` and ```minterm_coll``` to deal
with variable assignments and truth tables over sets and relations.
Both of these are in ```minterms.h``` and ```minterms.cc```.

* Creating functions from single minterms or minterm collections
is now done using methods ```minterm::buildFunction()```,
```minterm_coll::buildFunctionMax()```, and
```minterm_coll::buildFunctionMin()```.
These methods allow specification of a default value,
and in the case of minterm collections, specify how to
deal with overlapping minterms in the collection
(take the max or min value).
These replace several ```forest::createEdge()``` methods,
which are now deprecated.

* Function evaluation is now done through ```dd_edge::evaluate```.
This replaces several ```forest::evaluate()``` methods,
which are now deprecated.

* ```dd_edge::set()``` parameters are reversed, for consistency
(edge value before node).

* Iterating through a function is now done using
an instance of ```dd_edge::iterator```, created with
```dd_edge::begin()```.
The interface is similar to STL iterators, except it is slightly
faster to use the boolean operator than to compare with ```end()```,
i.e., to use a loop of the form
```c++
for (dd_edge::iterator I = e.begin(); I; ++I)
```
You can pass a mask as a parameter to ```begin()```;
this should be a pointer to a (const) ```minterm``` with values set to
```DONT_CARE``` for variables that are free to take any value,
```DONT_CHANGE``` for relation "to" variables that must equal
their "from" counterpart, or a regular non-negative integer value
to fix a variable.
The old ```enumerator``` class is now deprecated.

* Old ```forest::getElement()``` is deprecated,
in favor of ```dd_edge::getElement()```.

* Old ```forest::createEdge()``` for constant functions
are deprecated, in favor of ```forest::createConstant()```.

### Implementation

* Updated minimum and maximum operations; works for all forest types.
MINIMUM should be used instead of UNION for EV+MDDs,
and MAXIMUM should be used instead of INTERSECTION for EV+MDDs.

* Added comparison operations for EV+ and EV*.

### Tests

* Most of these features are thoroughly tested in ```chk_minterms```
and ```chk_mtcoll```.

56 changes: 0 additions & 56 deletions docs/_releases/unreleased.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,61 +7,5 @@ layout: single

### Interface Changes

* Added classes ```minterm``` and ```minterm_coll``` to deal
with variable assignments and truth tables over sets and relations.
Both of these are in ```minterms.h``` and ```minterms.cc```.

* Creating functions from single minterms or minterm collections
is now done using methods ```minterm::buildFunction()```,
```minterm_coll::buildFunctionMax()```, and
```minterm_coll::buildFunctionMin()```.
These methods allow specification of a default value,
and in the case of minterm collections, specify how to
deal with overlapping minterms in the collection
(take the max or min value).
These replace several ```forest::createEdge()``` methods,
which are now deprecated.

* Function evaluation is now done through ```dd_edge::evaluate```.
This replaces several ```forest::evaluate()``` methods,
which are now deprecated.

* ```dd_edge::set()``` parameters are reversed, for consistency
(edge value before node).

* Iterating through a function is now done using
an instance of ```dd_edge::iterator```, created with
```dd_edge::begin()```.
The interface is similar to STL iterators, except it is slightly
faster to use the boolean operator than to compare with ```end()```,
i.e., to use a loop of the form
```c++
for (dd_edge::iterator I = e.begin(); I; ++I)
```
You can pass a mask as a parameter to ```begin()```;
this should be a pointer to a (const) ```minterm``` with values set to
```DONT_CARE``` for variables that are free to take any value,
```DONT_CHANGE``` for relation "to" variables that must equal
their "from" counterpart, or a regular non-negative integer value
to fix a variable.
The old ```enumerator``` class is now deprecated.

* Old ```forest::getElement()``` is deprecated,
in favor of ```dd_edge::getElement()```.

* Old ```forest::createEdge()``` for constant functions
are deprecated, in favor of ```forest::createConstant()```.

### Implementation

* Updated minimum and maximum operations; works for all forest types.
MINIMUM should be used instead of UNION for EV+MDDs,
and MAXIMUM should be used instead of INTERSECTION for EV+MDDs.

* Added comparison operations for EV+ and EV*.

### Tests

* Most of these features are thoroughly tested in ```chk_minterms```
and ```chk_mtcoll```.

2 changes: 1 addition & 1 deletion src/defines.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
// #define ALLOW_DEPRECATED_0_17_4 "12/19/2023"
// #define ALLOW_DEPRECATED_0_17_5 "04/05/2024"
#define ALLOW_DEPRECATED_0_17_6 "11/11/2024"
// #define ALLOW_DEPRECATED_0_17_7
// #define ALLOW_DEPRECATED_0_17_7 "01/23/2025"

// ==================================================================
// ^ This line is important for the release script, don't remove it
Expand Down
4 changes: 2 additions & 2 deletions src/revision.h
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
const char* MEDDLY_DATE = "2024 November 11";
const char* MEDDLY_VERS = "0.17.6";
const char* MEDDLY_DATE = "2025 January 23";
const char* MEDDLY_VERS = "0.17.7";

0 comments on commit 636bb71

Please sign in to comment.