
Module: ppl/ppl Branch: pip Commit: 2747f04f7bcc20e051df967fc6d35f91b7f22605 URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=2747f04f7bcc2...
Author: Enea Zaffanella zaffanella@cs.unipr.it Date: Thu Sep 10 16:41:24 2009 +0200
Fix compilation problems when assertions are turned on.
---
src/PIP_Tree.cc | 24 +++++++++++++++++++----- src/PIP_Tree.defs.hh | 10 +++++++++- 2 files changed, 28 insertions(+), 6 deletions(-)
diff --git a/src/PIP_Tree.cc b/src/PIP_Tree.cc index 9f039ea..855ad88 100644 --- a/src/PIP_Tree.cc +++ b/src/PIP_Tree.cc @@ -23,6 +23,8 @@ site: http://www.cs.unipr.it/ppl/ . */ #include <ppl-config.h> #include "PIP_Tree.defs.hh"
+#include <algorithm> + namespace PPL = Parma_Polyhedra_Library;
namespace { @@ -94,8 +96,20 @@ PIP_Decision_Node::as_decision() { return this; }
+bool +PIP_Solution_Node::OK() const { + /* FIXME: write me! */ + return true; +} + +bool +PIP_Decision_Node::OK() const { + /* FIXME: write me! */ + return true; +} + void -PIP_Decision_Node::update_tableau(PIP_Tree_Node **parent_ref, +PIP_Decision_Node::update_tableau(PIP_Tree_Node ** /* parent_ref */, dimension_type external_space_dim, dimension_type first_pending_constraint, const Constraint_Sequence &input_cs, @@ -124,7 +138,7 @@ PIP_Decision_Node::solve(PIP_Tree_Node **parent_ref, stt = true_child->solve(&true_child, context_true); if (false_child) { // Decision nodes with false child must have exactly one constraint - PPL_ASSERT(constraints_.num_rows() == 1); + PPL_ASSERT(1 == std::distance(constraints_.begin(), constraints_.end())); Constraint_System context_false(context); //FIXME: not implemented yet (constraint negation) //context_false.insert(!constraints_[0]); @@ -198,7 +212,7 @@ PIP_Solution_Node::ascii_load(std::istream& s) { }
void -PIP_Solution_Node::update_tableau(PIP_Tree_Node **parent_ref, +PIP_Solution_Node::update_tableau(PIP_Tree_Node ** /* parent_ref */, dimension_type external_space_dim, dimension_type first_pending_constraint, const Constraint_Sequence &input_cs, @@ -266,8 +280,8 @@ PIP_Solution_Node::update_tableau(PIP_Tree_Node **parent_ref, }
PIP_Problem_Status -PIP_Solution_Node::solve(PIP_Tree_Node **parent_ref, - const Constraint_System& context) { +PIP_Solution_Node::solve(PIP_Tree_Node** /* parent_ref */, + const Constraint_System& /* context */) { //FIXME return OPTIMIZED_PIP_PROBLEM; } diff --git a/src/PIP_Tree.defs.hh b/src/PIP_Tree.defs.hh index e1555a2..c3c1b4b 100644 --- a/src/PIP_Tree.defs.hh +++ b/src/PIP_Tree.defs.hh @@ -26,7 +26,8 @@ site: http://www.cs.unipr.it/ppl/ . */ #include "PIP_Tree.types.hh" #include "Variable.defs.hh" #include "Linear_Expression.types.hh" -#include "Constraint_System.types.hh" +#include "Constraint_System.defs.hh" +#include "Constraint_System.inlines.hh" #include "Constraint.defs.hh" #include "PIP_Problem.types.hh" #include "Matrix.defs.hh" @@ -56,6 +57,9 @@ public: //! Destructor. virtual ~PIP_Tree_Node();
+ //! Returns \c true if and only if \p *this is well formed. + virtual bool OK() const = 0; + protected: //! A type alias for a sequence of constraints. typedef std::vector<Constraint> Constraint_Sequence; @@ -143,6 +147,8 @@ public: void ascii_dump(std::ostream& s) const; bool ascii_load(std::istream& s);
+ bool OK() const; + private: //! A rational matrix, with a common nenominator class Rational_Matrix : public Matrix { @@ -301,6 +307,8 @@ public: */ const Constraint_System& constraints();
+ bool OK() const; + private: //! Pointer to the "true" child of \p *this. PIP_Tree_Node* true_child;