diff --git a/packages/CLPBN/horus/LiftedWCNF.cpp b/packages/CLPBN/horus/LiftedWCNF.cpp index 33d0c87ca..9357311f6 100644 --- a/packages/CLPBN/horus/LiftedWCNF.cpp +++ b/packages/CLPBN/horus/LiftedWCNF.cpp @@ -60,7 +60,8 @@ Literal::toString ( -std::ostream& operator<< (ostream &os, const Literal& lit) +std::ostream& +operator<< (ostream &os, const Literal& lit) { os << lit.toString(); return os; @@ -256,7 +257,7 @@ LogVarTypes Clause::logVarTypes (size_t litIdx) const { LogVarTypes types; - const LogVars lvs = literals_[litIdx].logVars(); + const LogVars& lvs = literals_[litIdx].logVars(); for (size_t i = 0; i < lvs.size(); i++) { if (posCountedLvs_.contains (lvs[i])) { types.push_back (LogVarType::POS_LV); @@ -326,7 +327,8 @@ Clause::printClauses (const Clauses& clauses) -std::ostream& operator<< (ostream &os, const Clause& clause) +std::ostream& +operator<< (ostream &os, const Clause& clause) { for (unsigned i = 0; i < clause.literals_.size(); i++) { if (i != 0) os << " v " ; @@ -357,6 +359,23 @@ Clause::getLogVarSetExcluding (size_t idx) const +std::ostream& +operator<< (std::ostream &os, const LitLvTypes& lit) +{ + os << lit.lid_ << "<" ; + for (size_t i = 0; i < lit.lvTypes_.size(); i++) { + switch (lit.lvTypes_[i]) { + case LogVarType::FULL_LV: os << "F" ; break; + case LogVarType::POS_LV: os << "P" ; break; + case LogVarType::NEG_LV: os << "N" ; break; + } + } + os << ">" ; + return os; +} + + + LiftedWCNF::LiftedWCNF (const ParfactorList& pfList) : freeLiteralId_(0), pfList_(pfList) { @@ -494,7 +513,7 @@ LiftedWCNF::getLiteralId (PrvGroup prvGroup, unsigned range) assert (Util::contains (map_, prvGroup)); return map_[prvGroup][range]; } - + void diff --git a/packages/CLPBN/horus/LiftedWCNF.h b/packages/CLPBN/horus/LiftedWCNF.h index 2296d9a28..e360718a7 100644 --- a/packages/CLPBN/horus/LiftedWCNF.h +++ b/packages/CLPBN/horus/LiftedWCNF.h @@ -179,6 +179,8 @@ class LitLvTypes void setAllFullLogVars (void) { std::fill (lvTypes_.begin(), lvTypes_.end(), LogVarType::FULL_LV); } + friend std::ostream& operator<< (std::ostream &os, const LitLvTypes& lit); + private: LiteralId lid_; LogVarTypes lvTypes_;