diff options
Diffstat (limited to 'impl/ImprovementOperator.hpp')
-rw-r--r-- | impl/ImprovementOperator.hpp | 19 |
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(); |