[PPL-devel] [GIT] ppl/ppl(master): Added C interface 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: dd86d85a455e91d89bf957e343e49ce7eb4a32b2
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=dd86d85a455e91d89bf957e343e49ce7eb4a32b2

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

Added C interface for frequency().
Moved generator to language independent file.

---

 interfaces/C/ppl_interface_generator_c_cc_code.m4  |   21 ++++++++++++++++++++
 interfaces/C/ppl_interface_generator_c_h_code.m4   |   13 ++++++++++++
 ...nterface_generator_java_procedure_generators.m4 |    1 -
 ...terface_generator_ocaml_procedure_generators.m4 |    1 -
 ...erface_generator_prolog_procedure_generators.m4 |    1 -
 ...erface_generator_common_procedure_generators.m4 |    1 +
 6 files changed, 35 insertions(+), 3 deletions(-)

diff --git a/interfaces/C/ppl_interface_generator_c_cc_code.m4 b/interfaces/C/ppl_interface_generator_c_cc_code.m4
index 3cef2d7..076ee2f 100644
--- a/interfaces/C/ppl_interface_generator_c_cc_code.m4
+++ b/interfaces/C/ppl_interface_generator_c_cc_code.m4
@@ -258,6 +258,27 @@ CATCH_ALL
 
 ')
 
+m4_define(`ppl_ at CLASS@_frequency_code',
+`int
+ppl_ at CLASS@_frequency
+(ppl_const_ at CLASS@_t ph,
+ ppl_const_Linear_Expression_t le,
+ ppl_Coefficient_t freq_n,
+ ppl_Coefficient_t freq_d,
+ ppl_Coefficient_t val_n,
+ ppl_Coefficient_t val_d) try {
+  const @CPP_CLASS@& pph = *to_const(ph);
+  const Linear_Expression& lle = *to_const(le);
+  Coefficient& pfreq_n = *to_nonconst(freq_n);
+  Coefficient& pfreq_d = *to_nonconst(freq_d);
+  Coefficient& pval_n = *to_nonconst(val_n);
+  Coefficient& pval_d = *to_nonconst(val_d);
+  return pph.frequency(lle, pfreq_n, pfreq_d, pval_n, pval_d);
+}
+CATCH_ALL
+
+')
+
 m4_define(`ppl_ at CLASS@_ at COMPARISON@_ at CLASS@_code',
 `int
 ppl_ at CLASS@_ at COMPARISON@_ at CLASS@
diff --git a/interfaces/C/ppl_interface_generator_c_h_code.m4 b/interfaces/C/ppl_interface_generator_c_h_code.m4
index c793a5e..90f17ec 100644
--- a/interfaces/C/ppl_interface_generator_c_h_code.m4
+++ b/interfaces/C/ppl_interface_generator_c_h_code.m4
@@ -256,6 +256,19 @@ PPL_PROTO((ppl_const_ at CLASS@_t ph,
 
 ')
 
+m4_define(`ppl_ at CLASS@_frequency_code',
+`/*! \relates ppl_ at CLASS@_tag */
+int
+ppl_ at CLASS@_frequency
+PPL_PROTO((ppl_const_ at CLASS@_t ph,
+           ppl_const_Linear_Expression_t le,
+           ppl_Coefficient_t ext_fn,
+           ppl_Coefficient_t ext_fd,
+           ppl_Coefficient_t ext_vn,
+           ppl_Coefficient_t ext_vd));
+
+')
+
 m4_define(`ppl_ at CLASS@_ at COMPARISON@_ at CLASS@_code',
 `/*! \relates ppl_ at CLASS@_tag */
 int
diff --git a/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4 b/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4
index 4f6482b..62d1dc4 100644
--- a/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4
+++ b/interfaces/Java/ppl_interface_generator_java_procedure_generators.m4
@@ -43,7 +43,6 @@ 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,
diff --git a/interfaces/OCaml/ppl_interface_generator_ocaml_procedure_generators.m4 b/interfaces/OCaml/ppl_interface_generator_ocaml_procedure_generators.m4
index aec7ed4..8b8ff38 100644
--- a/interfaces/OCaml/ppl_interface_generator_ocaml_procedure_generators.m4
+++ b/interfaces/OCaml/ppl_interface_generator_ocaml_procedure_generators.m4
@@ -43,7 +43,6 @@ dnl
 m4_define(`m4_procedure_list',
   `m4_echo_unquoted(ppl_new_ at CLASS@_iterator +pointset_powerset,
 `m4_common_procedure_list',
-ppl_ at CLASS@_frequency/6 +simple,
 ppl_termination_test_ at TERMINATION_ID@_ at TOPOLOGY@@CLASS@ +simple,
 ppl_one_affine_ranking_function_ at TERMINATION_ID@_ at TOPOLOGY@@CLASS@ +simple,
 ppl_all_affine_ranking_functions_ at TERMINATION_ID@_ at TOPOLOGY@@CLASS@ +simple,
diff --git a/interfaces/Prolog/ppl_interface_generator_prolog_procedure_generators.m4 b/interfaces/Prolog/ppl_interface_generator_prolog_procedure_generators.m4
index 9e99852..685844f 100644
--- a/interfaces/Prolog/ppl_interface_generator_prolog_procedure_generators.m4
+++ b/interfaces/Prolog/ppl_interface_generator_prolog_procedure_generators.m4
@@ -87,7 +87,6 @@ ppl_MIP_Problem_ascii_dump/1`'dnl
 
 m4_define(`m4_procedure_list',
   `m4_echo_unquoted(`m4_common_procedure_list',
-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,
diff --git a/interfaces/ppl_interface_generator_common_procedure_generators.m4 b/interfaces/ppl_interface_generator_common_procedure_generators.m4
index 5e5473d..a9be300 100644
--- a/interfaces/ppl_interface_generator_common_procedure_generators.m4
+++ b/interfaces/ppl_interface_generator_common_procedure_generators.m4
@@ -64,6 +64,7 @@ ppl_ at CLASS@_ at SIMPLIFY@/1 *nofail +all,
 ppl_ at CLASS@_bounds_from_ at ABOVEBELOW@/2 +all,
 ppl_ at CLASS@_ at MAXMIN@/5 +all,
 ppl_ at CLASS@_ at MAXMIN@_with_point/6 +all,
+ppl_ at CLASS@_frequency/6 +simple,
 ppl_ at CLASS@_ at COMPARISON@_ at CLASS@/2 +all,
 ppl_ at CLASS@_equals_ at CLASS@/2 +all,
 ppl_ at CLASS@_OK/1 +all,




More information about the PPL-devel mailing list