projects
/
satune.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
3a614d0
)
Adding incremental to Java, C, and python APIs
author
Hamed Gorjiara
<hgorjiar@uci.edu>
Fri, 14 Jun 2019 22:17:24 +0000
(15:17 -0700)
committer
Hamed Gorjiara
<hgorjiar@uci.edu>
Fri, 14 Jun 2019 22:17:24 +0000
(15:17 -0700)
src/ccsolver.cc
patch
|
blob
|
history
src/ccsolver.h
patch
|
blob
|
history
src/pycsolver.py
patch
|
blob
|
history
src/satune_SatuneJavaAPI.cc
patch
|
blob
|
history
src/satune_SatuneJavaAPI.h
patch
|
blob
|
history
diff --git
a/src/ccsolver.cc
b/src/ccsolver.cc
index fa2e3426211b50e34f786e506e865307d3aa2d04..ca206174148a35bccd80682a8231b015176036cb 100644
(file)
--- a/
src/ccsolver.cc
+++ b/
src/ccsolver.cc
@@
-146,10
+146,18
@@
int solve(void *solver) {
return CCSOLVER(solver)->solve();
}
return CCSOLVER(solver)->solve();
}
+int solveIncremental(void *solver) {
+ return CCSOLVER(solver)->solveIncremental();
+}
+
long getElementValue(void *solver,void *element) {
return (long) CCSOLVER(solver)->getElementValue((Element *)element);
}
long getElementValue(void *solver,void *element) {
return (long) CCSOLVER(solver)->getElementValue((Element *)element);
}
+void freezeElement(void *solver,void *element) {
+ CCSOLVER(solver)->freezeElement((Element *)element);
+}
+
int getBooleanValue(void *solver, void *boolean) {
return CCSOLVER(solver)->getBooleanValue(BooleanEdge((Boolean *) boolean));
}
int getBooleanValue(void *solver, void *boolean) {
return CCSOLVER(solver)->getBooleanValue(BooleanEdge((Boolean *) boolean));
}
diff --git
a/src/ccsolver.h
b/src/ccsolver.h
index 86d5a46374541cf88c6f1bd77fc643aedde6e826..091303fb18540a420da62aaac0c8ad1f632489e3 100644
(file)
--- a/
src/ccsolver.h
+++ b/
src/ccsolver.h
@@
-40,7
+40,9
@@
void printConstraint(void *solver,void *constraint);
void *createOrder(void *solver,unsigned int type, void *set);
void *orderConstraint(void *solver,void *order, long first, long second);
int solve(void *solver);
void *createOrder(void *solver,unsigned int type, void *set);
void *orderConstraint(void *solver,void *order, long first, long second);
int solve(void *solver);
+int solveIncremental(void *solver);
long getElementValue(void *solver,void *element);
long getElementValue(void *solver,void *element);
+void freezeElement(void *solver,void *element);
int getBooleanValue(void *solver,void *boolean);
int getOrderConstraintValue(void *solver,void *order, long first, long second);
void printConstraints(void *solver);
int getBooleanValue(void *solver,void *boolean);
int getOrderConstraintValue(void *solver,void *order, long first, long second);
void printConstraints(void *solver);
diff --git
a/src/pycsolver.py
b/src/pycsolver.py
index 461a8590b74f845c48f68e36079b6a4a108d8c89..905d1d775a8fd25b99a947e77d67b8d8d010b66d 100644
(file)
--- a/
src/pycsolver.py
+++ b/
src/pycsolver.py
@@
-101,10
+101,14
@@
def loadCSolver():
csolverlb.orderConstraint.restype = c_void_p
csolverlb.solve.argtypes = [c_void_p]
csolverlb.solve.restype = c_int
csolverlb.orderConstraint.restype = c_void_p
csolverlb.solve.argtypes = [c_void_p]
csolverlb.solve.restype = c_int
+ csolverlb.solveIncremental.argtypes = [c_void_p]
+ csolverlb.solveIncremental.restype = c_int
csolverlb.mustHaveValue.argtypes = [c_void_p, c_void_p]
csolverlb.mustHaveValue.restype = c_void_p
csolverlb.getElementValue.argtypes = [c_void_p, c_void_p]
csolverlb.mustHaveValue.argtypes = [c_void_p, c_void_p]
csolverlb.mustHaveValue.restype = c_void_p
csolverlb.getElementValue.argtypes = [c_void_p, c_void_p]
- csolverlb.getElementValue.restype = c_long
+ csolverlb.getElementValue.restype = c_void_p
+ csolverlb.freezeElement.argtypes = [c_void_p, c_void_p]
+ csolverlb.freezeElement.restype = c_long
csolverlb.getBooleanValue.argtypes = [c_void_p, c_void_p]
csolverlb.getBooleanValue.restype = c_int
csolverlb.getOrderConstraintValue.argtypes = [c_void_p, c_void_p, c_long, c_long]
csolverlb.getBooleanValue.argtypes = [c_void_p, c_void_p]
csolverlb.getBooleanValue.restype = c_int
csolverlb.getOrderConstraintValue.argtypes = [c_void_p, c_void_p, c_long, c_long]
diff --git
a/src/satune_SatuneJavaAPI.cc
b/src/satune_SatuneJavaAPI.cc
index 21cd504ff5f00029cff1c7ef6041496c97b7dcf0..d1397ee88e7ebe7be39cb2a98260c30bff990eb6 100644
(file)
--- a/
src/satune_SatuneJavaAPI.cc
+++ b/
src/satune_SatuneJavaAPI.cc
@@
-391,6
+391,17
@@
JNIEXPORT jint JNICALL Java_satune_SatuneJavaAPI_solve
return (jint) solve((void *)solver);
}
return (jint) solve((void *)solver);
}
+/*
+ * Class: SatuneJavaAPI
+ * Method: solveIncremental
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_satune_SatuneJavaAPI_solveIncremental
+ (JNIEnv *env, jobject obj, jlong solver)
+{
+ return (jint) solveIncremental((void *)solver);
+}
+
/*
* Class: SatuneJavaAPI
* Method: getElementValue
/*
* Class: SatuneJavaAPI
* Method: getElementValue
@@
-402,6
+413,17
@@
JNIEXPORT jlong JNICALL Java_satune_SatuneJavaAPI_getElementValue
return (jlong) getElementValue((void *)solver,(void *)element);
}
return (jlong) getElementValue((void *)solver,(void *)element);
}
+/*
+ * Class: SatuneJavaAPI
+ * Method: freezeElement
+ * Signature: (JJ)J
+ */
+JNIEXPORT void JNICALL Java_satune_SatuneJavaAPI_freezeElement
+ (JNIEnv *env, jobject obj, jlong solver, jlong element)
+{
+ freezeElement((void *)solver,(void *)element);
+}
+
/*
* Class: SatuneJavaAPI
* Method: getBooleanValue
/*
* Class: SatuneJavaAPI
* Method: getBooleanValue
diff --git
a/src/satune_SatuneJavaAPI.h
b/src/satune_SatuneJavaAPI.h
index 68703bcbf8b55f7bb0b5239fb3ec38348e2abb71..7b301f96ba3c7b2703b6017ee08a8e9e1c98a7b8 100644
(file)
--- a/
src/satune_SatuneJavaAPI.h
+++ b/
src/satune_SatuneJavaAPI.h
@@
-280,6
+280,14
@@
JNIEXPORT jlong JNICALL Java_satune_SatuneJavaAPI_orderConstraint
JNIEXPORT jint JNICALL Java_satune_SatuneJavaAPI_solve
(JNIEnv *, jobject, jlong);
JNIEXPORT jint JNICALL Java_satune_SatuneJavaAPI_solve
(JNIEnv *, jobject, jlong);
+/*
+ * Class: satune_SatuneJavaAPI
+ * Method: solveIncremental
+ * Signature: (J)I
+ */
+JNIEXPORT jint JNICALL Java_satune_SatuneJavaAPI_solveIncremental
+ (JNIEnv *, jobject, jlong);
+
/*
* Class: satune_SatuneJavaAPI
* Method: getElementValue
/*
* Class: satune_SatuneJavaAPI
* Method: getElementValue
@@
-288,6
+296,15
@@
JNIEXPORT jint JNICALL Java_satune_SatuneJavaAPI_solve
JNIEXPORT jlong JNICALL Java_satune_SatuneJavaAPI_getElementValue
(JNIEnv *, jobject, jlong, jlong);
JNIEXPORT jlong JNICALL Java_satune_SatuneJavaAPI_getElementValue
(JNIEnv *, jobject, jlong, jlong);
+
+/*
+ * Class: satune_SatuneJavaAPI
+ * Method: getElementValue
+ * Signature: (JJ)J
+ */
+JNIEXPORT void JNICALL Java_satune_SatuneJavaAPI_freezeElement
+ (JNIEnv *, jobject, jlong, jlong);
+
/*
* Class: satune_SatuneJavaAPI
* Method: getBooleanValue
/*
* Class: satune_SatuneJavaAPI
* Method: getBooleanValue