[PPL-devel] [GIT] ppl/ppl(termination): Fixed some copy-and-paste mistakes.
Roberto Bagnara
bagnara at cs.unipr.it
Mon Mar 8 14:54:30 CET 2010
Module: ppl/ppl
Branch: termination
Commit: c066af6c05058ad105d35948e43b758ef4fd1cfd
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=c066af6c05058ad105d35948e43b758ef4fd1cfd
Author: Roberto Bagnara <bagnara at cs.unipr.it>
Date: Mon Mar 8 16:57:31 2010 +0400
Fixed some copy-and-paste mistakes.
---
src/termination.cc | 2 +-
src/termination.templates.hh | 40 ++++++++++++++++++++++++++--------------
2 files changed, 27 insertions(+), 15 deletions(-)
diff --git a/src/termination.cc b/src/termination.cc
index a643997..3479d24 100644
--- a/src/termination.cc
+++ b/src/termination.cc
@@ -179,7 +179,7 @@ fill_constraint_systems_MS(const Constraint_System& cs,
- \f$ \mu_1, \ldots, \mu_n \f$ go onto space dimensions
\f$ 0, \ldots, n-1 \f$;
- \f$ \mu_0\f$ goes onto space dimension \f$ n \f$;
- - \f$ y_1, \ldots, y_m \f$ go onto space dimensions
+ - \f$ y_1, \ldots, y_m \f$ go onto space dimensions
\f$ n+1, \ldots, n+m \f$;
- \f$ z_1, ..., z_m, z_{m+1}, z_{m+2} \f$ go onto space dimensions
\f$ n+m+1, ..., n+2*m+2 \f$.
diff --git a/src/termination.templates.hh b/src/termination.templates.hh
index d7b775e..93a4097 100644
--- a/src/termination.templates.hh
+++ b/src/termination.templates.hh
@@ -232,6 +232,7 @@ termination_test_MS(const PSET& pset) {
#endif
MIP_Problem mip = MIP_Problem(cs_mip.space_dimension(), cs_mip);
+
return mip.is_satisfiable();
}
@@ -260,6 +261,7 @@ one_affine_ranking_function_MS(const PSET& pset, Generator& mu) {
#endif
MIP_Problem mip = MIP_Problem(cs_mip.space_dimension(), cs_mip);
+
if (mip.is_satisfiable()) {
mu = mip.feasible_point();
return true;
@@ -337,26 +339,33 @@ termination_test_PR(const PSET& pset) {
Constraint_System cs_mip;
fill_constraint_systems_PR(cs, n, m, cs_mip);
-#if PRINT_DEBUG_INFO
- Variable::output_function_type* p_default_output_function
- = Variable::get_output_function();
- Variable::set_output_function(output_function_MS);
-
- std::cout << "*** cs_mip ***" << std::endl;
- output_function_MS_which = 3;
- using namespace IO_Operators;
- std::cout << cs_mip << std::endl;
- Variable::set_output_function(p_default_output_function);
-#endif
-
MIP_Problem mip = MIP_Problem(cs_mip.space_dimension(), cs_mip);
+
return mip.is_satisfiable();
}
template <typename PSET>
bool
one_affine_ranking_function_PR(const PSET& pset, Generator& mu) {
- return false;
+ using namespace Implementation::Termination;
+ Constraint_System cs;
+ dimension_type n;
+ dimension_type m;
+ prepare_input_MS_PR(pset, cs, n, m, "one_affine_ranking_function_PR");
+
+ Constraint_System cs_mip;
+ fill_constraint_systems_PR(cs, n, m, cs_mip);
+
+ MIP_Problem mip = MIP_Problem(cs_mip.space_dimension(), cs_mip);
+
+ if (mip.is_satisfiable()) {
+ Generator u3 = mip.feasible_point();
+ // FIXME: must multiply u3 by E'_C and assign the result to mu.
+ //return true;
+ return false;
+ }
+ else
+ return false;
}
template <typename PSET>
@@ -366,7 +375,10 @@ all_affine_ranking_functions_PR(const PSET& pset, C_Polyhedron& mu_space) {
Constraint_System cs;
dimension_type n;
dimension_type m;
- prepare_input_MS_PR(pset, cs, n, m, "all_affine_ranking_functions_MS");
+ prepare_input_MS_PR(pset, cs, n, m, "all_affine_ranking_functions_PR");
+
+ Constraint_System cs_out;
+ fill_constraint_systems_PR(cs, n, m, cs_out);
mu_space = C_Polyhedron(n+1, EMPTY);
}
More information about the PPL-devel
mailing list