[PPL-devel] [GIT] ppl/ppl(master): Got rid of non-const PIP_Tree_Node as_decision() and as_solution() methods.
Enea Zaffanella
zaffanella at cs.unipr.it
Sat Feb 20 12:32:16 CET 2010
Module: ppl/ppl
Branch: master
Commit: 28dc8bb7f4c03855c8581516b3948650bea22e3b
URL: http://www.cs.unipr.it/git/gitweb.cgi?p=ppl/ppl.git;a=commit;h=28dc8bb7f4c03855c8581516b3948650bea22e3b
Author: Enea Zaffanella <zaffanella at cs.unipr.it>
Date: Sat Feb 20 12:30:19 2010 +0100
Got rid of non-const PIP_Tree_Node as_decision() and as_solution() methods.
---
src/PIP_Problem.cc | 14 ++++++++------
src/PIP_Tree.cc | 48 ++++++++++++++++--------------------------------
src/PIP_Tree.defs.hh | 12 ------------
3 files changed, 24 insertions(+), 50 deletions(-)
diff --git a/src/PIP_Problem.cc b/src/PIP_Problem.cc
index ad234eb..8dbae6d 100644
--- a/src/PIP_Problem.cc
+++ b/src/PIP_Problem.cc
@@ -352,12 +352,12 @@ PPL::PIP_Problem::ascii_dump(std::ostream& s) const {
s << "\ncurrent_solution: ";
if (current_solution == 0)
s << "BOTTOM\n";
- else if (PIP_Decision_Node* dec = current_solution->as_decision()) {
+ else if (const PIP_Decision_Node* dec = current_solution->as_decision()) {
s << "DECISION\n";
dec->ascii_dump(s);
}
else {
- PIP_Solution_Node* sol = current_solution->as_solution();
+ const PIP_Solution_Node* sol = current_solution->as_solution();
PPL_ASSERT(sol != 0);
s << "SOLUTION\n";
sol->ascii_dump(s);
@@ -470,13 +470,15 @@ PPL::PIP_Problem::ascii_load(std::istream& s) {
if (str == "BOTTOM")
current_solution = 0;
else if (str == "DECISION") {
- current_solution = new PIP_Decision_Node(0, 0);
- if (!current_solution->as_decision()->ascii_load(s))
+ PIP_Decision_Node* dec = new PIP_Decision_Node(0, 0);
+ current_solution = dec;
+ if (!dec->ascii_load(s))
return false;
}
else if (str == "SOLUTION") {
- current_solution = new PIP_Solution_Node();
- if (!current_solution->as_solution()->ascii_load(s))
+ PIP_Solution_Node* sol = new PIP_Solution_Node;
+ current_solution = sol;
+ if (!sol->ascii_load(s))
return false;
}
else
diff --git a/src/PIP_Tree.cc b/src/PIP_Tree.cc
index deaeb15..ee05538 100644
--- a/src/PIP_Tree.cc
+++ b/src/PIP_Tree.cc
@@ -423,41 +423,21 @@ PIP_Tree_Node::as_solution() const {
return 0;
}
-PIP_Solution_Node*
-PIP_Tree_Node::as_solution() {
- return 0;
-}
-
const PIP_Decision_Node*
PIP_Tree_Node::as_decision() const {
return 0;
}
-PIP_Decision_Node*
-PIP_Tree_Node::as_decision() {
- return 0;
-}
-
const PIP_Solution_Node*
PIP_Solution_Node::as_solution() const {
return this;
}
-PIP_Solution_Node*
-PIP_Solution_Node::as_solution() {
- return this;
-}
-
const PIP_Decision_Node*
PIP_Decision_Node::as_decision() const {
return this;
}
-PIP_Decision_Node*
-PIP_Decision_Node::as_decision() {
- return this;
-}
-
dimension_type
PIP_Tree_Node::insert_artificials(Variables_Set& params,
const dimension_type space_dimension) const {
@@ -708,12 +688,12 @@ PIP_Decision_Node::ascii_dump(std::ostream& s) const {
s << "\ntrue_child: ";
if (true_child == 0)
s << "BOTTOM\n";
- else if (PIP_Decision_Node* dec = true_child->as_decision()) {
+ else if (const PIP_Decision_Node* dec = true_child->as_decision()) {
s << "DECISION\n";
dec->ascii_dump(s);
}
else {
- PIP_Solution_Node* sol = true_child->as_solution();
+ const PIP_Solution_Node* sol = true_child->as_solution();
PPL_ASSERT(sol != 0);
s << "SOLUTION\n";
sol->ascii_dump(s);
@@ -723,12 +703,12 @@ PIP_Decision_Node::ascii_dump(std::ostream& s) const {
s << "\nfalse_child: ";
if (false_child == 0)
s << "BOTTOM\n";
- else if (PIP_Decision_Node* dec = false_child->as_decision()) {
+ else if (const PIP_Decision_Node* dec = false_child->as_decision()) {
s << "DECISION\n";
dec->ascii_dump(s);
}
else {
- PIP_Solution_Node* sol = false_child->as_solution();
+ const PIP_Solution_Node* sol = false_child->as_solution();
PPL_ASSERT(sol != 0);
s << "SOLUTION\n";
sol->ascii_dump(s);
@@ -755,13 +735,15 @@ PIP_Decision_Node::ascii_load(std::istream& s) {
if (str == "BOTTOM")
true_child = 0;
else if (str == "DECISION") {
- true_child = new PIP_Decision_Node(0, 0);
- if (!true_child->as_decision()->ascii_load(s))
+ PIP_Decision_Node* dec = new PIP_Decision_Node(0, 0);
+ true_child = dec;
+ if (!dec->ascii_load(s))
return false;
}
else if (str == "SOLUTION") {
- true_child = new PIP_Solution_Node();
- if (!true_child->as_solution()->ascii_load(s))
+ PIP_Solution_Node* sol = new PIP_Solution_Node;
+ true_child = sol;
+ if (!sol->ascii_load(s))
return false;
}
else
@@ -780,13 +762,15 @@ PIP_Decision_Node::ascii_load(std::istream& s) {
if (str == "BOTTOM")
false_child = 0;
else if (str == "DECISION") {
- false_child = new PIP_Decision_Node(0, 0);
- if (!false_child->as_decision()->ascii_load(s))
+ PIP_Decision_Node* dec = new PIP_Decision_Node(0, 0);
+ false_child = dec;
+ if (!dec->ascii_load(s))
return false;
}
else if (str == "SOLUTION") {
- false_child = new PIP_Solution_Node();
- if (!false_child->as_solution()->ascii_load(s))
+ PIP_Solution_Node* sol = new PIP_Solution_Node;
+ false_child = sol;
+ if (!sol->ascii_load(s))
return false;
}
else
diff --git a/src/PIP_Tree.defs.hh b/src/PIP_Tree.defs.hh
index a8cc6a9..12b1292 100644
--- a/src/PIP_Tree.defs.hh
+++ b/src/PIP_Tree.defs.hh
@@ -64,15 +64,9 @@ public:
//! Returns \p this if \p *this is a solution node, 0 otherwise.
virtual const PIP_Solution_Node* as_solution() const;
- //! Returns \p this if \p *this is a solution node, 0 otherwise.
- virtual PIP_Solution_Node* as_solution();
-
//! Returns \p this if \p *this is a decision node, 0 otherwise.
virtual const PIP_Decision_Node* as_decision() const;
- //! Returns \p this if \p *this is a decision node, 0 otherwise.
- virtual PIP_Decision_Node* as_decision();
-
/*! \brief
Returns the system of parameter constraints controlling \p *this.
@@ -327,9 +321,6 @@ public:
//! Returns \p this.
virtual const PIP_Solution_Node* as_solution() const;
- //! Returns \p this.
- virtual PIP_Solution_Node* as_solution();
-
//! Prints on \p s the tree rooted in \p *this.
virtual void print_tree(std::ostream& s,
unsigned indent,
@@ -694,9 +685,6 @@ public:
//! Returns \p this.
virtual const PIP_Decision_Node* as_decision() const;
- //! Returns \p this.
- virtual PIP_Decision_Node* as_decision();
-
//! Returns a const pointer to the \p b (true or false) branch of \p *this.
const PIP_Tree_Node* child_node(bool b) const;
More information about the PPL-devel
mailing list