Package owl.bdd
Class MtBdd<E>
- java.lang.Object
-
- owl.bdd.MtBdd<E>
-
- Type Parameters:
E- the elements stored at the leaves of the MTBDD.
- Direct Known Subclasses:
MtBdd.Leaf,MtBdd.Node
public abstract class MtBdd<E> extends Object
A multi-terminal binary decision diagram (MTBDD).This class provides an implementation of ordered, but not necessarily reduced, MTBDDs.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classMtBdd.Leaf<E>static classMtBdd.Node<E>
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description Set<E>flatValues()Collect all values in a single set.abstract Set<E>get(BitSet valuation)Map<E,BddSet>inverse(BddSetFactory factory)Map<E,BddSet>inverse(BddSetFactory factory, IntUnaryOperator mapping)<T> MtBdd<T>map(Function<? super Set<E>,? extends Set<? extends T>> mapper)protected abstract voidmemoizedFlatValues(Set<E> values, Set<MtBdd<E>> seenNodes)protected abstract Map<E,BddSet>memoizedInverse(BddSetFactory factory, Map<MtBdd<E>,Map<E,BddSet>> memoizedCalls, IntUnaryOperator mapping)protected abstract <T> MtBdd<T>memoizedMap(Function<? super Set<E>,? extends Set<? extends T>> mapper, Map<MtBdd<E>,MtBdd<T>> memoizedCalls)protected abstract voidmemoizedValues(Set<Set<E>> values, Set<MtBdd<E>> seenNodes)static <E> MtBdd<E>of()static <E> MtBdd<E>of(int variable, MtBdd<E> trueChild, MtBdd<E> falseChild)static <E> MtBdd<E>of(Collection<? extends E> value)static <E> MtBdd<E>of(Map<E,PropositionalFormula<Integer>> map)Set<Set<E>>values()
-
-
-
Method Detail
-
of
public static <E> MtBdd<E> of()
-
of
public static <E> MtBdd<E> of(Collection<? extends E> value)
-
of
public static <E> MtBdd<E> of(Map<E,PropositionalFormula<Integer>> map)
-
flatValues
public Set<E> flatValues()
Collect all values in a single set. The return value of this method is not retained and ownership is transferred to the callee.- Returns:
- the set of all values.
-
inverse
public final Map<E,BddSet> inverse(BddSetFactory factory)
-
inverse
public final Map<E,BddSet> inverse(BddSetFactory factory, IntUnaryOperator mapping)
-
memoizedMap
protected abstract <T> MtBdd<T> memoizedMap(Function<? super Set<E>,? extends Set<? extends T>> mapper, Map<MtBdd<E>,MtBdd<T>> memoizedCalls)
-
memoizedInverse
protected abstract Map<E,BddSet> memoizedInverse(BddSetFactory factory, Map<MtBdd<E>,Map<E,BddSet>> memoizedCalls, IntUnaryOperator mapping)
-
memoizedFlatValues
protected abstract void memoizedFlatValues(Set<E> values, Set<MtBdd<E>> seenNodes)
-
-