[Lemon-commits] deba: r3217 - lemon/trunk/lemon
Lemon SVN
svn at lemon.cs.elte.hu
Fri Mar 2 18:56:22 CET 2007
Author: deba
Date: Fri Mar 2 18:56:22 2007
New Revision: 3217
Modified:
lemon/trunk/lemon/min_cost_arborescence.h
Log:
Bug fix
Setting _pred in init()
Modified: lemon/trunk/lemon/min_cost_arborescence.h
==============================================================================
--- lemon/trunk/lemon/min_cost_arborescence.h (original)
+++ lemon/trunk/lemon/min_cost_arborescence.h Fri Mar 2 18:56:22 2007
@@ -398,7 +398,7 @@
/// equal to the arborescence value.
Value dualValue() const {
Value sum = 0;
- for (int i = 0; i < (int)_dual_variables.size(); ++i) {
+ for (int i = 0; i < int(_dual_variables.size()); ++i) {
sum += _dual_variables[i].value;
}
return sum;
@@ -459,13 +459,13 @@
}
bool operator==(const DualIt& it) const {
- return (Node)(*this) == (Node)it;
+ return static_cast<Node>(*this) == static_cast<Node>(it);
}
bool operator!=(const DualIt& it) const {
- return (Node)(*this) != (Node)it;
+ return static_cast<Node>(*this) != static_cast<Node>(it);
}
bool operator<(const DualIt& it) const {
- return (Node)(*this) < (Node)it;
+ return static_cast<Node>(*this) < static_cast<Node>(it);
}
private:
@@ -498,6 +498,7 @@
(*_cost_edges)[it].edge = INVALID;
_node_order->set(it, -3);
_heap_cross_ref->set(it, Heap::PRE_HEAP);
+ _pred->set(it, INVALID);
}
for (EdgeIt it(*graph); it != INVALID; ++it) {
_arborescence->set(it, false);
@@ -682,7 +683,7 @@
}
}
CostEdge minimum = (*_cost_edges)[nodes[0]];
- for (int i = 1; i < (int)nodes.size(); ++i) {
+ for (int i = 1; i < int(nodes.size()); ++i) {
if ((*_cost_edges)[nodes[i]].value < minimum.value) {
minimum = (*_cost_edges)[nodes[i]];
}
@@ -691,7 +692,7 @@
DualVariable var(_dual_node_list.size() - 1,
_dual_node_list.size(), minimum.value);
_dual_variables.push_back(var);
- for (int i = 0; i < (int)nodes.size(); ++i) {
+ for (int i = 0; i < int(nodes.size()); ++i) {
(*_cost_edges)[nodes[i]].value -= minimum.value;
level.edges.push_back((*_cost_edges)[nodes[i]]);
(*_cost_edges)[nodes[i]].edge = INVALID;
@@ -705,7 +706,7 @@
std::vector<Node> nodes;
while (!level_stack.empty() &&
level_stack.back().node_level >= node_bottom) {
- for (int i = 0; i < (int)level_stack.back().edges.size(); ++i) {
+ for (int i = 0; i < int(level_stack.back().edges.size()); ++i) {
Edge edge = level_stack.back().edges[i].edge;
Node source = graph->source(edge);
Value value = level_stack.back().edges[i].value;
@@ -724,7 +725,7 @@
level_stack.pop_back();
}
CostEdge minimum = (*_cost_edges)[nodes[0]];
- for (int i = 1; i < (int)nodes.size(); ++i) {
+ for (int i = 1; i < int(nodes.size()); ++i) {
if ((*_cost_edges)[nodes[i]].value < minimum.value) {
minimum = (*_cost_edges)[nodes[i]];
}
@@ -734,7 +735,7 @@
_dual_variables.push_back(var);
StackLevel level;
level.node_level = node_bottom;
- for (int i = 0; i < (int)nodes.size(); ++i) {
+ for (int i = 0; i < int(nodes.size()); ++i) {
(*_cost_edges)[nodes[i]].value -= minimum.value;
level.edges.push_back((*_cost_edges)[nodes[i]]);
(*_cost_edges)[nodes[i]].edge = INVALID;
More information about the Lemon-commits
mailing list