Browse Source

Utility method in ODDUtils for converting state index to BDD (already existed at C++ level).

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@4681 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 14 years ago
parent
commit
4a8285eec7
  1. 8
      prism/include/ODDUtils.h
  2. 22
      prism/src/odd/ODDUtils.cc
  3. 9
      prism/src/odd/ODDUtils.java

8
prism/include/ODDUtils.h

@ -39,6 +39,14 @@ JNIEXPORT jint JNICALL Java_odd_ODDUtils_ODD_1GetNumODDNodes
JNIEXPORT jint JNICALL Java_odd_ODDUtils_ODD_1GetIndexOfFirstFromDD
(JNIEnv *, jclass, jlong, jlong, jlong, jint);
/*
* Class: odd_ODDUtils
* Method: ODD_SingleIndexToDD
* Signature: (IJJI)J
*/
JNIEXPORT jlong JNICALL Java_odd_ODDUtils_ODD_1SingleIndexToDD
(JNIEnv *, jclass, jint, jlong, jlong, jint);
/*
* Class: odd_ODDUtils
* Method: ODD_GetTOff

22
prism/src/odd/ODDUtils.cc

@ -95,6 +95,28 @@ jint num_vars
);
}
//------------------------------------------------------------------------------
JNIEXPORT jlong __jlongpointer JNICALL Java_odd_ODDUtils_ODD_1SingleIndexToDD
(
JNIEnv *env,
jclass cls,
jint i,
jlong __jlongpointer odd,
jlong __jlongpointer vars,
jint num_vars
)
{
return ptr_to_jlong(
single_index_to_bdd(
ddman,
i,
jlong_to_DdNode_array(vars), num_vars,
jlong_to_ODDNode(odd)
)
);
}
//------------------------------------------------------------------------------
// ODDNode methods
//------------------------------------------------------------------------------

9
prism/src/odd/ODDUtils.java

@ -91,6 +91,15 @@ public class ODDUtils
return ODD_GetIndexOfFirstFromDD(dd.ptr(), odd.ptr(), vars.array(), vars.n());
}
public static native long ODD_SingleIndexToDD(int i, long odd, long vars, int num_vars);
/**
* Convert a state index to a 0-1 MTBDD representing it, according to an ODD.
*/
public static JDDNode SingleIndexToDD(int i, ODDNode odd, JDDVars vars)
{
return new JDDNode(ODD_SingleIndexToDD(i, odd.ptr(), vars.array(), vars.n()));
}
//------------------------------------------------------------------------------
// ODDNode methods
//------------------------------------------------------------------------------

Loading…
Cancel
Save