[PPL-devel] [GIT] ppl/ppl(master): For readability, prefer infix notation for operator[ ].

Enea Zaffanella zaffanella at cs.unipr.it
Fri Sep 30 16:07:35 CEST 2011


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

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Fri Sep 30 12:11:57 2011 +0200

For readability, prefer infix notation for operator[].

---

 src/Congruence_System.cc |   52 +++++++++++++++++++++++++++------------------
 1 files changed, 31 insertions(+), 21 deletions(-)

diff --git a/src/Congruence_System.cc b/src/Congruence_System.cc
index d550edc..1acefe2 100644
--- a/src/Congruence_System.cc
+++ b/src/Congruence_System.cc
@@ -116,7 +116,7 @@ PPL::Congruence_System::insert(const Constraint& c) {
     Congruence cg(c, cg_size, row_capacity);
     add_recycled_row(cg);
   }
-  operator[](rows.size()-1).strong_normalize();
+  (*this)[rows.size()-1].strong_normalize();
 
   PPL_ASSERT(OK());
 }
@@ -142,7 +142,7 @@ PPL::Congruence_System::recycling_insert(Congruence_System& cgs) {
     // Swap one coefficient at a time into the newly added rows, instead
     // of swapping each entire row.  This ensures that the added rows
     // have the same capacities as the existing rows.
-    Congruence& new_cg = operator[](old_num_rows + i);
+    Congruence& new_cg = (*this)[old_num_rows + i];
     Congruence& old_cg = cgs[i];
     for (dimension_type j = cgs_num_columns; j-- > 0; )
       std::swap(new_cg[j], old_cg[j]);
@@ -185,13 +185,15 @@ PPL::Congruence_System::insert(const Congruence_System& y) {
 
 void
 PPL::Congruence_System::normalize_moduli() {
-  dimension_type row = num_rows();
+  Congruence_System& cgs = *this;
+  dimension_type row = cgs.num_rows();
   if (row > 0) {
     // Calculate the LCM of all the moduli.
     PPL_DIRTY_TEMP_COEFFICIENT(lcm);
     // Find last proper congruence.
     while (true) {
-      lcm = operator[](--row).modulus();
+      --row;
+      lcm = cgs[row].modulus();
       if (lcm > 0)
 	break;
       if (row == 0)
@@ -199,38 +201,45 @@ PPL::Congruence_System::normalize_moduli() {
 	return;
     }
     while (row > 0) {
-      const Coefficient& modulus = operator[](--row).modulus();
+      --row;
+      const Coefficient& modulus = cgs[row].modulus();
       if (modulus > 0)
 	lcm_assign(lcm, lcm, modulus);
     }
 
     // Represent every row using the LCM as the modulus.
     PPL_DIRTY_TEMP_COEFFICIENT(factor);
-    dimension_type row_size = operator[](0).size();
-    for (row = num_rows(); row-- > 0; ) {
-      const Coefficient& modulus = operator[](row).modulus();
+    dimension_type row_size = cgs[0].size();
+    for (row = cgs.num_rows(); row-- > 0; ) {
+      Congruence& cgs_row = cgs[row];
+      const Coefficient& modulus = cgs_row.modulus();
       if (modulus <= 0 || modulus == lcm)
 	continue;
       exact_div_assign(factor, lcm, modulus);
-      for (dimension_type col = row_size; col-- > 0; )
-	operator[](row)[col] *= factor;
-      operator[](row)[row_size-1] = lcm;
+      for (dimension_type col = row_size; col-- > 0; ) {
+	cgs_row[col] *= factor;
+      }
+      cgs_row[row_size-1] = lcm;
     }
   }
   PPL_ASSERT(OK());
 }
 
 bool
-PPL::Congruence_System::is_equal_to(const Congruence_System& cgs) const {
-  if (num_rows() != cgs.num_rows())
+PPL::Congruence_System::is_equal_to(const Congruence_System& y) const {
+  const Congruence_System& x = *this;
+  if (x.num_rows() != y.num_rows())
     return false;
 
-  for (dimension_type row = cgs.num_rows(); row-- > 0; )
-    for (dimension_type col = cgs.num_columns(); col-- > 0; ) {
-      if (operator[](row)[col] == cgs[row][col])
+  for (dimension_type row = y.num_rows(); row-- > 0; ) {
+    const Congruence& x_row = x[row];
+    const Congruence& y_row = y[row];
+    for (dimension_type col = y.num_columns(); col-- > 0; ) {
+      if (x_row[col] == y_row[col])
 	continue;
       return false;
     }
+  }
   return true;
 }
 
@@ -311,7 +320,7 @@ PPL::Congruence_System::has_a_free_dimension() const {
   std::vector<bool> free_dim(space_dim, true);
   dimension_type free_dims = space_dim;
   for (dimension_type row = num_rows(); row-- > 0; ) {
-    const Congruence& cg = operator[](row);
+    const Congruence& cg = (*this)[row];
     for (dimension_type dim = space_dim; dim-- > 0; )
       if (free_dim[dim] && cg[dim+1] != 0) {
 	if (--free_dims == 0) {
@@ -514,14 +523,15 @@ PPL::Congruence_System::add_unit_rows_and_columns(dimension_type dims) {
   // Swap the modulus column into the new last column.
   swap_columns(col, col + dims);
 
+  Congruence_System& cgs = *this;
   // Swap the added columns to the front of the matrix.
   for (dimension_type row = old_num_rows; row-- > 0; )
-    std::swap(operator[](row), operator[](row + dims));
+    std::swap(cgs[row], cgs[row + dims]);
 
   col += dims - 1;
   // Set the diagonal element of each added row.
   for (dimension_type row = dims; row-- > 0; )
-    const_cast<Coefficient&>(operator[](row)[col - row]) = 1;
+    cgs[row][col - row] = 1;
 }
 
 void
@@ -543,7 +553,7 @@ PPL::Congruence_System::concatenate(const Congruence_System& const_cgs) {
 
   // Swap the modulus and the new last column, in the old rows.
   for (dimension_type i = old_num_rows; i-- > 0; ) {
-    Congruence& cg = operator[](i);
+    Congruence& cg = (*this)[i];
     std::swap(cg[old_modi], cg[modi]);
   }
 
@@ -551,7 +561,7 @@ PPL::Congruence_System::concatenate(const Congruence_System& const_cgs) {
   // coefficients along into the appropriate columns.
   for (dimension_type i = added_rows; i-- > 0; ) {
     Congruence& cg_old = cgs[i];
-    Congruence& cg_new = operator[](old_num_rows + i);
+    Congruence& cg_new = (*this)[old_num_rows + i];
     // The inhomogeneous term is moved to the same column.
     std::swap(cg_new[0], cg_old[0]);
     // All homogeneous terms are shifted by `space_dim' columns.




More information about the PPL-devel mailing list