Browse Source

Utility method in ODDUtils for finding index of first state in a BDD.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@4676 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 14 years ago
parent
commit
2e6582c108
  1. 20
      prism/src/odd/ODDUtils.cc
  2. 19
      prism/src/odd/ODDUtils.java

20
prism/src/odd/ODDUtils.cc

@ -75,6 +75,26 @@ jclass cls
return get_num_odd_nodes();
}
//------------------------------------------------------------------------------
JNIEXPORT jint JNICALL Java_odd_ODDUtils_ODD_1GetIndexOfFirstFromDD
(
JNIEnv *env,
jclass cls,
jlong __jlongpointer dd,
jlong __jlongpointer odd,
jlong __jlongpointer vars,
jint num_vars
)
{
return get_index_of_first_from_bdd(
ddman,
jlong_to_DdNode(dd),
jlong_to_DdNode_array(vars), num_vars,
jlong_to_ODDNode(odd)
);
}
//------------------------------------------------------------------------------
// ODDNode methods
//------------------------------------------------------------------------------

19
prism/src/odd/ODDUtils.java

@ -62,8 +62,10 @@ public class ODDUtils
// JNI wrappers
//------------------------------------------------------------------------------
// build odd
private static native long ODD_BuildODD(long dd, long vars, int num_vars);
/**
* Build an ODD.
*/
public static ODDNode BuildODD(JDDNode dd, JDDVars vars)
{
return new ODDNode(
@ -71,15 +73,24 @@ public class ODDUtils
);
}
//------------------------------------------------------------------------------
// get number of nodes in odd just built
private static native int ODD_GetNumODDNodes();
/**
* Get the number of nodes in the ODD just built.
*/
public static int GetNumODDNodes()
{
return ODD_GetNumODDNodes();
}
public static native int ODD_GetIndexOfFirstFromDD(long dd, long odd, long vars, int num_vars);
/**
* Get the index of the first non-zero element of a 0-1 MTBDD, according to an ODD.
*/
public static int GetIndexOfFirstFromDD(JDDNode dd, ODDNode odd, JDDVars vars)
{
return ODD_GetIndexOfFirstFromDD(dd.ptr(), odd.ptr(), vars.array(), vars.n());
}
//------------------------------------------------------------------------------
// ODDNode methods
//------------------------------------------------------------------------------

Loading…
Cancel
Save