for (Inequation ita : added_constraints)
system.add(ita);
log.trace("Solver 01");
Solver solver = SolverFactory.createSolver();
solver.set(GetStmt2(),GetDeep(),__new_variables,__local_parameters,system);
/*
* cout<<"\n Solver = \n"; solver.Print();
*/
Quast local__result = solver.Max();
/*
* cout<<"\n local = \n"; local__result.Print();
*/
local__result.SubstituteByString(__mapping_counters_alphas);
result = result.Max(local__result);
// cout<<"\n final = \n";
// result.Print();
// getchar();
}
parameter_of_maximum.add(_alpha.toString());
result.SubstituteByString(__mapping_counters_alphas);
result = result.EliminateRedondantLeaves(false);
result = result.Simplify(affine_environment, GetParameters());
// result=result.Compress();
SetQuast(result);
} else {
log.trace("Not IsThereNonAffineConstraints");
// all constraints are affine ==> compute the exact definition
List<String> __local_parameters = GetParameters();
Quast result = new Quast(); // _|_
// build affine systems
//int i = 0;
log.trace("AffineValidStmt2: " + affine_valid_stmt2.size());
for (List<Inequation> itw : affine_valid_stmt2) {
// valid read
List<Inequation> system = new ArrayList<Inequation>();// =*itr;
// if(affine_environment.size()>0);
// system=*affine_environment.begin();
// valid write
for (Inequation iti : itw)
system.add(iti);
// lexicographic precedence
for (Inequation itp : precedence)
system.add(itp);
// same variable
for (Inequation itsc : affine_index_equality)
system.add(itsc);
log.trace("Solver 02");
Solver solver = SolverFactory.createSolver();
solver.set(GetStmt2(),GetDeep(),stmt2_iteration,__local_parameters,system);
Quast local_result = solver.Max();
log.trace("Local Result: " + local_result);
result = result.Max(local_result);
}