diff options
Diffstat (limited to 'impl/main.cpp')
| -rw-r--r-- | impl/main.cpp | 23 | 
1 files changed, 19 insertions, 4 deletions
| diff --git a/impl/main.cpp b/impl/main.cpp index b547c48..94351ec 100644 --- a/impl/main.cpp +++ b/impl/main.cpp @@ -140,6 +140,21 @@ int main (int argc, char* argv[]) {    log::debug << system << endl;    system.indexMaxExpressions(); // make reverse-lookup O(1) instead of O(n) +  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() << " = " << 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() << " = " << solver.solve(var) << endl; +    } +  } + +  /*    DynamicMaxStrategy<ZBar> strategy(system);    DynamicVariableAssignment<ZBar> rho(system, strategy);    strategy.setRho(rho); @@ -147,16 +162,16 @@ int main (int argc, char* argv[]) {    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() << " = " << rho[var].asKnown() << endl; -      } +      if (variables.find(var.name()) != variables.end()) +        cout << var.name() << " = " << rho[var] << endl;      }    } else {      for (unsigned int i = 0, size = system.variableCount(); i < size; ++i) {        Variable<ZBar>& var = system.variable(i); -      cout << var.name() << " = " << rho[var].asKnown() << endl; +      cout << var.name() << " = " << rho[var] << endl;      }    } +  */    parser -> free(parser);    tokens -> free(tokens); | 
