[PPL-devel] [GIT] ppl/ppl(master): Enforce generator normalization in private method

Enea Zaffanella zaffanella at cs.unipr.it
Sat Dec 3 13:34:33 CET 2011


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

Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date:   Sat Dec  3 13:32:57 2011 +0100

Enforce generator normalization in private method
  Polyhedron::BFT00_poly_hull_assign_if_exact()
and add corresponding assertion.

---

 src/Polyhedron_nonpublic.cc |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/src/Polyhedron_nonpublic.cc b/src/Polyhedron_nonpublic.cc
index 3bffc08..7379ad1 100644
--- a/src/Polyhedron_nonpublic.cc
+++ b/src/Polyhedron_nonpublic.cc
@@ -2034,8 +2034,9 @@ PPL::Polyhedron::BFT00_poly_hull_assign_if_exact(const Polyhedron& y) {
       PPL_ASSERT(!(illegal_ray && (x_row_is_line || y_row_is_line)));
       if (illegal_ray)
         continue;
+      // Normalize mid_row (strongly, if needed).
+      mid_row.normalize();
       if (x_row_is_line) {
-        mid_row.normalize();
         if (y_row_is_line)
           // mid_row is a line too: sign normalization is needed.
           mid_row.sign_normalize();
@@ -2043,6 +2044,7 @@ PPL::Polyhedron::BFT00_poly_hull_assign_if_exact(const Polyhedron& y) {
           // mid_row is a ray/point.
           mid_row.set_is_ray_or_point_or_inequality();
       }
+      PPL_ASSERT(mid_g.OK());
 
       // Step 7: check if mid_g is in the union of x and y.
       if (x.relation_with(mid_g) == Poly_Gen_Relation::nothing()




More information about the PPL-devel mailing list