Documentation
¶
Overview ¶
Package gorobdd is an implementation of Reduced Ordered Binary Decision Diagrams.
This package is intended to implement ROBDD operations in a few different ways for comparison and fun. Details about the data structure can be found at:
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func CountNodes ¶
CountNodes counts the total number of unique BDD nodes in the given ROBDD.
Types ¶
type ROBDD ¶
type ROBDD struct {
// Names for all the plys.
// Order of vocabulary is significant.
Vocabulary []string
*node.Node
}
ROBDD is short for Reduced Ordered Binary Decision Diagram, a concise normalized representation of boolean formulas. It is a DAG. Internal nodes have two branches labeled True and False, and unique True and/or False leafs. Additionally, each internal node is labeled with a variable from a given vocabulary, and variables from the vocabulary occur in a fixed order (skipping some) on any path down the DAG. The order in which vocabulary names match the plys can be changed.
func FromTuples ¶
FromTuples allows constructing a ROBDD from a boolean expression in DNF. voc is the vocabulary to be used for the ROBDD. tuples lists the values assumed by each ply for which the expression evaluates to True.
func Reduce ¶
Reduce converts an ROBDD in place to the the reduced canonicalized form. Returns the reduced ROBDD.
Directories
¶
| Path | Synopsis |
|---|---|
|
internal
|
|
|
seq
Package seq has sequential implementations of all BDD operations.
|
Package seq has sequential implementations of all BDD operations. |
|
tag
Package tag provides helper functions to work with the Tag member of the Node struct.
|
Package tag provides helper functions to work with the Tag member of the Node struct. |