[PPL-devel] [GIT] ppl/ppl(master): FIXMEs resolved.
Roberto Bagnara
bagnara at cs.unipr.it
Mon Aug 2 08:33:27 CEST 2010
Module: ppl/ppl
Branch: master
Commit: fc8238d53a79691953a8533c79362fcfc7bc6244
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=fc8238d53a79691953a8533c79362fcfc7bc6244
Author: Roberto Bagnara <bagnara at cs.unipr.it>
Date: Mon Aug 2 08:32:33 2010 +0200
FIXMEs resolved.
---
src/Grid.defs.hh | 18 ++++++------------
src/Grid_public.cc | 23 +++++++++--------------
2 files changed, 15 insertions(+), 26 deletions(-)
diff --git a/src/Grid.defs.hh b/src/Grid.defs.hh
index 8ce547c..062d3ae 100644
--- a/src/Grid.defs.hh
+++ b/src/Grid.defs.hh
@@ -1564,21 +1564,18 @@ public:
bool wrap_individually = true);
/*! \brief
- Possibly tightens \p *this by dropping some points with non-integer
+ Possibly tightens \p *this by dropping all points with non-integer
coordinates.
\param complexity
- The maximal complexity of any algorithms used.
-
- \note
- Currently there is no optimality guarantee, not even if
- \p complexity is <CODE>ANY_COMPLEXITY</CODE>.
+ This argument is ignored as the algorithm used has polynomial
+ complexity.
*/
void drop_some_non_integer_points(Complexity_Class complexity
= ANY_COMPLEXITY);
/*! \brief
- Possibly tightens \p *this by dropping some points with non-integer
+ Possibly tightens \p *this by dropping all points with non-integer
coordinates for the space dimensions corresponding to \p vars.
\param vars
@@ -1586,11 +1583,8 @@ public:
can be discarded.
\param complexity
- The maximal complexity of any algorithms used.
-
- \note
- Currently there is no optimality guarantee, not even if
- \p complexity is <CODE>ANY_COMPLEXITY</CODE>.
+ This argument is ignored as the algorithm used has polynomial
+ complexity.
*/
void drop_some_non_integer_points(const Variables_Set& vars,
Complexity_Class complexity
diff --git a/src/Grid_public.cc b/src/Grid_public.cc
index 10c7843..e85cf9a 100644
--- a/src/Grid_public.cc
+++ b/src/Grid_public.cc
@@ -2852,30 +2852,21 @@ PPL::Grid::wrap_assign(const Variables_Set& vars,
}
}
-// FIXME(0.11): Check if this is the correct interpretation of the
-// specification.
-// By adding integral congruences for each dimension to the congruence system,
-// defining \p *this, the grid will keep only those points that have integral
-// coordinates. All points in \p *this with non-integral coordinates are
-// removed.
void
PPL::Grid::drop_some_non_integer_points(Complexity_Class) {
if (marked_empty() || space_dim == 0)
return;
+ // By adding integral congruences for each dimension to the
+ // congruence system, defining \p *this, the grid will keep only
+ // those points that have integral coordinates. All points in \p
+ // *this with non-integral coordinates are removed.
for (dimension_type i = space_dim; i-- > 0; )
add_congruence(Variable(i) %= 0);
PPL_ASSERT(OK());
}
-// FIXME(0.11): Check if this is the correct interpretation of the
-// specification.
-// By adding the integral congruences for each dimension in vars
-// to the congruence system defining \p *this, the grid will keep
-// only those points that have integer coordinates for all the
-// dimensions in vars. All points in \p *this with non-integral coordinates
-// for the dimensions in vars are removed.
void
PPL::Grid::drop_some_non_integer_points(const Variables_Set& vars,
Complexity_Class) {
@@ -2888,6 +2879,11 @@ PPL::Grid::drop_some_non_integer_points(const Variables_Set& vars,
if (marked_empty() || min_space_dim == 0)
return;
+ // By adding the integral congruences for each dimension in vars to
+ // the congruence system defining \p *this, the grid will keep only
+ // those points that have integer coordinates for all the dimensions
+ // in vars. All points in \p *this with non-integral coordinates for
+ // the dimensions in vars are removed.
for (Variables_Set::const_iterator i = vars.begin(),
vars_end = vars.end(); i != vars.end(); ++i)
add_congruence(Variable(*i) %= 0);
@@ -2895,7 +2891,6 @@ PPL::Grid::drop_some_non_integer_points(const Variables_Set& vars,
PPL_ASSERT(OK());
}
-
/*! \relates Parma_Polyhedra_Library::Grid */
std::ostream&
PPL::IO_Operators::operator<<(std::ostream& s, const Grid& gr) {
More information about the PPL-devel
mailing list