- collect_symbols(a.eval(), v); // eval() to expand assigned symbols
- collect_symbols(b.eval(), v);
- sym_desc_vec::iterator it = v.begin(), itend = v.end();
- while (it != itend) {
- int deg_a = a.degree(it->sym);
- int deg_b = b.degree(it->sym);
- it->deg_a = deg_a;
- it->deg_b = deg_b;
- it->max_deg = std::max(deg_a, deg_b);
- it->max_lcnops = std::max(a.lcoeff(it->sym).nops(), b.lcoeff(it->sym).nops());
- it->ldeg_a = a.ldegree(it->sym);
- it->ldeg_b = b.ldegree(it->sym);
- ++it;
+ collect_symbols(a, v);
+ collect_symbols(b, v);
+ for (auto & it : v) {
+ int deg_a = a.degree(it.sym);
+ int deg_b = b.degree(it.sym);
+ it.deg_a = deg_a;
+ it.deg_b = deg_b;
+ it.max_deg = std::max(deg_a, deg_b);
+ it.max_lcnops = std::max(a.lcoeff(it.sym).nops(), b.lcoeff(it.sym).nops());
+ it.ldeg_a = a.ldegree(it.sym);
+ it.ldeg_b = b.ldegree(it.sym);