[PPL-devel] [GIT] ppl/ppl(floating_point): Optimized linear_form_upper_bound: got rid of two unnecessary

Fabio Bossi bossi at cs.unipr.it
Thu Sep 17 11:17:00 CEST 2009


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

Author: Fabio Bossi <bossi at cs.unipr.it>
Date:   Thu Sep 17 11:17:11 2009 +0200

Optimized linear_form_upper_bound: got rid of two unnecessary
temporaries.

---

 src/Octagonal_Shape.templates.hh |   20 +++++++++-----------
 1 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/Octagonal_Shape.templates.hh b/src/Octagonal_Shape.templates.hh
index 99c9d5b..67148c2 100644
--- a/src/Octagonal_Shape.templates.hh
+++ b/src/Octagonal_Shape.templates.hh
@@ -5323,8 +5323,6 @@ linear_form_upper_bound(const Linear_Form< Interval<T, Interval_Info> >& lf,
 
   PPL_DIRTY_TEMP(N, first_comparison_term);
   PPL_DIRTY_TEMP(N, second_comparison_term);
-  PPL_DIRTY_TEMP(N, third_comparison_term);
-  PPL_DIRTY_TEMP(N, fourth_comparison_term);
 
   PPL_DIRTY_TEMP(N, negator);
 
@@ -5354,24 +5352,24 @@ linear_form_upper_bound(const Linear_Form< Interval<T, Interval_Info> >& lf,
         // Next addend will be the maximum of four quantities.
         assign_r(first_comparison_term, 0, ROUND_NOT_NEEDED);
         assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED);
-        assign_r(third_comparison_term, 0, ROUND_NOT_NEEDED);
-        assign_r(fourth_comparison_term, 0, ROUND_NOT_NEEDED);
         add_mul_assign_r(first_comparison_term, curr_var_ub, curr_ub,
                          ROUND_UP);
-        add_mul_assign_r(third_comparison_term, curr_var_ub, curr_lb,
-                         ROUND_UP);
-        add_mul_assign_r(second_comparison_term, curr_minus_var_ub, curr_ub,
-                         ROUND_UP);
-        add_mul_assign_r(fourth_comparison_term, curr_minus_var_ub, curr_lb,
+        add_mul_assign_r(second_comparison_term, curr_var_ub, curr_lb,
                          ROUND_UP);
         assign_r(first_comparison_term, std::max(first_comparison_term,
                                                  second_comparison_term),
                  ROUND_NOT_NEEDED);
+        assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED);
+        add_mul_assign_r(second_comparison_term, curr_minus_var_ub, curr_ub,
+                         ROUND_UP);
         assign_r(first_comparison_term, std::max(first_comparison_term,
-                                                 third_comparison_term),
+                                                 second_comparison_term),
                  ROUND_NOT_NEEDED);
+        assign_r(second_comparison_term, 0, ROUND_NOT_NEEDED);
+        add_mul_assign_r(second_comparison_term, curr_minus_var_ub, curr_lb,
+                         ROUND_UP);
         assign_r(first_comparison_term, std::max(first_comparison_term,
-                                                 fourth_comparison_term),
+                                                 second_comparison_term),
                  ROUND_NOT_NEEDED);
 
         add_assign_r(result, result, first_comparison_term, ROUND_UP);




More information about the PPL-devel mailing list