|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectnet.sf.javabdd.BDD
net.sf.javabdd.TypedBDDFactory.TypedBDD
public class TypedBDDFactory.TypedBDD
A BDD with types (domains) attached to it.
| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from class net.sf.javabdd.BDD |
|---|
BDD.AllSatIterator, BDD.BDDIterator, BDD.BDDToString |
| Constructor Summary | |
|---|---|
TypedBDDFactory.TypedBDD(BDD bdd,
Set dom)
|
|
| Method Summary | |
|---|---|
BDD.AllSatIterator |
allsat()
Finds all satisfying variable assignments. |
BDD |
apply(BDD that,
BDDFactory.BDDOp opr)
Returns the result of applying the binary operator opr to the two BDDs. |
BDD |
applyAll(BDD that,
BDDFactory.BDDOp opr,
BDDVarSet var)
Applies the binary operator opr to two BDDs and then performs a universal quantification of the variables from the variable set var. |
BDD |
applyEx(BDD that,
BDDFactory.BDDOp opr,
BDDVarSet var)
Applies the binary operator opr to two BDDs and then performs an existential quantification of the variables from the variable set var. |
BDD |
applyUni(BDD that,
BDDFactory.BDDOp opr,
BDDVarSet var)
Applies the binary operator opr to two BDDs and then performs a unique quantification of the variables from the variable set var. |
BDD |
applyWith(BDD that,
BDDFactory.BDDOp opr)
Makes this BDD be the result of the binary operator opr of two BDDs. |
BDD |
compose(BDD g,
int var)
Functional composition. |
BDD |
constrain(BDD that)
Generalized cofactor. |
boolean |
equals(BDD that)
Returns true if this BDD equals that BDD, false otherwise. |
BDD |
exist(BDDVarSet var)
Existential quantification of variables. |
BDD |
forAll(BDDVarSet var)
Universal quantification of variables. |
void |
free()
Frees this BDD. |
BDD |
fullSatOne()
Finds one satisfying variable assignment. |
Set |
getDomainSet()
Returns the set of domains that this BDD uses. |
BDDFactory |
getFactory()
Returns the factory that created this BDD. |
int |
hashCode()
|
BDD |
high()
Gets the true branch of this BDD. |
BDD |
id()
Identity function. |
boolean |
isOne()
Returns true if this BDD is the one (true) BDD. |
boolean |
isZero()
Returns true if this BDD is the zero (false) BDD. |
BDD |
ite(BDD thenBDD,
BDD elseBDD)
if-then-else operator. |
BDD.BDDIterator |
iterator()
|
BDD.BDDIterator |
iterator(BDDVarSet var)
Returns an iteration of the satisfying assignments of this BDD. |
BDD |
low()
Gets the false branch of this BDD. |
int |
nodeCount()
Counts the number of distinct nodes used for this BDD. |
BDD |
not()
Negates this BDD by exchanging all references to the zero-terminal with references to the one-terminal and vice-versa. |
double |
pathCount()
Counts the number of paths leading to the true terminal. |
BDD |
relprod(BDD that,
BDDVarSet var)
Relational product. |
BDD |
replace(BDDPairing pair)
Returns a BDD where all variables are replaced with the variables defined by pair. |
BDD |
replaceWith(BDDPairing pair)
Replaces all variables in this BDD with the variables defined by pair. |
BDD |
restrict(BDD var)
Restrict a set of variables to constant values. |
BDD |
restrictWith(BDD var)
Mutates this BDD to restrict a set of variables to constant values. |
double |
satCount()
Calculates the number of satisfying variable assignments. |
double |
satCount(BDDVarSet set)
Calculates the number of satisfying variable assignments to the variables in the given varset. |
BDD |
satOne()
Finds one satisfying variable assignment. |
BDD |
satOne(BDDVarSet var,
boolean pol)
Finds one satisfying variable assignment. |
void |
setDomains(BDDDomain d)
Changes this BDD's domain to be the given domain. |
void |
setDomains(BDDDomain d1,
BDDDomain d2)
Changes this BDD's domains to be the given domains. |
void |
setDomains(BDDDomain d1,
BDDDomain d2,
BDDDomain d3)
Changes this BDD's domains to be the given domains. |
void |
setDomains(BDDDomain d1,
BDDDomain d2,
BDDDomain d3,
BDDDomain d4)
Changes this BDD's domains to be the given domains. |
void |
setDomains(BDDDomain d1,
BDDDomain d2,
BDDDomain d3,
BDDDomain d4,
BDDDomain d5)
Changes this BDD's domains to be the given domains. |
void |
setDomains(Set d)
Changes this BDD's domains to be the given set. |
BDD |
simplify(BDDVarSet d)
Coudert and Madre's restrict function. |
BDDVarSet |
support()
Returns the variable support of this BDD. |
BDDVarSet |
toVarSet()
Converts this BDD to a new BDDVarSet. |
BDD |
unique(BDDVarSet var)
Unique quantification of variables. |
int |
var()
Gets the variable labeling the BDD. |
int[] |
varProfile()
Counts the number of times each variable occurs in this BDD. |
BDD |
veccompose(BDDPairing pair)
Simultaneous functional composition. |
| Methods inherited from class net.sf.javabdd.BDD |
|---|
and, andWith, biimp, biimpWith, equals, imp, impWith, isUniverse, level, logSatCount, logSatCount, or, orWith, printdot_rec, printDot, printSet, printSetWithDomains, scanAllVar, scanVar, toString, toStringWithDomains, toStringWithDomains, xor, xorWith |
| Methods inherited from class java.lang.Object |
|---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public TypedBDDFactory.TypedBDD(BDD bdd,
Set dom)
| Method Detail |
|---|
public BDDVarSet toVarSet()
BDDConverts this BDD to a new BDDVarSet.
This BDD must be a boolean function that represents the all-true minterm of the BDD variables of interest.
toVarSet in class BDDpublic Set getDomainSet()
public void setDomains(Set d)
public void setDomains(BDDDomain d)
public void setDomains(BDDDomain d1,
BDDDomain d2)
public void setDomains(BDDDomain d1,
BDDDomain d2,
BDDDomain d3)
public void setDomains(BDDDomain d1,
BDDDomain d2,
BDDDomain d3,
BDDDomain d4)
public void setDomains(BDDDomain d1,
BDDDomain d2,
BDDDomain d3,
BDDDomain d4,
BDDDomain d5)
public BDDFactory getFactory()
BDDReturns the factory that created this BDD.
getFactory in class BDDpublic boolean isZero()
BDDReturns true if this BDD is the zero (false) BDD.
isZero in class BDDpublic boolean isOne()
BDDReturns true if this BDD is the one (true) BDD.
isOne in class BDDpublic int var()
BDDGets the variable labeling the BDD.
Compare to bdd_var.
var in class BDDpublic BDD high()
BDDGets the true branch of this BDD.
Compare to bdd_high.
high in class BDDpublic BDD low()
BDDGets the false branch of this BDD.
Compare to bdd_low.
low in class BDDpublic BDD id()
BDDIdentity function. Returns a copy of this BDD. Use as the argument to the "xxxWith" style operators when you do not want to have the argument consumed.
Compare to bdd_addref.
id in class BDDpublic BDD not()
BDDNegates this BDD by exchanging all references to the zero-terminal with references to the one-terminal and vice-versa.
Compare to bdd_not.
not in class BDD
public BDD ite(BDD thenBDD,
BDD elseBDD)
BDDif-then-else operator.
Compare to bdd_ite.
ite in class BDDthenBDD - the 'then' BDDelseBDD - the 'else' BDD
public BDD relprod(BDD that,
BDDVarSet var)
BDDRelational product. Calculates the relational product of the two BDDs as this AND that with the variables in var quantified out afterwards. Identical to applyEx(that, and, var).
Compare to bdd_relprod.
relprod in class BDDthat - the BDD to 'and' withvar - the BDDVarSet to existentially quantify with
BDDDomain.set()
public BDD compose(BDD g,
int var)
BDDFunctional composition. Substitutes the variable var with the BDD that in this BDD: result = f[g/var].
Compare to bdd_compose.
compose in class BDDg - the function to use to replacevar - the variable number to replace
public BDD veccompose(BDDPairing pair)
BDDSimultaneous functional composition. Uses the pairs of variables and BDDs in pair to make the simultaneous substitution: f [g1/V1, ... gn/Vn]. In this way one or more BDDs may be substituted in one step. The BDDs in pair may depend on the variables they are substituting. BDD.compose() may be used instead of BDD.replace() but is not as efficient when gi is a single variable, the same applies to BDD.restrict(). Note that simultaneous substitution is not necessarily the same as repeated substitution.
Compare to bdd_veccompose.
veccompose in class BDDpair - the pairing of variables to functions
public BDD constrain(BDD that)
BDDGeneralized cofactor. Computes the generalized cofactor of this BDD with respect to the given BDD.
Compare to bdd_constrain.
constrain in class BDDthat - the BDD with which to compute the generalized cofactor
public BDD exist(BDDVarSet var)
BDDExistential quantification of variables. Removes all occurrences of this BDD in variables in the set var by existential quantification.
Compare to bdd_exist.
exist in class BDDvar - BDDVarSet containing the variables to be existentially quantified
BDDDomain.set()public BDD forAll(BDDVarSet var)
BDDUniversal quantification of variables. Removes all occurrences of this BDD in variables in the set var by universal quantification.
Compare to bdd_forall.
forAll in class BDDvar - BDDVarSet containing the variables to be universally quantified
BDDDomain.set()public BDD unique(BDDVarSet var)
BDDUnique quantification of variables. This type of quantification uses a XOR operator instead of an OR operator as in the existential quantification.
Compare to bdd_unique.
unique in class BDDvar - BDDVarSet containing the variables to be uniquely quantified
BDDDomain.set()public BDD restrict(BDD var)
BDDRestrict a set of variables to constant values. Restricts the variables in this BDD to constant true if they are included in their positive form in var, and constant false if they are included in their negative form.
Note that this is quite different than Coudert and Madre's restrict function.
Compare to bdd_restrict.
restrict in class BDDvar - BDD containing the variables to be restricted
net.sf.javabdd.BDD#simplify(BDD)public BDD restrictWith(BDD var)
BDDMutates this BDD to restrict a set of variables to constant values. Restricts the variables in this BDD to constant true if they are included in their positive form in var, and constant false if they are included in their negative form. The "that" BDD is consumed, and can no longer be used.
Note that this is quite different than Coudert and Madre's restrict function.
Compare to bdd_restrict and bdd_delref.
restrictWith in class BDDvar - BDD containing the variables to be restrictedBDDDomain.set()public BDD simplify(BDDVarSet d)
BDDCoudert and Madre's restrict function. Tries to simplify the BDD f by restricting it to the domain covered by d. No checks are done to see if the result is actually smaller than the input. This can be done by the user with a call to nodeCount().
Compare to bdd_simplify.
simplify in class BDDd - BDDVarSet containing the variables in the domain
public BDDVarSet support()
BDDReturns the variable support of this BDD. The support is all the variables that this BDD depends on.
Compare to bdd_support.
support in class BDD
public BDD apply(BDD that,
BDDFactory.BDDOp opr)
BDDReturns the result of applying the binary operator opr to the two BDDs.
Compare to bdd_apply.
apply in class BDDthat - the BDD to apply the operator onopr - the operator to apply
public BDD applyWith(BDD that,
BDDFactory.BDDOp opr)
BDDMakes this BDD be the result of the binary operator opr of two BDDs. The "that" BDD is consumed, and can no longer be used. Attempting to use the passed in BDD again will result in an exception being thrown.
Compare to bdd_apply and bdd_delref.
applyWith in class BDDthat - the BDD to apply the operator onopr - the operator to apply
public BDD applyAll(BDD that,
BDDFactory.BDDOp opr,
BDDVarSet var)
BDDApplies the binary operator opr to two BDDs and then performs a universal quantification of the variables from the variable set var.
Compare to bdd_appall.
applyAll in class BDDthat - the BDD to apply the operator onopr - the operator to applyvar - BDDVarSet containing the variables to quantify
BDDDomain.set()
public BDD applyEx(BDD that,
BDDFactory.BDDOp opr,
BDDVarSet var)
BDDApplies the binary operator opr to two BDDs and then performs an existential quantification of the variables from the variable set var.
Compare to bdd_appex.
applyEx in class BDDthat - the BDD to apply the operator onopr - the operator to applyvar - BDDVarSet containing the variables to quantify
BDDDomain.set()
public BDD applyUni(BDD that,
BDDFactory.BDDOp opr,
BDDVarSet var)
BDDApplies the binary operator opr to two BDDs and then performs a unique quantification of the variables from the variable set var.
Compare to bdd_appuni.
applyUni in class BDDthat - the BDD to apply the operator onopr - the operator to applyvar - BDDVarSet containing the variables to quantify
BDDDomain.set()public BDD satOne()
BDDFinds one satisfying variable assignment. Finds a BDD with at most one variable at each level. The new BDD implies this BDD and is not false unless this BDD is false.
Compare to bdd_satone.
satOne in class BDDpublic BDD fullSatOne()
BDDFinds one satisfying variable assignment. Finds a BDD with exactly one variable at all levels. The new BDD implies this BDD and is not false unless this BDD is false.
Compare to bdd_fullsatone.
fullSatOne in class BDD
public BDD satOne(BDDVarSet var,
boolean pol)
BDDFinds one satisfying variable assignment. Finds a minterm in this BDD. The var argument is a set of variables that must be mentioned in the result. The polarity of these variables in the result - in case they are undefined in this BDD - are defined by the pol parameter. If pol is false, then all variables will be in negative form. Otherwise they will be in positive form.
Compare to bdd_satoneset.
satOne in class BDDvar - BDDVarSet containing the set of variables that must be mentioned in the resultpol - the polarity of the result
BDDDomain.set()public BDD.AllSatIterator allsat()
BDDFinds all satisfying variable assignments.
Compare to bdd_allsat.
allsat in class BDDpublic BDD replace(BDDPairing pair)
BDDReturns a BDD where all variables are replaced with the variables defined by pair. Each entry in pair consists of a old and a new variable. Whenever the old variable is found in this BDD then a new node with the new variable is inserted instead.
Compare to bdd_replace.
replace in class BDDpair - pairing of variables to the BDDs that replace those variables
public BDD replaceWith(BDDPairing pair)
BDDReplaces all variables in this BDD with the variables defined by pair. Each entry in pair consists of a old and a new variable. Whenever the old variable is found in this BDD then a new node with the new variable is inserted instead. Mutates the current BDD.
Compare to bdd_replace and bdd_delref.
replaceWith in class BDDpair - pairing of variables to the BDDs that replace those variablespublic int nodeCount()
BDDCounts the number of distinct nodes used for this BDD.
Compare to bdd_nodecount.
nodeCount in class BDDpublic double pathCount()
BDDCounts the number of paths leading to the true terminal.
Compare to bdd_pathcount.
pathCount in class BDDpublic double satCount()
BDDCalculates the number of satisfying variable assignments.
Compare to bdd_satcount.
satCount in class BDDpublic double satCount(BDDVarSet set)
BDDCalculates the number of satisfying variable assignments to the variables in the given varset. ASSUMES THAT THE BDD DOES NOT HAVE ANY ASSIGNMENTS TO VARIABLES THAT ARE NOT IN VARSET. You will need to quantify out the other variables first.
Compare to bdd_satcountset.
satCount in class BDDpublic int[] varProfile()
BDDCounts the number of times each variable occurs in this BDD. The result is stored and returned in an integer array where the i'th position stores the number of times the i'th printing variable occurred in the BDD.
Compare to bdd_varprofile.
varProfile in class BDDpublic boolean equals(BDD that)
BDDReturns true if this BDD equals that BDD, false otherwise.
equals in class BDDthat - the BDD to compare with
public int hashCode()
hashCode in class BDDpublic BDD.BDDIterator iterator(BDDVarSet var)
BDDReturns an iteration of the satisfying assignments of this BDD. Returns an iteration of minterms. The var argument is the set of variables that will be mentioned in the result.
iterator in class BDDvar - set of variables to mention in result
BDDDomain.set()public BDD.BDDIterator iterator()
public void free()
BDDFrees this BDD. Further use of this BDD will result in an exception being thrown.
free in class BDD
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||