public class ProfiledBDD2 extends BDD
ProfiledBDD,
BDDCACHE_AND, CACHE_BIIMP, CACHE_EXISTS, CACHE_FORALL, CACHE_IMP, CACHE_NAND, CACHE_NOR, CACHE_OR, CACHE_RESTRICT, CACHE_XOR, ite_cache, last_sat_vars, nodeNames, not_cache, num_vars, oneSat_buffer, op_cache, quant_cache, quant_conj, quant_cube, quant_id, relprod_cache, replace_cache, restrict_careset, sat_cache, sign_vec, varset_last, varset_vecdead_nodes, ht_chain, mark_stack, NODE_MARK, NODE_UNMARK, nodesminfree, stat_gc_count, stat_gc_freed, stat_gc_time, stat_grow_time, stat_lookup_count, stat_notify_time, stat_nt_grow, table_size, work_stack, work_stack_tos| Constructor and Description |
|---|
ProfiledBDD2(int nodesize) |
ProfiledBDD2(int nodesize,
int cache_size) |
| Modifier and Type | Method and Description |
|---|---|
Collection |
addDebugger(BDDDebuger d)
for debugging: install a debugger.
|
int |
and(int a,
int b)
binary AND.
|
int |
biimp(int a,
int b)
binary BI-IMPLICATION (double implication, equivalence, whatever...).
|
Permutation |
createPermutation(int[] cube_from,
int[] cube_to)
create a Permutation vector for a given variable permutation.
A permutation is used by replace to re-label nodes in a BDD. NOTE: the from and to-cubes must not overlap! |
int |
exists(int a,
int b)
binary EXISTS, existential quantification.
Let exists(bdd, variable) to be bdd(variable) OR bdd(NOT variable). |
int |
forall(int a,
int b)
binary FOR-ALL, universal quantification.
Let forall(bdd, variable) to be bdd(variable) AND bdd(NOT variable). |
int |
imp(int a,
int b)
binary implication.
|
int |
ite(int a,
int b,
int c)
this is the If-Then-Else BDD function.
it can be used to (inefficiently) simulate and binary operation. (i think it is described in the "Long" paper). |
int |
nand(int a,
int b)
binary NAND.
|
int |
nor(int a,
int b)
binary NOR.
|
int |
not(int a)
binary NOT.
|
int |
or(int a,
int b)
binary OR.
|
int |
relProd(int a,
int b,
int c)
This is the relational-product of Clarke et al..
It combines a conjunction and existential quantification that is often seen in image computation: EXISTS c. |
int |
replace(int a,
Permutation b)
Given a permutation, this function will re-label (some) nodes in a BDD
to associate with a new sets of variables.
|
void |
report(String what,
long count,
long time) |
int |
restrict(int a,
int b)
The BDD restrict operation.
|
double |
satCount(int a)
returns the number of satisfying assignments for this BDD.
|
void |
showStats()
show some statistics ...
|
int |
simplify(int a,
int b)
The BDD simplification operation.
|
int |
support(int a)
returns the support set of a variable, that is a cube C where each of its variables
are used somewhere in the ibpu bdd.
|
int |
xor(int a,
int b)
binary XOR.
|
andTo, cleanup, createVar, cube, cube, getMemoryUsage, getOne, getZero, internal_test, isVariable, member, minterm, minterm, mk, nodeCount, numberOfVariables, oneSat_rec, oneSat, oneSat, orTo, post_removal_callbak, print, printCubes, printDot, printSet, quasiReducedNodeCount, satCount_rec, setNodeNamesadd, check_all_nodes, check_node, countRootNodes, deref, enableStackMarking, gc, getHigh, getLow, getRef, getVar, getVarUnmasked, grow, invalidate, isNodeMarked, isValid, mark_node, mark_tree, match_table, ref, saturate, setAll, setAll, show_table_all, show_table, show_tuple, signal_removed, tree_depth_changed, unmark_node, unmark_tree, update_grow_parameterspublic ProfiledBDD2(int nodesize)
public ProfiledBDD2(int nodesize,
int cache_size)
public Collection addDebugger(BDDDebuger d)
NodeTableaddDebugger in class NodeTablepublic int and(int a,
int b)
BDDand in class BDDBDD.or(int, int)public int or(int a,
int b)
BDDor in class BDDBDD.and(int, int)public int xor(int a,
int b)
BDDxor in class BDDBDD.biimp(int, int)public int biimp(int a,
int b)
BDDbiimp in class BDDBDD.xor(int, int)public int imp(int a,
int b)
BDDpublic int nor(int a,
int b)
BDDnor in class BDDBDD.nand(int, int)public int nand(int a,
int b)
BDDnand in class BDDBDD.nor(int, int)public int not(int a)
BDDpublic int replace(int a,
Permutation b)
BDDreplace in class BDDPermutation,
BDD.createPermutation(int[], int[])public int exists(int a,
int b)
BDDexists in class BDDBDD.forall(int, int)public int forall(int a,
int b)
BDDforall in class BDDBDD.exists(int, int)public int relProd(int a,
int b,
int c)
BDDpublic int support(int a)
BDDreturns the support set of a variable, that is a cube C where each of its variables are used somewhere in the ibpu bdd.
public int restrict(int a,
int b)
BDDrestrict in class BDDBDD.simplify(int, int)public int simplify(int a,
int b)
BDDsimplify in class BDDBDD.restrict(int, int)public int ite(int a,
int b,
int c)
BDDpublic double satCount(int a)
BDDImportant note: this works becuase getVar() returns "numbers of variables plus one" for the terminal nodes!
public Permutation createPermutation(int[] cube_from, int[] cube_to)
BDDcreatePermutation in class BDDPermutation,
BDD.replace(int, jdd.bdd.Permutation)public void report(String what, long count, long time)
This file is a part of the JDD package, a native Java Binary Decision Diagram Library.