[PPL-devel] [GIT] ppl/ppl(devel): New test07() shows a bug in the filtering of minimized NNC generators.
Enea Zaffanella
zaffanella at cs.unipr.it
Thu Aug 3 19:22:18 CEST 2017
Module: ppl/ppl
Branch: devel
Commit: 0ea33aae911bf0fe56896b6579cd30118459e686
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=0ea33aae911bf0fe56896b6579cd30118459e686
Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date: Thu Aug 3 14:44:46 2017 +0200
New test07() shows a bug in the filtering of minimized NNC generators.
The bug should only affect output operations; it is not going to affect
the result of methods such as NNC_Polyhedron::is_topologically_closed().
The bug has been discovered while working on an alternative representation
and implementation for NNC polyhedra, requiring no epsilon dimension.
The conversion algorithm for this new representation will be described
in the undergraduate thesis of Anna Becchi (work in progress).
---
tests/Polyhedron/nncminimize1.cc | 28 ++++++++++++++++++++++++++++
1 files changed, 28 insertions(+), 0 deletions(-)
diff --git a/tests/Polyhedron/nncminimize1.cc b/tests/Polyhedron/nncminimize1.cc
index 7f22ed3..a8325b6 100644
--- a/tests/Polyhedron/nncminimize1.cc
+++ b/tests/Polyhedron/nncminimize1.cc
@@ -368,6 +368,33 @@ test06() {
return ok;
}
+bool
+test07() {
+ Variable A(0);
+ Variable B(1);
+
+ Generator_System gs;
+ gs.insert(closure_point(A + 2*B));
+ gs.insert(closure_point(A + 2*B, 2));
+ gs.insert(point(A + 2*B));
+ gs.insert(point(A + 2*B, 2));
+
+ NNC_Polyhedron ph(gs);
+
+ nout << endl << "Before NNC minimization:" << endl;
+ print_constraints(ph.constraints(), "*** ph constraints ***");
+ print_generators(ph.generators(), "*** ph generators ***");
+
+ const Generator_System& min_gs = ph.minimized_generators();
+ bool ok = (2 == std::distance(min_gs.begin(), min_gs.end()));
+
+ nout << endl << "After NNC minimization:" << endl;
+ print_constraints(ph.constraints(), "*** ph constraints ***");
+ print_generators(ph.generators(), "*** ph generators ***");
+
+ return ok;
+}
+
} // namespace
BEGIN_MAIN
@@ -377,4 +404,5 @@ BEGIN_MAIN
DO_TEST_F8(test04);
DO_TEST(test05);
DO_TEST(test06);
+ DO_TEST(test07);
END_MAIN
More information about the PPL-devel
mailing list