| Modifier and Type | Field and Description |
|---|---|
protected int |
dead_nodes |
protected long |
ht_chain |
protected int[] |
mark_stack |
static int |
NODE_MARK
used to mark/unmark BDD nodes
|
static int |
NODE_UNMARK
used to mark/unmark BDD nodes
|
protected int |
nodesminfree |
protected int |
stat_gc_count
if true, we will use the faster version of mark_tree()
|
protected long |
stat_gc_freed |
protected long |
stat_gc_time |
protected long |
stat_grow_time |
protected int |
stat_lookup_count
if true, we will use the faster version of mark_tree()
|
protected long |
stat_notify_time |
protected int |
stat_nt_grow |
protected int |
table_size |
protected int[] |
work_stack |
protected int |
work_stack_tos |
| Constructor and Description |
|---|
NodeTable(int nodesize) |
| Modifier and Type | Method and Description |
|---|---|
int |
add(int v,
int l,
int h) |
Collection |
addDebugger(BDDDebuger d)
for debugging: install a debugger.
|
void |
check_all_nodes()
check if all nodes are ok.
|
void |
check_node(int node,
String str)
check if some node is ok.
|
void |
cleanup() |
int |
countRootNodes()
count the number of ROOT bdd nodes.
|
int |
deref(int bdd)
decrease the reference-count of this BDD once.
|
void |
enableStackMarking()
call this functio to enable the fast variant of the mark_node() function.
|
int |
gc()
do a garbage collection.
|
int |
getHigh(int bdd) |
int |
getLow(int bdd) |
long |
getMemoryUsage() |
short |
getRef(int bdd)
get the number of references to this BDD.
|
int |
getVar(int bdd) |
protected int |
getVarUnmasked(int bdd)
return the associated variable.
|
protected void |
grow()
grow is called when we need more nodes in the table.
|
static void |
internal_test()
testbench.
|
protected void |
invalidate(int bdd)
make the node invalid
|
boolean |
isNodeMarked(int bdd) |
boolean |
isValid(int bdd)
returns true if this bdd is a valid bdd
|
void |
mark_node(int bdd) |
void |
mark_tree(int bdd)
recursively mark nodes, used by some internal functions.
|
protected boolean |
match_table(int bdd,
int var,
int low,
int high)
returns true of the bdd bdd is the same as (var,low,high)
|
protected void |
post_removal_callbak()
this function is called when something in the node table is changed (GC or grow).
|
int |
ref(int bdd)
increase the reference-count of this BDD once
|
void |
saturate(int bdd)
set the reference-count of this BDD to max.
|
protected void |
setAll(int bdd,
int v,
int l,
int h) |
protected void |
setAll(int bdd,
int v,
int l,
int h,
short r) |
protected void |
show_table_all() |
protected void |
show_table() |
protected void |
show_tuple(int i) |
void |
showStats()
show some statistics ...
|
protected void |
signal_removed() |
protected void |
tree_depth_changed(int n)
this function MUST be called when a paramater that may change the tree dpeth
(such as the number of variables in a BDD) has changed!
|
void |
unmark_node(int bdd) |
void |
unmark_tree(int bdd)
recursively unmark nodes, used by some internal functions
|
protected void |
update_grow_parameters()
this is called when the table ha grown and we might need to
update some internal parameters
|
public static final int NODE_MARK
public static final int NODE_UNMARK
protected int table_size
protected int stat_nt_grow
protected int dead_nodes
protected int nodesminfree
protected int stat_gc_count
protected int stat_lookup_count
protected long stat_gc_freed
protected long stat_gc_time
protected long stat_grow_time
protected long stat_notify_time
protected int[] work_stack
protected int[] mark_stack
protected int work_stack_tos
protected long ht_chain
public void cleanup()
protected void tree_depth_changed(int n)
protected void post_removal_callbak()
sub-classes must "implement" this function for, for example, flushing caches since it signals that something important has been changed and old data might have become invalid.
protected final void signal_removed()
public int gc()
protected void grow()
public int add(int v,
int l,
int h)
public Collection addDebugger(BDDDebuger d)
protected void update_grow_parameters()
public final int ref(int bdd)
public final int deref(int bdd)
public final void saturate(int bdd)
DO NOT USE, unless you know what you are doing (note: you probably don't).
public final short getRef(int bdd)
public final int getVar(int bdd)
public final int getLow(int bdd)
public final int getHigh(int bdd)
protected final int getVarUnmasked(int bdd)
public final boolean isValid(int bdd)
protected final void invalidate(int bdd)
protected final void setAll(int bdd,
int v,
int l,
int h,
short r)
protected final void setAll(int bdd,
int v,
int l,
int h)
protected final boolean match_table(int bdd,
int var,
int low,
int high)
public void enableStackMarking()
tree_depth_changed(int)public final void mark_tree(int bdd)
mark_node(int)public final void unmark_tree(int bdd)
public final void mark_node(int bdd)
public final void unmark_node(int bdd)
public final boolean isNodeMarked(int bdd)
public long getMemoryUsage()
public int countRootNodes()
protected void show_tuple(int i)
protected void show_table()
protected void show_table_all()
public void showStats()
public void check_all_nodes()
public void check_node(int node,
String str)
public static void internal_test()
This file is a part of the JDD package, a native Java Binary Decision Diagram Library.