[PPL-devel] [GIT] ppl/ppl(termination): Still working on specifications.
Roberto Bagnara
bagnara at cs.unipr.it
Sun Mar 7 19:13:23 CET 2010
Module: ppl/ppl
Branch: termination
Commit: 37d7226faeb9e32cd096748616b822fbc39c00e3
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=37d7226faeb9e32cd096748616b822fbc39c00e3
Author: Roberto Bagnara <bagnara at cs.unipr.it>
Date: Sun Mar 7 22:09:59 2010 +0400
Still working on specifications.
---
src/termination.cc | 17 +++++++++++------
1 files changed, 11 insertions(+), 6 deletions(-)
diff --git a/src/termination.cc b/src/termination.cc
index 47314e7..d0d1909 100644
--- a/src/termination.cc
+++ b/src/termination.cc
@@ -81,7 +81,7 @@ assign_all_inequalities_approximation(const C_Polyhedron& ph,
The allocation of variable indices in the output constraint
systems \p cs_out1 and \p cs_out2 is as follows:
- \f$ \mu_1, \ldots, \mu_n \f$ go onto \f$ 0, \ldots, n-1 \f$;
- - \f$ \mu 0\f$ goes onto \f$ n \f$;
+ - \f$ \mu_0\f$ goes onto \f$ n \f$;
- \f$ y_1, \ldots, y_m \f$ go onto \f$ n+1, \ldots, n+m \f$;
if we use the same constraint system, that is
@@ -170,7 +170,7 @@ fill_constraint_systems_MS(const Constraint_System& cs,
The output constraint system, where variables indices are allocated
as follows:
- \f$ \mu_1, \ldots, \mu_n \f$ go onto \f$ 0, \ldots, n-1 \f$;
- - \f$ \mu 0\f$ goes onto \f$ n \f$;
+ - \f$ \mu_0\f$ goes onto \f$ n \f$;
- \f$ y_1, \ldots, y_m \f$ go onto \f$ n+1, \ldots, n+m \f$;
- \f$ z_1, ..., z_m, z_{m+1}, z_{m+2} \f$
go onto \f$ n+m+1, ..., n+2*m+2 \f$.
@@ -211,8 +211,6 @@ fill_constraint_systems_MS(const Constraint_System& cs,
The space of ranking functions is then spanned by
\f$ \vect{v}_3^\transpose A_C' \vect x \f$.
- The ranking functions are expressed by L2 * A' * x,
-
In contrast, our encoding is of the form
\f[
\begin{pmatrix}
@@ -241,7 +239,7 @@ fill_constraint_systems_MS(const Constraint_System& cs,
\vect{u}_2^\transpose E_B
+ \vect{u}_3^\transpose (E_C+E_C')
&= \vect{0}^\transpose, \\
- \vect{u}_2 \vect{b}_B + \vect{u}_3 \vect{b}_C
+ \vect{u}_2 \vect{d}_B + \vect{u}_3 \vect{d}_C
&> 0,
\end{aligned}
\f]
@@ -249,6 +247,12 @@ fill_constraint_systems_MS(const Constraint_System& cs,
are constrained to be nonpositive.
The space of ranking functions is then spanned by
\f$ \vect{u}_3^\transpose E_C' \vect x \f$.
+
+ The allocation of variable indices in the output constraint
+ system \p cs_out is as follows:
+ - \f$ u_3 \f$ goes onto \f$ 0, \ldots, s-1 \f$;
+ - \f$ u_2 \f$ goes onto \f$ s, \ldots, s+r-1 \f$;
+ - \f$ u_1 \f$ goes onto \f$ s+r, \ldots, s+2r-1 \f$.
*/
void
fill_constraint_systems_PR(const Constraint_System& cs,
@@ -256,7 +260,7 @@ fill_constraint_systems_PR(const Constraint_System& cs,
const dimension_type m,
Constraint_System& cs_out) {
// Determine the partitioning of the m rows into the r rows
- // of E_B and the s rows of E_C|E'_C.
+ // of E_B and the s rows of E'_C|E_C.
std::deque<bool> in_A_B(m, true);
dimension_type r = m;
for (Constraint_System::const_iterator i = cs.begin(),
@@ -270,6 +274,7 @@ fill_constraint_systems_PR(const Constraint_System& cs,
}
}
dimension_type s = m - r;
+
}
More information about the PPL-devel
mailing list