[PPL-devel] [GIT] ppl/ppl(master): Avoid reusing names reserved by the C++ standard.

Roberto Bagnara bagnara at cs.unipr.it
Fri Nov 4 20:35:37 CET 2011


Module: ppl/ppl
Branch: master
Commit: 7682a06a0a07e2070438880368ef2d465fa71e38
URL:    http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=7682a06a0a07e2070438880368ef2d465fa71e38

Author: Roberto Bagnara <bagnara at cs.unipr.it>
Date:   Fri Nov  4 20:10:21 2011 +0100

Avoid reusing names reserved by the C++ standard.
In the process, consistency improved with respect to conventions
used throughout the library.
Detected by ECLAIR service resvidnt.

---

 src/Bit_Row.defs.hh         |   31 ++++++++++---------------------
 src/Bit_Row.inlines.hh      |   23 ++++++++++-------------
 src/Polyhedron_nonpublic.cc |   35 ++++++++++++++++++-----------------
 3 files changed, 38 insertions(+), 51 deletions(-)

diff --git a/src/Bit_Row.defs.hh b/src/Bit_Row.defs.hh
index c876893..30984bc 100644
--- a/src/Bit_Row.defs.hh
+++ b/src/Bit_Row.defs.hh
@@ -85,24 +85,6 @@ bool subset_or_equal(const Bit_Row& x, const Bit_Row& y,
 #endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
 bool strict_subset(const Bit_Row& x, const Bit_Row& y);
 
-#ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
-//! Set-theoretic union.
-/*! \relates Bit_Row */
-#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
-void set_union(const Bit_Row& x, const Bit_Row& y, Bit_Row& z);
-
-#ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
-//! Set-theoretic intersection.
-/*! \relates Bit_Row */
-#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
-void set_intersection(const Bit_Row& x, const Bit_Row& y, Bit_Row& z);
-
-#ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
-//! Set-theoretic difference.
-/*! \relates Bit_Row */
-#endif // defined(PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS)
-void set_difference(const Bit_Row& x, const Bit_Row& y, Bit_Row& z);
-
 } // namespace Parma_Polyhedra_Library
 
 #ifdef PPL_DOXYGEN_INCLUDE_IMPLEMENTATION_DETAILS
@@ -150,6 +132,16 @@ public:
   //! Clears all the bits of the row.
   void clear();
 
+  //! Assigns to \p *this the set-theoretic union of \p x and \p y.
+  void union_assign(const Bit_Row& x, const Bit_Row& y);
+
+  //! Assigns to \p *this the set-theoretic intersection of \p x and \p y.
+  void intersection_assign(const Bit_Row& x, const Bit_Row& y);
+
+  //! Assigns to \p *this the set-theoretic difference of \p x and \p y.
+  void difference_assign(const Bit_Row& x, const Bit_Row& y);
+
+
   friend int compare(const Bit_Row& x, const Bit_Row& y);
   friend bool operator==(const Bit_Row& x, const Bit_Row& y);
   friend bool operator!=(const Bit_Row& x, const Bit_Row& y);
@@ -157,9 +149,6 @@ public:
   friend bool subset_or_equal(const Bit_Row& x, const Bit_Row& y,
 			      bool& strict_subset);
   friend bool strict_subset(const Bit_Row& x, const Bit_Row& y);
-  friend void set_union(const Bit_Row& x, const Bit_Row& y, Bit_Row& z);
-  friend void set_intersection(const Bit_Row& x, const Bit_Row& y, Bit_Row& z);
-  friend void set_difference(const Bit_Row& x, const Bit_Row& y, Bit_Row& z);
 
   //! Returns the index of the first set bit or ULONG_MAX if no bit is set.
   unsigned long first() const;
diff --git a/src/Bit_Row.inlines.hh b/src/Bit_Row.inlines.hh
index 3e815c3..c9882e3 100644
--- a/src/Bit_Row.inlines.hh
+++ b/src/Bit_Row.inlines.hh
@@ -126,39 +126,36 @@ Bit_Row::total_memory_in_bytes() const {
   return sizeof(*this) + external_memory_in_bytes();
 }
 
-/*! \relates Bit_Row */
 inline void
