[PPL-devel] [GIT] ppl/ppl(master): Added Java interface method for frequency().

Patricia Hill p.m.hill at leeds.ac.uk
Wed Mar 24 10:39:14 CET 2010


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

Author: Patricia Hill <p.m.hill at leeds.ac.uk>
Date:   Wed Mar 24 09:24:00 2010 +0000

Added Java interface method for frequency().

---

 ...ppl_interface_generator_java_classes_cc_code.m4 |   33 ++++++++++++++++++++
 ...l_interface_generator_java_classes_java_code.m4 |   10 ++++++
 ...nterface_generator_java_procedure_generators.m4 |    1 +
 3 files changed, 44 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 8714619..7b9e995 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
@@ -573,6 +573,39 @@ Java_parma_1polyhedra_1library_ at 1CLASS@_ at 1MAXMIN@__Lparma_1polyhedra_1library_Li
 
 ')
 
+m4_define(`ppl_ at CLASS@_frequency_code',
+`dnl
+JNIEXPORT jboolean JNICALL
+Java_parma_1polyhedra_1library_ at 1CLASS@_1frequency__Lparma_1polyhedra_1library_Linear_1Expression_2Lparma_1polyhedra_1library_Coefficient_2Lparma_1polyhedra_1library_Coefficient_2Lparma_1polyhedra_1library_Coefficient_2Lparma_1polyhedra_1library_Coefficient_2
+(JNIEnv* env, jobject j_this, jobject j_le,
+ jobject j_freqn, jobject j_freqd, jobject j_valn, jobject j_vald) {
+  try {
+    @CPP_CLASS@* this_ptr
+      = reinterpret_cast<@CPP_CLASS@*>(get_ptr(env, j_this));
+    PPL_DIRTY_TEMP_COEFFICIENT(freqn);
+    PPL_DIRTY_TEMP_COEFFICIENT(freqd);
+    PPL_DIRTY_TEMP_COEFFICIENT(valn);
+    PPL_DIRTY_TEMP_COEFFICIENT(vald);
+    freqn = build_cxx_coeff(env, j_freqn);
+    freqd = build_cxx_coeff(env, j_freqd);
+    valn = build_cxx_coeff(env, j_valn);
+    vald = build_cxx_coeff(env, j_vald);
+    Linear_Expression le = build_cxx_linear_expression(env, j_le);
+    if (this_ptr->frequency(le, freqn, freqd, valn, vald)) {
+      set_coefficient(env, j_freqn, build_java_coeff(env, freqn));
+      set_coefficient(env, j_freqd, build_java_coeff(env, freqd));
+      set_coefficient(env, j_valn, build_java_coeff(env, valn));
+      set_coefficient(env, j_vald, build_java_coeff(env, vald));
+      return true;
+    }
+    return false;
+  }
+  CATCH_ALL;
+  return false;
+}
+
+')
+
 m4_define(`ppl_ at CLASS@_ at COMPARISON@_ at CLASS@_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 e83cada..13fd26b 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
@@ -236,6 +236,16 @@ ___BEGIN_OF_FILE___ @CLASS at .java << ___END_OF_FILE___
 
 ')
 
+m4_define(`ppl_ at CLASS@_frequency_code',
+`dnl
+___END_OF_FILE___
+___BEGIN_OF_FILE___ @CLASS at .java << ___END_OF_FILE___
+    public native boolean frequency(Linear_Expression expr,
+				   Coefficient freq_n, Coefficient freq_d,
+				   Coefficient val_n, Coefficient val_d);
+
+')
+
 m4_define(`ppl_ at CLASS@_ at COMPARISON@_ at CLASS@_code',
 `dnl
 ___END_OF_FILE___
diff --git a/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4 b/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4
index 62d1dc4..4f6482b 100644
--- a/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4
+++ b/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4
@@ -43,6 +43,7 @@ m4_define(`m4_procedure_list',
 ppl_free_ at CLASS@/1 +all,
 ppl_ at CLASS@_hashcode/2 +all -box,
 ppl_ at CLASS@_string/1 +all,
+ppl_ at CLASS@_frequency/6 +simple,
 ppl_termination_test_ at TERMINATION_ID@_ at TOPOLOGY@@CLASS@/1 +simple,
 ppl_one_affine_ranking_function_ at TERMINATION_ID@_ at TOPOLOGY@@CLASS@/2 +simple,
 ppl_all_affine_ranking_functions_ at TERMINATION_ID@_ at TOPOLOGY@@CLASS@/2 +simple,




More information about the PPL-devel mailing list