bool operator()(const VariableSet & m,const VariableSet & n) const { bool result = false; int msz = m.size(); int nsz = n.size(); if(msz!=nsz) { result = msz< nsz; } else if(msz>0) { result = false; // perhaps they are equal Variable v1,v2; bool b1 = m.firstVariable(v1); bool b2 = n.firstVariable(v2); if(v1==v2) { while(b1&&b2) { b1 = m.nextVariable(v1); b2 = n.nextVariable(v2); if(b1) { if(v1!=v2) { result = operator()(v1,v2); }; } else break; }; } else { result = operator()(v1,v2); }; if(b1!=b2) errorh(__LINE__); }; return result; };
void TeXDisplay::printTeXVariableSet(const VariableSet & x) { d_sink.put(" $\\{$ "); Variable var; bool b = x.firstVariable(var); if(b) { d_sink.put(var); b = x.nextVariable(var); while(b) { d_sink.put(','); d_sink.put(var); b = x.nextVariable(var); }; }; d_sink.put(" $\\}$ "); };
void AdmWithLevels::sortIntoKnownsAndUnknowns(const VariableSet & x, VariableSet & knowns,VariableSet & unknowns) const { knowns.clear(); unknowns.clear(); Variable v; bool b = x.firstVariable(v); while(b) { if(d_knowns.present(v)) { knowns.insert(v); } else { unknowns.insert(v); }; b = x.nextVariable(v); }; };