-set_union(const Bit_Row& x, const Bit_Row& y, Bit_Row& z) {
+Bit_Row::union_assign(const Bit_Row& x, const Bit_Row& y) {
   const mp_size_t x_size = x.vec->_mp_size;
   PPL_ASSERT(x_size >= 0);
   const mp_size_t y_size = y.vec->_mp_size;
   PPL_ASSERT(y_size >= 0);
   if (x_size < y_size) {
     PPL_ASSERT(static_cast<unsigned long>(y_size)
-           <= ULONG_MAX / PPL_BITS_PER_GMP_LIMB);
-    mpz_realloc2(z.vec, y_size * PPL_BITS_PER_GMP_LIMB);
-    z.union_helper(x, y);
+               <= ULONG_MAX / PPL_BITS_PER_GMP_LIMB);
+    mpz_realloc2(vec, y_size * PPL_BITS_PER_GMP_LIMB);
+    union_helper(x, y);
   }
   else {
     PPL_ASSERT(static_cast<unsigned long>(x_size)
            <= ULONG_MAX / PPL_BITS_PER_GMP_LIMB);
-    mpz_realloc2(z.vec, x_size * PPL_BITS_PER_GMP_LIMB);
-    z.union_helper(y, x);
+    mpz_realloc2(vec, x_size * PPL_BITS_PER_GMP_LIMB);
+    union_helper(y, x);
   }
 }
 
-/*! \relates Bit_Row */
 inline void
