[PPL-devel] [GIT] ppl/ppl(termination): Added method bool Constraint_System:: has_equalities() const.

Roberto Bagnara bagnara at cs.unipr.it
Sat Mar 6 19:07:58 CET 2010


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

Author: Roberto Bagnara <bagnara at cs.unipr.it>
Date:   Fri Mar  5 22:18:05 2010 +0400

Added method bool Constraint_System::has_equalities() const.

---

 src/Constraint_System.cc      |   10 ++++++++++
 src/Constraint_System.defs.hh |    6 ++++++
 2 files changed, 16 insertions(+), 0 deletions(-)

diff --git a/src/Constraint_System.cc b/src/Constraint_System.cc
index 2e6444a..5658058 100644
--- a/src/Constraint_System.cc
+++ b/src/Constraint_System.cc
@@ -206,6 +206,16 @@ adjust_topology_and_space_dimension(const Topology new_topology,
 }
 
 bool
+PPL::Constraint_System::has_equalities() const {
+  const Constraint_System& cs = *this;
+  // We verify if the system has equalities also in the pending part.
+  for (dimension_type i = cs.num_rows(); i-- > 0; )
+    if (cs[i].is_equality())
+      return true;
+  return false;
+}
+
+bool
 PPL::Constraint_System::has_strict_inequalities() const {
   if (is_necessarily_closed())
     return false;
diff --git a/src/Constraint_System.defs.hh b/src/Constraint_System.defs.hh
index 008eac1..7ce79ef 100644
--- a/src/Constraint_System.defs.hh
+++ b/src/Constraint_System.defs.hh
@@ -152,6 +152,12 @@ public:
 
   /*! \brief
     Returns <CODE>true</CODE> if and only if \p *this
+    contains one or more equality constraints.
+  */
+  bool has_equalities() const;
+
+  /*! \brief
+    Returns <CODE>true</CODE> if and only if \p *this
     contains one or more strict inequality constraints.
   */
   bool has_strict_inequalities() const;




More information about the PPL-devel mailing list