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 class
MtBdd.Leaf<E>
static class
MtBdd.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 void
memoizedFlatValues(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 void
memoizedValues(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)
-
-