summaryrefslogtreecommitdiff
path: root/impl/main.cpp
diff options
context:
space:
mode:
authorCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-10-26 16:29:52 +1100
committerCarlo Zancanaro <carlo@pc-4w14-0.cs.usyd.edu.au>2012-10-26 16:29:52 +1100
commitc065ae2bd1176b17d137e0f52df6ef1d9af9e757 (patch)
tree2b8d69c0479791d5cff9b8c7514e272b4d1eca44 /impl/main.cpp
parent86ca7448849aaaea6db34b1d2bcf8d99d7d7b12c (diff)
Try to make the correct solver into a local solver
As far as I can tell, it's worked! Hooray!
Diffstat (limited to 'impl/main.cpp')
-rw-r--r--impl/main.cpp7
1 files changed, 4 insertions, 3 deletions
diff --git a/impl/main.cpp b/impl/main.cpp
index 84f17dd..94351ec 100644
--- a/impl/main.cpp
+++ b/impl/main.cpp
@@ -140,19 +140,20 @@ int main (int argc, char* argv[]) {
log::debug << system << endl;
system.indexMaxExpressions(); // make reverse-lookup O(1) instead of O(n)
- IdMap<Variable<ZBar>,ZBar> result = solve_for(system);
+ Solver<ZBar> solver(system); // local *and* lazy. I love it!
if (variables.size() > 0) {
for (unsigned int i = 0, size = system.variableCount(); i < size; ++i) {
Variable<ZBar>& var = system.variable(i);
if (variables.find(var.name()) != variables.end())
- cout << var.name() << " = " << result[var] << endl;
+ cout << var.name() << " = " << solver.solve(var) << endl;
}
} else {
for (unsigned int i = 0, size = system.variableCount(); i < size; ++i) {
Variable<ZBar>& var = system.variable(i);
- cout << var.name() << " = " << result[var] << endl;
+ cout << var.name() << " = " << solver.solve(var) << endl;
}
}
+
/*
DynamicMaxStrategy<ZBar> strategy(system);
DynamicVariableAssignment<ZBar> rho(system, strategy);