Class BDDFactoryIntImpl.IntBDD

java.lang.Object
com.github.javabdd.BDD
com.github.javabdd.BDDFactoryIntImpl.IntBDD
Direct Known Subclasses:
BDDFactoryIntImpl.IntBDDWithFinalizer
Enclosing class:
BDDFactoryIntImpl

public class BDDFactoryIntImpl.IntBDD extends BDD
  • Field Details

    • v

      protected int v
  • Constructor Details

    • IntBDD

      protected IntBDD(int v)
  • Method Details

    • apply

      public BDD apply(BDD that, BDDFactory.BDDOp opr)
      Description copied from class: BDD
      Returns the result of applying the binary operator opr to the two BDDs.

      Compare to bdd_apply.

      Specified by:
      apply in class BDD
      Parameters:
      that - the BDD to apply the operator on
      opr - the operator to apply
      Returns:
      the result of applying the operator
    • applyAll

      public BDD applyAll(BDD that, BDDFactory.BDDOp opr, BDDVarSet var)
      Description copied from class: BDD
      Applies 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.

      Specified by:
      applyAll in class BDD
      Parameters:
      that - the BDD to apply the operator on
      opr - the operator to apply
      var - BDDVarSet containing the variables to quantify
      Returns:
      the result
      See Also:
    • applyEx

      public BDD applyEx(BDD that, BDDFactory.BDDOp opr, BDDVarSet var)
      Description copied from class: BDD
      Applies 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.

      Specified by:
      applyEx in class BDD
      Parameters:
      that - the BDD to apply the operator on
      opr - the operator to apply
      var - BDDVarSet containing the variables to quantify
      Returns:
      the result
      See Also:
    • applyUni

      public BDD applyUni(BDD that, BDDFactory.BDDOp opr, BDDVarSet var)
      Description copied from class: BDD
      Applies 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.

      Specified by:
      applyUni in class BDD
      Parameters:
      that - the BDD to apply the operator on
      opr - the operator to apply
      var - BDDVarSet containing the variables to quantify
      Returns:
      the result
      See Also:
    • applyWith

      public BDD applyWith(BDD that, BDDFactory.BDDOp opr)
      Description copied from class: BDD
      Makes 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.

      Specified by:
      applyWith in class BDD
      Parameters:
      that - the BDD to apply the operator on
      opr - the operator to apply
      Returns:
      the result of applying the operator
    • compose

      public BDD compose(BDD g, int var)
      Description copied from class: BDD
      Functional composition. Substitutes the variable var with the BDD that in this BDD: result = f[g/var].

      Compare to bdd_compose.

      Specified by:
      compose in class BDD
      Parameters:
      g - the function to use to replace
      var - the variable number to replace
      Returns:
      the result of the functional composition
    • constrain

      public BDD constrain(BDD that)
      Description copied from class: BDD
      Generalized cofactor. Computes the generalized cofactor of this BDD with respect to the given BDD.

      Compare to bdd_constrain.

      Specified by:
      constrain in class BDD
      Parameters:
      that - the BDD with which to compute the generalized cofactor
      Returns:
      the result of the generalized cofactor
    • equalsBDD

      public boolean equalsBDD(BDD that)
      Description copied from class: BDD
      Returns true if this BDD equals that BDD, false otherwise.
      Specified by:
      equalsBDD in class BDD
      Parameters:
      that - the BDD to compare with
      Returns:
      true iff the two BDDs are equal
    • exist

      public BDD exist(BDDVarSet var)
      Description copied from class: BDD
      Existential quantification of variables. Removes all occurrences of this BDD in variables in the set var by existential quantification.

      Compare to bdd_exist.

      Specified by:
      exist in class BDD
      Parameters:
      var - BDDVarSet containing the variables to be existentially quantified
      Returns:
      the result of the existential quantification
      See Also:
    • forAll

      public BDD forAll(BDDVarSet var)
      Description copied from class: BDD
      Universal quantification of variables. Removes all occurrences of this BDD in variables in the set var by universal quantification.

      Compare to bdd_forall.

      Specified by:
      forAll in class BDD
      Parameters:
      var - BDDVarSet containing the variables to be universally quantified
      Returns:
      the result of the universal quantification
      See Also:
    • free

      public void free()
      Description copied from class: BDD
      Frees this BDD. Further use of this BDD will result in an exception being thrown.
      Specified by:
      free in class BDD
    • fullSatOne

      public BDD fullSatOne()
      Description copied from class: BDD
      Finds 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.

      Specified by:
      fullSatOne in class BDD
      Returns:
      one satisfying variable assignment
    • getFactory

      public BDDFactory getFactory()
      Description copied from class: BDD
      Returns the factory that created this BDD.
      Specified by:
      getFactory in class BDD
      Returns:
      factory that created this BDD
    • hashCode

      public int hashCode()
      Specified by:
      hashCode in class BDD
    • high

      public BDD high()
      Description copied from class: BDD
      Gets the true branch of this BDD.

      Compare to bdd_high.

      Specified by:
      high in class BDD
      Returns:
      true branch of this BDD
    • id

      public BDD id()
      Description copied from class: BDD
      Identity 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.

      Specified by:
      id in class BDD
      Returns:
      copy of this BDD
    • isOne

      public boolean isOne()
      Description copied from class: BDD
      Returns true if this BDD is the one (true) BDD.
      Specified by:
      isOne in class BDD
      Returns:
      true if this BDD is the one (true) BDD
    • isUniverse

      public boolean isUniverse()
      Description copied from class: BDD
      Returns true if this BDD is the universe BDD. The universal BDD differs from the one BDD in ZDD mode.
      Overrides:
      isUniverse in class BDD
      Returns:
      true if this BDD is the universe BDD
    • isZero

      public boolean isZero()
      Description copied from class: BDD
      Returns true if this BDD is the zero (false) BDD.
      Specified by:
      isZero in class BDD
      Returns:
      true if this BDD is the zero (false) BDD
    • ite

      public BDD ite(BDD thenBDD, BDD elseBDD)
      Description copied from class: BDD
      if-then-else operator.

      Compare to bdd_ite.

      Specified by:
      ite in class BDD
      Parameters:
      thenBDD - the 'then' BDD
      elseBDD - the 'else' BDD
      Returns:
      the result of the if-then-else operator on the three BDDs
    • low

      public BDD low()
      Description copied from class: BDD
      Gets the false branch of this BDD.

      Compare to bdd_low.

      Specified by:
      low in class BDD
      Returns:
      false branch of this BDD
    • level

      public int level()
      Description copied from class: BDD
      Gets the level of this BDD.

      Compare to LEVEL() macro.

      Overrides:
      level in class BDD
      Returns:
      the level of this BDD
    • nodeCount

      public int nodeCount()
      Description copied from class: BDD
      Counts the number of distinct nodes used for this BDD.

      Compare to bdd_nodecount.

      Specified by:
      nodeCount in class BDD
      Returns:
      the number of distinct nodes used for this BDD
    • not

      public BDD not()
      Description copied from class: BDD
      Negates this BDD by exchanging all references to the zero-terminal with references to the one-terminal and vice-versa.

      Compare to bdd_not.

      Specified by:
      not in class BDD
      Returns:
      the negated BDD
    • pathCount

      public double pathCount()
      Description copied from class: BDD
      Counts the number of paths leading to the true terminal.

      Compare to bdd_pathcount.

      Specified by:
      pathCount in class BDD
      Returns:
      the number of paths leading to the true terminal
    • replace

      public BDD replace(BDDPairing pair)
      Description copied from class: BDD
      Returns 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.

      Specified by:
      replace in class BDD
      Parameters:
      pair - pairing of variables to the BDDs that replace those variables
      Returns:
      result of replace
    • replaceWith

      public BDD replaceWith(BDDPairing pair)
      Description copied from class: BDD
      Replaces 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.

      Specified by:
      replaceWith in class BDD
      Parameters:
      pair - pairing of variables to the BDDs that replace those variables
      Returns:
      result of replace
    • restrict

      public BDD restrict(BDD var)
      Description copied from class: BDD
      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.

      Note that this is quite different than Coudert and Madre's restrict function.

      Compare to bdd_restrict.

      Specified by:
      restrict in class BDD
      Parameters:
      var - BDD containing the variables to be restricted
      Returns:
      the result of the restrict operation
      See Also:
    • restrictWith

      public BDD restrictWith(BDD that)
      Description copied from class: BDD
      Mutates 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.

      Specified by:
      restrictWith in class BDD
      Parameters:
      that - BDD containing the variables to be restricted
      Returns:
      the result of the restrict operation
      See Also:
    • satCount

      public double satCount()
      Description copied from class: BDD
      Calculates the number of satisfying variable assignments.

      Compare to bdd_satcount.

      Specified by:
      satCount in class BDD
      Returns:
      the number of satisfying variable assignments
    • satOne

      public BDD satOne()
      Description copied from class: BDD
      Finds 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.

      Specified by:
      satOne in class BDD
      Returns:
      one satisfying variable assignment
    • satOne

      public BDD satOne(BDDVarSet var, boolean pol)
      Description copied from class: BDD
      Finds 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.

      Specified by:
      satOne in class BDD
      Parameters:
      var - BDDVarSet containing the set of variables that must be mentioned in the result
      pol - the polarity of the result
      Returns:
      one satisfying variable assignment
      See Also:
    • simplify

      public BDD simplify(BDD d)
      Description copied from class: BDD
      Coudert 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.

      Specified by:
      simplify in class BDD
      Parameters:
      d - BDDVarSet containing the variables in the domain
      Returns:
      the result of the simplify operation
    • support

      public BDDVarSet support()
      Description copied from class: BDD
      Returns the variable support of this BDD. The support is all the variables that this BDD depends on.

      Compare to bdd_support.

      Specified by:
      support in class BDD
      Returns:
      the variable support of this BDD
    • unique

      public BDD unique(BDDVarSet var)
      Description copied from class: BDD
      Unique 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.

      Specified by:
      unique in class BDD
      Parameters:
      var - BDDVarSet containing the variables to be uniquely quantified
      Returns:
      the result of the unique quantification
      See Also:
    • var

      public int var()
      Description copied from class: BDD
      Gets the variable labeling the BDD.

      Compare to bdd_var.

      Specified by:
      var in class BDD
      Returns:
      the index of the variable labeling the BDD
    • varProfile

      public int[] varProfile()
      Description copied from class: BDD
      Counts 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.

      Specified by:
      varProfile in class BDD
      Returns:
      the variable profile
    • veccompose

      public BDD veccompose(BDDPairing pair)
      Description copied from class: BDD
      Simultaneous 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.

      Specified by:
      veccompose in class BDD
      Parameters:
      pair - the pairing of variables to functions
      Returns:
      BDD the result of the simultaneous functional composition
    • toVarSet

      public BDDVarSet toVarSet()
      Description copied from class: BDD
      Converts 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.

      Overrides:
      toVarSet in class BDD
      Returns:
      the contents of this BDD as a new BDDVarSet
    • relnext

      public BDD relnext(BDD states, BDDVarSet vars)
      Description copied from class: BDD
      Computes the BDD that represents the set of successor states from states, i.e., the ones reachable by taking one forward step from states in states, where this BDD is the (partial) transition relation to consider. It is assumed that old-state and new-state BDD variables are interleaved in this transition relation, starting with the old-state variable, i.e., each old-state variable comes directly before its corresponding new-state variable.
      Specified by:
      relnext in class BDD
      Parameters:
      states - The BDD representing the set of states.
      vars - The BDD representing the set of variables that are relevant to consider for determining successor states. This variable set must include all variables that occur in the transition relation BDD. Moreover, for every new-state variable that is in vars, relnext considers the corresponding old-state variable to be relevant as well, regardless of whether it's included in vars or not.
      Returns:
      The BDD representing the set of successor states from states.
    • relnextIntersection

      public BDD relnextIntersection(BDD states, BDD restriction, BDDVarSet vars)
      Description copied from class: BDD
      Computes and(relnext(states, vars), restriction) as a single BDD operation.
      Specified by:
      relnextIntersection in class BDD
      Parameters:
      states - The BDD representing the set of states.
      restriction - The BDD representing the restriction to apply to the BDD representing the successor states.
      vars - The BDD representing the set of relevant variables to consider. See relnext for further details.
      Returns:
      The BDD representing the restricted set of successor states from states.
    • relprev

      public BDD relprev(BDD states, BDDVarSet vars)
      Description copied from class: BDD
      Computes the BDD that represents the set of predecessor states from states, i.e., the ones reachable by taking one backward step from states in states, where this BDD is the (partial) transition relation to consider. It is assumed that old-state and new-state BDD variables are interleaved in this transition relation, starting with the old-state variable, i.e., each old-state variable comes directly before its corresponding new-state variable.
      Specified by:
      relprev in class BDD
      Parameters:
      states - The BDD representing the set of states.
      vars - The BDD representing the set of variables that are relevant to consider for determining predecessor states. This variable set must include all variables that occur in the transition relation BDD. Moreover, for every new-state variable that is in vars, relprev considers the corresponding old-state variable to be relevant as well, regardless of whether it's included in vars or not.
      Returns:
      The BDD representing the set of predecessor states from states.
    • relprevIntersection

      public BDD relprevIntersection(BDD states, BDD restriction, BDDVarSet vars)
      Description copied from class: BDD
      Computes and(relprev(states, vars), restriction) as a single BDD operation.
      Specified by:
      relprevIntersection in class BDD
      Parameters:
      states - The BDD representing the set of states.
      restriction - The BDD representing the restriction to apply to the BDD representing the predecessor states.
      vars - The BDD representing the set of relevant variables to consider. See relprev for further details.
      Returns:
      The BDD representing the restricted set of predecessor states from states.