[PPL-devel] [GIT] ppl/ppl(pip): Added increment, dereference and equal functions
Patricia Hill
p.m.hill at leeds.ac.uk
Sat Oct 24 18:36:17 CEST 2009
Module: ppl/ppl
Branch: pip
Commit: 65ebba9954ea5539339c264d4a20493002d31607
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=65ebba9954ea5539339c264d4a20493002d31607
Author: Patricia Hill <p.m.hill at leeds.ac.uk>
Date: Sat Oct 24 17:34:19 2009 +0100
Added increment, dereference and equal functions
for ppl_Artificial_Parameter_Sequence_const_iterator_t's
Fixed a couple of bugs.
---
interfaces/C/ppl_c_header.h | 31 +++++++++++++++++++++++++-
interfaces/C/ppl_c_implementation_common.cc | 30 ++++++++++++++++++++++++++
interfaces/C/tests/pip_test.c | 2 +-
3 files changed, 60 insertions(+), 3 deletions(-)
diff --git a/interfaces/C/ppl_c_header.h b/interfaces/C/ppl_c_header.h
index 8dc92be..065ef0a 100644
--- a/interfaces/C/ppl_c_header.h
+++ b/interfaces/C/ppl_c_header.h
@@ -2780,7 +2780,7 @@ ppl_PIP_Problem_solve PPL_PROTO((ppl_const_PIP_Problem_t pip));
Thrown if the PIP problem is not satisfiable.
*/
int
-ppl_PPL_Problem_solution PPL_PROTO((ppl_const_PIP_Problem_t pip,
+ppl_PIP_Problem_solution PPL_PROTO((ppl_const_PIP_Problem_t pip,
ppl_const_PIP_Tree_Node_t* pip_tree));
/*! \relates ppl_PIP_Problem_tag \brief
@@ -2797,7 +2797,7 @@ ppl_PPL_Problem_solution PPL_PROTO((ppl_const_PIP_Problem_t pip,
if the PIP problem is unbounded or not satisfiable.
*/
int
-ppl_PPL_Problem_optimizing_solution
+ppl_PIP_Problem_optimizing_solution
PPL_PROTO((ppl_const_PIP_Problem_t pip,
ppl_const_PIP_Tree_Node_t* pip_tree));
@@ -2975,6 +2975,33 @@ int
ppl_Artificial_Parameter_get_denominator
PPL_PROTO((ppl_const_Artificial_Parameter_t ap, ppl_const_Coefficient_t* coef));
+/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief
+ Dereference \p git writing a const handle to the resulting
+ grid generator at address \p pg.
+*/
+int
+ppl_Artificial_Parameter_Sequence_const_iterator_dereference
+PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit,
+ ppl_const_Artificial_Parameter_t* pap));
+
+/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief
+ Increment \p git so that it "points" to the next grid generator.
+*/
+int
+ppl_Artificial_Parameter_Sequence_const_iterator_increment
+PPL_PROTO((ppl_Artificial_Parameter_Sequence_const_iterator_t apit));
+
+/*! \relates ppl_Artificial_Parameter_Sequence_const_iterator_tag \brief
+ Returns a positive integer if the iterators corresponding to \p x and
+ \p y are equal; returns 0 if they are different.
+*/
+int
+ppl_Artificial_Parameter_Sequence_const_iterator_equal_test
+PPL_PROTO((ppl_const_Artificial_Parameter_Sequence_const_iterator_t x,
+ ppl_const_Artificial_Parameter_Sequence_const_iterator_t y));
+
+/*@}*/ /* Dereferencing, Incrementing and Equality Testing */
+
/*@}*/ /* Querying/Setting Control Parameters */
PPL_DECLARE_AND_DOCUMENT_IO_FUNCTIONS(MIP_Problem)
diff --git a/interfaces/C/ppl_c_implementation_common.cc b/interfaces/C/ppl_c_implementation_common.cc
index 1ef11f1..5d6dc0a 100644
--- a/interfaces/C/ppl_c_implementation_common.cc
+++ b/interfaces/C/ppl_c_implementation_common.cc
@@ -2431,6 +2431,36 @@ ppl_Artificial_Parameter_get_denominator(ppl_const_Artificial_Parameter_t ap,
CATCH_ALL
int
+ppl_Artificial_Parameter_Sequence_const_iterator_dereference
+(ppl_const_Artificial_Parameter_Sequence_const_iterator_t apit,
+ ppl_const_Artificial_Parameter_t* pap) try {
+ const Artificial_Parameter_Sequence::const_iterator& papit = *to_const(apit);
+ const Artificial_Parameter& ap = *papit;
+ *pap = to_const(&ap);
+ return 0;
+}
+CATCH_ALL
+
+int
+ppl_Artificial_Parameter_Sequence_const_iterator_increment
+(ppl_Artificial_Parameter_Sequence_const_iterator_t apit) try {
+ Artificial_Parameter_Sequence::const_iterator& papit = *to_nonconst(apit);
+ ++papit;
+ return 0;
+}
+CATCH_ALL
+
+int
+ppl_Artificial_Parameter_Sequence_const_iterator_equal_test
+(ppl_const_Artificial_Parameter_Sequence_const_iterator_t x,
+ ppl_const_Artificial_Parameter_Sequence_const_iterator_t y) try {
+ const Artificial_Parameter_Sequence::const_iterator& xx = *to_const(x);
+ const Artificial_Parameter_Sequence::const_iterator& yy = *to_const(y);
+ return (xx == yy) ? 1 : 0;
+}
+CATCH_ALL
+
+int
ppl_io_print_variable(ppl_dimension_type var) try {
const char* b = c_variable_output_function(var);
if (b == 0 || puts(b) < 0)
diff --git a/interfaces/C/tests/pip_test.c b/interfaces/C/tests/pip_test.c
index 5152853..ab56dbf 100644
--- a/interfaces/C/tests/pip_test.c
+++ b/interfaces/C/tests/pip_test.c
@@ -104,7 +104,7 @@ main(int argc, char **argv) {
ppl_dimension_type dim;
ppl_const_PIP_Tree_Node_t solution;
ppl_PIP_Problem_space_dimension(pip, &dim);
- ppl_PPL_Problem_solution(pip, &solution);
+ ppl_PIP_Problem_solution(pip, &solution);
/* display_solution(solution, N_VARS, N_PARAMETERS, parameter_dim); */
}
More information about the PPL-devel
mailing list