The const_count method defined in the manager class returns the number of constants w.r.t. leaf nodes. While this approach makes perfect sense for DD types such as an ADD, it may be confusing for a (multiplicative) BMD, which – unlike ADDs – can have more than two edges pointing to one constant.
As a result, const_count always returns 1 for BMDs, as shown in the corresponding test, which suggests that this behavior should be reconsidered. It might make sense to treat edges and nodes as pairs in this case, and count the constants accordingly. Important edges are also stored in a consts vector so that they are never deleted by the garbage collection.
The
const_countmethod defined in the manager class returns the number of constants w.r.t. leaf nodes. While this approach makes perfect sense for DD types such as an ADD, it may be confusing for a (multiplicative) BMD, which – unlike ADDs – can have more than two edges pointing to one constant.As a result,
const_countalways returns1for BMDs, as shown in the corresponding test, which suggests that this behavior should be reconsidered. It might make sense to treat edges and nodes as pairs in this case, and count the constants accordingly. Important edges are also stored in aconstsvector so that they are never deleted by the garbage collection.