[PPL-devel] [GIT] ppl/ppl(pip): Removed useless pointer to problem object in PIP_Tree_Node.

François Galea francois.galea at uvsq.fr
Tue Oct 6 16:52:56 CEST 2009


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

Author: François Galea <francois.galea at uvsq.fr>
Date:   Tue Oct  6 16:29:54 2009 +0200

Removed useless pointer to problem object in PIP_Tree_Node.

---

 src/PIP_Problem.cc   |    2 +-
 src/PIP_Tree.cc      |   24 ++++++++++--------------
 src/PIP_Tree.defs.hh |   10 +++-------
 3 files changed, 14 insertions(+), 22 deletions(-)

diff --git a/src/PIP_Problem.cc b/src/PIP_Problem.cc
index 3e657f3..225372f 100644
--- a/src/PIP_Problem.cc
+++ b/src/PIP_Problem.cc
@@ -79,7 +79,7 @@ PPL::PIP_Problem::solve() const {
       PIP_Problem_Status return_value;
 
       if (current_solution == 0)
-        x.current_solution = new PIP_Solution_Node(&x);
+        x.current_solution = new PIP_Solution_Node();
       if (input_cs.empty()) {
         // no constraints: solution = {0}
         return OPTIMIZED_PIP_PROBLEM;
diff --git a/src/PIP_Tree.cc b/src/PIP_Tree.cc
index 2c9fe70..5e6bcd1 100644
--- a/src/PIP_Tree.cc
+++ b/src/PIP_Tree.cc
@@ -112,15 +112,13 @@ operator<<(std::ostream& os, const PIP_Tree_Node::Artificial_Parameter& x) {
 
 } // namespace IO_Operators
 
-PIP_Tree_Node::PIP_Tree_Node(PIP_Problem* p)
-  : problem(p),
-    constraints_(),
+PIP_Tree_Node::PIP_Tree_Node()
+  : constraints_(),
     artificial_parameters() {
 }
 
 PIP_Tree_Node::PIP_Tree_Node(const PIP_Tree_Node &x)
-  : problem(x.problem),
-    constraints_(x.constraints_),
+  : constraints_(x.constraints_),
     artificial_parameters(x.artificial_parameters) {
 }
 
@@ -171,8 +169,8 @@ PIP_Decision_Node::~PIP_Decision_Node() {
 PIP_Solution_Node::~PIP_Solution_Node() {
 }
 
-PIP_Solution_Node::PIP_Solution_Node(PIP_Problem* p)
-  : PIP_Tree_Node(p),
+PIP_Solution_Node::PIP_Solution_Node()
+  : PIP_Tree_Node(),
     tableau(),
     basis(),
     mapping(),
@@ -193,7 +191,7 @@ PIP_Solution_Node::PIP_Solution_Node(const PIP_Solution_Node &x)
 
 PIP_Solution_Node::PIP_Solution_Node(const PIP_Solution_Node &x,
                                      bool empty_constraints)
-  : PIP_Tree_Node(x.problem),
+  : PIP_Tree_Node(),
     tableau(x.tableau),
     basis(x.basis),
     mapping(x.mapping),
@@ -206,10 +204,9 @@ PIP_Solution_Node::PIP_Solution_Node(const PIP_Solution_Node &x,
   }
 }
 
-PIP_Decision_Node::PIP_Decision_Node(PIP_Problem* p,
-                                     PIP_Tree_Node* fcp,
+PIP_Decision_Node::PIP_Decision_Node(PIP_Tree_Node* fcp,
                                      PIP_Tree_Node* tcp)
-  : PIP_Tree_Node(p),
+  : PIP_Tree_Node(),
     true_child(tcp),
     false_child(fcp) {
 }
@@ -1174,14 +1171,13 @@ PIP_Solution_Node::solve(PIP_Tree_Node*& parent_ref, const Matrix& ctx,
         }
 
         /* Create a decision Node to become parent of current Node */
-        PIP_Decision_Node* parent
-        = new PIP_Decision_Node(fals->problem, fals, tru);
+        PIP_Decision_Node* parent = new PIP_Decision_Node(fals, tru);
         parent->add_constraint(test, parameters);
 
         if (!cs.empty()) {
           /* If node to be solved had tautologies, store them in a new
              decision node */
-          parent = new PIP_Decision_Node(fals->problem, 0, parent);
+          parent = new PIP_Decision_Node(0, parent);
           cs.swap(parent->constraints_);
         }
         aps.swap(parent->artificial_parameters);
diff --git a/src/PIP_Tree.defs.hh b/src/PIP_Tree.defs.hh
index e70f467..e4a7e8b 100644
--- a/src/PIP_Tree.defs.hh
+++ b/src/PIP_Tree.defs.hh
@@ -122,7 +122,7 @@ public:
 
 protected:
   //! Default constructor.
-  PIP_Tree_Node(PIP_Problem* p);
+  PIP_Tree_Node();
 
   //! Copy constructor.
   PIP_Tree_Node(const PIP_Tree_Node &x);
@@ -136,10 +136,6 @@ protected:
   friend class PIP_Decision_Node;
   friend class PIP_Solution_Node;
 
-  //FIXME - remove problem pointer
-  //! A pointer to the master problem object.
-  PIP_Problem* problem;
-
   //! The local system of parameter constraints.
   Constraint_System constraints_;
 
@@ -199,7 +195,7 @@ protected:
 class PIP_Solution_Node : public PIP_Tree_Node {
 public:
   //! Default constructor.
-  PIP_Solution_Node(PIP_Problem* p);
+  PIP_Solution_Node();
 
   //! Destructor.
   ~PIP_Solution_Node();
@@ -447,7 +443,7 @@ private:
     \exception std::invalid_argument
     Thrown if \p cs contains strict inequalities.
   */
-  PIP_Decision_Node(PIP_Problem* p, PIP_Tree_Node* fcp, PIP_Tree_Node* tcp);
+  PIP_Decision_Node(PIP_Tree_Node* fcp, PIP_Tree_Node* tcp);
 
 protected:
   /*! \brief




More information about the PPL-devel mailing list