[PPL-devel] [GIT] ppl/ppl(master): Added Box method has_{upper, lower}_bound to Java language interface.

Enea Zaffanella zaffanella at cs.unipr.it
Mon Mar 19 17:49:14 CET 2012


Module: ppl/ppl
Branch: master
Commit: 1efe14de85745fad6e00f32f4c74d3f2e0dc0d74
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=1efe14de85745fad6e00f32f4c74d3f2e0dc0d74

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Mon Mar 19 10:52:36 2012 +0100

Added Box method has_{upper,lower}_bound to Java language interface.

---

 ...ppl_interface_generator_java_classes_cc_code.m4 |   30 ++++++++++++++++++++
 ...l_interface_generator_java_classes_java_code.m4 |   10 ++++++
 .../ppl_interface_generator_java_test_java_code.m4 |   13 ++++++++
 3 files changed, 53 insertions(+), 0 deletions(-)

diff --git a/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4 b/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4
index ea90b5e..8dd0863 100644
--- a/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4
+++ b/interfaces/Java/jni/ppl_interface_generator_java_classes_cc_code.m4
@@ -511,6 +511,36 @@ Java_parma_1polyhedra_1library_ at 1CLASS@_bounds_1from_1 at 1ABOVEBELOW@
 
 ')
 
+m4_define(`ppl_ at CLASS@_has_ at UPPERLOWER@_bound_code',
+`dnl
+JNIEXPORT jboolean JNICALL
+Java_parma_1polyhedra_1library_ at 1CLASS@_has_1 at UPPERLOWER@_1bound
+(JNIEnv* env, jobject j_this, jobject j_var,
+ jobject j_ref_boolean, jobject j_num, jobject j_den) {
+  try {
+    @CPP_CLASS@* this_ptr
+      = reinterpret_cast<@CPP_CLASS@*>(get_ptr(env, j_this));
+    PPL_DIRTY_TEMP_COEFFICIENT(num);
+    PPL_DIRTY_TEMP_COEFFICIENT(den);
+    num = build_cxx_coeff(env, j_num);
+    den = build_cxx_coeff(env, j_den);
+    Variable v = build_cxx_variable(env, j_var);
+    bool b_value;
+    if (this_ptr->has_ at UPPERLOWER@_bound(v.id(), b_value, num, den)) {
+      set_coefficient(env, j_num, build_java_coeff(env, num));
+      set_coefficient(env, j_den, build_java_coeff(env, den));
+      jobject j_boolean = bool_to_j_boolean_class(env, b_value);
+      set_by_reference(env, j_ref_boolean, j_boolean);
+      return true;
+    }
+    return false;
+  }
+  CATCH_ALL;
+  return false;
+}
+
+')
+
 m4_define(`ppl_ at CLASS@_ at MAXMIN@_code',
 `dnl
 JNIEXPORT jboolean JNICALL
diff --git a/interfaces/Java/parma_polyhedra_library/ppl_interface_generator_java_classes_java_code.m4 b/interfaces/Java/parma_polyhedra_library/ppl_interface_generator_java_classes_java_code.m4
index 17c8d05..ce7baf5 100644
--- a/interfaces/Java/parma_polyhedra_library/ppl_interface_generator_java_classes_java_code.m4
+++ b/interfaces/Java/parma_polyhedra_library/ppl_interface_generator_java_classes_java_code.m4
@@ -216,6 +216,16 @@ ___BEGIN_OF_FILE___ @CLASS at .java << ___END_OF_FILE___
 
 ')
 
+m4_define(`ppl_ at CLASS@_has_ at UPPERLOWER@_bound_code',
+`dnl
+___END_OF_FILE___
+___BEGIN_OF_FILE___ @CLASS at .java << ___END_OF_FILE___
+    public native boolean has_ at UPPERLOWER@_bound(Variable var,
+				   By_Reference<Boolean> closed,
+				   Coefficient bound_n, Coefficient bound_d);
+
+')
+
 m4_define(`ppl_ at CLASS@_ at MAXMIN@_code',
 `dnl
 ___END_OF_FILE___
diff --git a/interfaces/Java/tests/ppl_interface_generator_java_test_java_code.m4 b/interfaces/Java/tests/ppl_interface_generator_java_test_java_code.m4
index dc71a8f..8de4f34 100644
--- a/interfaces/Java/tests/ppl_interface_generator_java_test_java_code.m4
+++ b/interfaces/Java/tests/ppl_interface_generator_java_test_java_code.m4
@@ -480,6 +480,19 @@ m4_define(`ppl_ at CLASS@_constrains_code',
 
 ')
 
+m4_define(`ppl_ at CLASS@_has_ at UPPERLOWER@_bound_code',
+    `dnl
+{
+    PPL_Test.print_if_noisy("Testing has_ at UPPERLOWER@_bound: ");
+    @TOPOLOGY@@CLASS@ gd = new @TOPOLOGY@@CLASS@(@CONSTRAINER at s1);
+    boolean has_ at UPPERLOWER@
+        = gd.has_ at UPPERLOWER@_bound(var_C, bool_by_ref1, coeff_0, coeff_5);
+    report_success_or_failure(gd.OK());
+    gd.free();
+}
+
+')
+
 m4_define(`ppl_ at CLASS@_ at MAXMIN@_code',
     `dnl
 {




More information about the PPL-devel mailing list