summaryrefslogtreecommitdiff
path: root/impl/ImprovementOperator.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'impl/ImprovementOperator.hpp')
-rw-r--r--impl/ImprovementOperator.hpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/impl/ImprovementOperator.hpp b/impl/ImprovementOperator.hpp
index 716768d..d99ccbc 100644
--- a/impl/ImprovementOperator.hpp
+++ b/impl/ImprovementOperator.hpp
@@ -39,7 +39,7 @@ struct NaiveImprovementOperator : public ImprovementOperator<Domain> {
strat.set(expr, index);
}
}
- //log::strategy << strat;
+ //log::strategy << strat << std::endl;
return changed;
}
};
@@ -169,7 +169,6 @@ struct SmartImprovementOperator : public ImprovementOperator<Domain> {
};
void invalidateSubexpressions(IdSet<MaxExpression<Domain>>& set, const Expression<Domain>* expr) const {
- if (!expr) return;
const MaxExpression<Domain>* maxExpr = dynamic_cast<const MaxExpression<Domain>*>(expr);
if (maxExpr != NULL) {
if (!set.contains(*maxExpr)) {
@@ -178,8 +177,7 @@ struct SmartImprovementOperator : public ImprovementOperator<Domain> {
end = maxExpr->arguments().end();
it != end;
++it) {
- if (*it)
- invalidateSubexpressions(set, *it);
+ invalidateSubexpressions(set, *it);
}
}
}
@@ -226,17 +224,20 @@ struct SmartImprovementOperator : public ImprovementOperator<Domain> {
stableSet = invalidSet.inverse();
}
- log::strategy << "stable: " << stableSet;
- log::strategy << "infl: " << _influence;
+ log::strategy << "stable: " << stableSet << std::endl;
+ log::strategy << "infl: " << _influence << std::endl;
DynamicMaxStrategy strat(_system, stratOut, _influence, rho, stableSet, changedSet);
- log::strategy << "invalid: " << invalidSet;
+ log::strategy << "invalid: " << invalidSet << std::endl;
for (auto it = invalidSet.begin(),
end = invalidSet.end();
it != end;
++it) {
- log::strategy << _system.maxExpression(*it);
- strat.get(_system.maxExpression(*it));
+ unsigned int subExpression = strat.get(_system.maxExpression(*it));
+ log::strategy << _system.maxExpression(*it)
+ << " -> "
+ << subExpression << std::endl;
}
+ log::strategy << std::endl;
IdSet<MaxExpression<Domain>> seen;
for (auto it = changedSet.begin(),
end = changedSet.end();