-set_intersection(const Bit_Row& x, const Bit_Row& y, Bit_Row& z) {
-  mpz_and(z.vec, x.vec, y.vec);
+Bit_Row::intersection_assign(const Bit_Row& x, const Bit_Row& y) {
+  mpz_and(vec, x.vec, y.vec);
 }
 
-/*! \relates Bit_Row */
 inline void
-set_difference(const Bit_Row& x, const Bit_Row& y, Bit_Row& z) {
+Bit_Row::difference_assign(const Bit_Row& x, const Bit_Row& y) {
   PPL_DIRTY_TEMP(mpz_class, complement_y);
   mpz_com(complement_y.get_mpz_t(), y.vec);
-  mpz_and(z.vec, x.vec, complement_y.get_mpz_t());
+  mpz_and(vec, x.vec, complement_y.get_mpz_t());
 }
 
 namespace Implementation {
diff --git a/src/Polyhedron_nonpublic.cc b/src/Polyhedron_nonpublic.cc
index eaa2007..75e7564 100644
--- a/src/Polyhedron_nonpublic.cc
+++ b/src/Polyhedron_nonpublic.cc
@@ -1145,7 +1145,7 @@ PPL::Polyhedron::strongly_minimize_constraints() const {
     if (cs[i].is_strict_inequality()) {
       // First, check if it is saturated by no closure points
       Bit_Row sat_ci;
-      set_union(sat[i], sat_lines_and_closure_points, sat_ci);
+      sat_ci.union_assign(sat[i], sat_lines_and_closure_points);
       if (sat_ci == sat_lines) {
 	// It is saturated by no closure points.
 	if (!found_eps_leq_one) {
@@ -1181,8 +1181,9 @@ PPL::Polyhedron::strongly_minimize_constraints() const {
       // Now we check if there exists another strict inequality
       // constraint having a superset of its saturators,
       // when disregarding points.
+      /* FIXME: what is this clear for? */
       sat_ci.clear();
-      set_union(sat[i], sat_all_but_points, sat_ci);
+      sat_ci.union_assign(sat[i], sat_all_but_points);
       bool eps_redundant = false;
       for (dimension_type j = 0; j < cs_rows; ++j)
 	if (i != j && cs[j].is_strict_inequality()
@@ -1531,7 +1532,7 @@ PPL::Polyhedron::BHZ09_C_poly_hull_assign_if_exact(const Polyhedron& y) {
     const bool included
       = y.relation_with(x_cs[i]).implies(Poly_Con_Relation::is_included());
     if (!included) {
-      set_union(x_gs_red_in_y, x_sat[i], row_union);
+      row_union.union_assign(x_gs_red_in_y, x_sat[i]);
       if (row_union != all_ones)
         return false;
     }
@@ -1610,8 +1611,8 @@ PPL::Polyhedron::BHZ09_NNC_poly_hull_assign_if_exact(const Polyhedron& y) {
     return true;
 
   Bit_Row x_nonpoints_nonred_in_y;
-  set_difference(x_gs_nonred_in_y, x_points_nonred_in_y,
-                 x_nonpoints_nonred_in_y);
+  x_nonpoints_nonred_in_y.difference_assign(x_gs_nonred_in_y,
+                                            x_points_nonred_in_y);
 
   const Constraint_System& x_cs = x.con_sys;
   const Constraint_System& y_cs = y.con_sys;
@@ -1655,20 +1656,20 @@ PPL::Polyhedron::BHZ09_NNC_poly_hull_assign_if_exact(const Polyhedron& y) {
     // Skip constraint if it is not violated by `y'.
     if (y.relation_with(x_c).implies(Poly_Con_Relation::is_included()))
       continue;
-    set_difference(all_ones, x_sat[i], saturators);
+    saturators.difference_assign(all_ones, x_sat[i]);
     // Check condition 1.
-    set_intersection(x_nonpoints_nonred_in_y, saturators, tmp_set);
+    tmp_set.intersection_assign(x_nonpoints_nonred_in_y, saturators);
     if (!tmp_set.empty())
       return false;
     if (x_c.is_strict_inequality()) {
       // Postpone check for condition 3.
       x_cs_condition_3.set(i);
-      set_intersection(x_closure_points, saturators, tmp_set);
-      set_union(x_gs_condition_3, tmp_set, x_gs_condition_3);
+      tmp_set.intersection_assign(x_closure_points, saturators);
+      x_gs_condition_3.union_assign(x_gs_condition_3, tmp_set);
     }
     else {
       // Check condition 2.
-      set_intersection(x_points_nonred_in_y_closure, saturators, tmp_set);
+      tmp_set.intersection_assign(x_points_nonred_in_y_closure, saturators);
       if (!tmp_set.empty())
         return false;
     }
@@ -1678,8 +1679,8 @@ PPL::Polyhedron::BHZ09_NNC_poly_hull_assign_if_exact(const Polyhedron& y) {
   // (the statement of the NNC theorem in BHZ09 is symmetric).
 
   Bit_Row y_nonpoints_nonred_in_x;
-  set_difference(y_gs_nonred_in_x, y_points_nonred_in_x,
-                 y_nonpoints_nonred_in_x);
+  y_nonpoints_nonred_in_x.difference_assign(y_gs_nonred_in_x,
+                                            y_points_nonred_in_x);
 
   // Filter away the points of `y_gs' that would be redundant
   // in the topological closure of `x'.
@@ -1714,20 +1715,20 @@ PPL::Polyhedron::BHZ09_NNC_poly_hull_assign_if_exact(const Polyhedron& y) {
     // Skip constraint if it is not violated by `x'.
     if (x.relation_with(y_c).implies(Poly_Con_Relation::is_included()))
       continue;
-    set_difference(all_ones, y_sat[i], saturators);
+    saturators.difference_assign(all_ones, y_sat[i]);
     // Check condition 1.
-    set_intersection(y_nonpoints_nonred_in_x, saturators, tmp_set);
+    tmp_set.intersection_assign(y_nonpoints_nonred_in_x, saturators);
     if (!tmp_set.empty())
       return false;
     if (y_c.is_strict_inequality()) {
       // Postpone check for condition 3.
       y_cs_condition_3.set(i);
-      set_intersection(y_closure_points, saturators, tmp_set);
-      set_union(y_gs_condition_3, tmp_set, y_gs_condition_3);
+      tmp_set.intersection_assign(y_closure_points, saturators);
+      y_gs_condition_3.union_assign(y_gs_condition_3, tmp_set);
     }
     else {
       // Check condition 2.
-      set_intersection(y_points_nonred_in_x_closure, saturators, tmp_set);
+      tmp_set.intersection_assign(y_points_nonred_in_x_closure, saturators);
       if (!tmp_set.empty())
         return false;
     }




More information about the PPL-devel mailing list