[PPL-devel] [GIT] ppl/ppl(floating_point): Improved test05

Roberto Amadini r.amadini at virgilio.it
Mon Sep 28 16:04:27 CEST 2009


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

Author: Roberto Amadini <r.amadini at virgilio.it>
Date:   Mon Sep 28 16:04:33 2009 +0200

Improved test05

---

 tests/Floating_Point_Expression/polyhedron2.cc |   24 +++++++++++++++---------
 1 files changed, 15 insertions(+), 9 deletions(-)

diff --git a/tests/Floating_Point_Expression/polyhedron2.cc b/tests/Floating_Point_Expression/polyhedron2.cc
index b6298ea..94d7c24 100644
--- a/tests/Floating_Point_Expression/polyhedron2.cc
+++ b/tests/Floating_Point_Expression/polyhedron2.cc
@@ -163,7 +163,7 @@ test04() {
 }
 
 // tests (2/3)*B + [-0.5, 0.5] >= (1/3)*A
-// FIXME: Not pass at the moment.
+// where A = B = [-1, 1]
 bool
 test05() {
   Variable A(0);
@@ -185,16 +185,11 @@ test05() {
   lb += tmp;
 
   NNC_Polyhedron ph(2);
+  FP_Linear_Form l(tmp0);
+  ph.affine_image(A, l, store);
+  ph.affine_image(B, l, store);
   ph.generalized_refine_with_linear_form_inequality(
     lb, la, GREATER_OR_EQUAL, store);
-  ph.generalized_refine_with_linear_form_inequality(
-  FP_Linear_Form(A), FP_Linear_Form(FP_Interval(-1)), GREATER_OR_EQUAL, store);
-  ph.generalized_refine_with_linear_form_inequality(
-  FP_Linear_Form(A), FP_Linear_Form(FP_Interval(1)), LESS_OR_EQUAL, store);
-  ph.generalized_refine_with_linear_form_inequality(
-  FP_Linear_Form(B), FP_Linear_Form(FP_Interval(-1)), GREATER_OR_EQUAL, store);
-  ph.generalized_refine_with_linear_form_inequality(
-  FP_Linear_Form(B), FP_Linear_Form(FP_Interval(1)), LESS_OR_EQUAL, store);
   print_constraints(ph, "*** ph ***");
 
   NNC_Polyhedron known_result1(2);
@@ -207,6 +202,17 @@ test05() {
 
   bool ok1 = ph.contains(known_result1);
 
+  ph.refine_fp_interval_abstract_store(store);
+  nout << "*** FP_Interval_Abstract_Store ***" << endl;
+
+  nout << "A = " << store.get_interval(A) << endl;
+  bool ok2 = tmp0.contains(store.get_interval(A));
+
+  nout << "B = " << store.get_interval(B) << endl;
+  bool ok3 = tmp0.contains(store.get_interval(B));
+
+  return ok1 && ok2 && ok3;
+
   return ok1;
 }
 




More information about the PPL-devel mailing list