From 7279e59e91b39b9fa220844b4ccea14bdfc3a78c Mon Sep 17 00:00:00 2001 From: Mate Soos Date: Tue, 7 May 2024 21:05:08 -0400 Subject: [PATCH] Allow setting the prefix --- src/Algebraic.cpp | 22 +++++++++++----------- src/Algebraic.hpp | 6 +++--- src/breakid.cpp | 28 ++++++++++++++-------------- src/breakid.hpp | 8 ++++---- 4 files changed, 32 insertions(+), 32 deletions(-) diff --git a/src/Algebraic.cpp b/src/Algebraic.cpp index d6caa12..898f783 100644 --- a/src/Algebraic.cpp +++ b/src/Algebraic.cpp @@ -203,9 +203,9 @@ bool Permutation::getImage(const BLit* orig, size_t sz, vector& img) const // printing cycles -void Permutation::print(std::ostream& out) const +void Permutation::print(std::ostream& out, const char* prefix) const { - out << "c "; + out << prefix; for (auto lit : getCycleReprs()) { out << "( "; vector cyc; @@ -376,15 +376,15 @@ void Group::addMatrix(shared_ptr m) if (conf->verbosity > 0) { cout << "c -> Matrix with " << m->nbRows() << " rows and " << m->nbColumns() << " columns detected" << endl; - } else if (conf->verbosity > 2) m->print(cout); + } else if (conf->verbosity > 2) m->print(cout, "c "); } -void Group::print(std::ostream& out) const +void Group::print(std::ostream& out, const char* prefix) const { - out << "c -- Permutations:" << endl; - for (const auto& p : permutations) p->print(out); - out << "c -- Matrices:" << endl; - for (const auto& m : matrices) m->print(out); + out << prefix << "-- Permutations:" << endl; + for (const auto& p : permutations) p->print(out, prefix); + out << prefix << "-- Matrices:" << endl; + for (const auto& m : matrices) m->print(out, prefix); } void Group::get_perms_to(vector>& out) @@ -864,11 +864,11 @@ Matrix::~Matrix() } } -void Matrix::print(std::ostream& out) const +void Matrix::print(std::ostream& out, const char* prefix) const { - out << "c rows " << nbRows() << " columns " << nbColumns() << endl; + out << prefix << "rows " << nbRows() << " columns " << nbColumns() << endl; for (auto row : rows) { - out << "c "; + out << prefix; for (auto lit : *row) out << lit << " "; out << endl; } diff --git a/src/Algebraic.hpp b/src/Algebraic.hpp index f1d213c..578448b 100644 --- a/src/Algebraic.hpp +++ b/src/Algebraic.hpp @@ -55,7 +55,7 @@ class Permutation : public std::enable_shared_from_this uint32_t supportSize() const; bool isIdentity(); - void print(std::ostream& out) const; + void print(std::ostream& out, const char* prefix) const; bool formsMatrixWith(shared_ptr other); std::pair, shared_ptr > getLargest( @@ -101,7 +101,7 @@ class Matrix public: Matrix(Config* conf); ~Matrix(); - void print(std::ostream& out) const; + void print(std::ostream& out, const char* prefix) const; void add(vector* row); uint32_t nbColumns() const; @@ -131,7 +131,7 @@ class Group void add(shared_ptr p); void checkColumnInterchangeability(shared_ptr m); - void print(std::ostream& out) const; + void print(std::ostream& out, const char* prefix) const; shared_ptr getInitialMatrix(); void addMatrices(); diff --git a/src/breakid.cpp b/src/breakid.cpp index 5a55997..a9a3e35 100644 --- a/src/breakid.cpp +++ b/src/breakid.cpp @@ -152,13 +152,13 @@ uint64_t BreakID::get_num_subgroups() const return dat->subgroups.size(); } -void BreakID::print_subgroups(std::ostream& out) { +void BreakID::print_subgroups(std::ostream& out, const char* prefix) { for (auto& grp : dat->subgroups) { out << "group size: " << grp->getSize() << " support: " << grp->getSupportSize() << endl; - grp->print(out); + grp->print(out, prefix); } } @@ -191,15 +191,15 @@ void BreakID::break_symm() } } -void BreakID::print_symm_break_stats() +void BreakID::print_symm_break_stats(const char* prefix) { - cout << "c matrices detected: " << dat->totalNbMatrices << endl; - cout << "c row swaps detected: " << dat->totalNbRowSwaps << endl; - cout << "c extra binary symmetry breaking clauses added: " << dat->brkr->getNbBinClauses() << "\n"; - cout << "c regular symmetry breaking clauses added: " << dat->brkr->getNbRegClauses() << "\n"; - cout << "c row interchangeability breaking clauses added: " << dat->brkr->getNbRowClauses() << "\n"; - cout << "c total symmetry breaking clauses added: " << dat->brkr->getAddedNbClauses() << "\n"; - cout << "c auxiliary variables introduced: " << dat->brkr->getAuxiliaryNbVars() << "\n"; + cout << prefix << "matrices detected: " << dat->totalNbMatrices << endl; + cout << prefix << "row swaps detected: " << dat->totalNbRowSwaps << endl; + cout << prefix << "extra binary symmetry breaking clauses added: " << dat->brkr->getNbBinClauses() << "\n"; + cout << prefix << "regular symmetry breaking clauses added: " << dat->brkr->getNbRegClauses() << "\n"; + cout << prefix << "row interchangeability breaking clauses added: " << dat->brkr->getNbRowClauses() << "\n"; + cout << prefix << "total symmetry breaking clauses added: " << dat->brkr->getAddedNbClauses() << "\n"; + cout << prefix << "auxiliary variables introduced: " << dat->brkr->getAuxiliaryNbVars() << "\n"; } uint32_t BreakID::get_num_break_cls() @@ -217,15 +217,15 @@ vector> BreakID::get_brk_cls() return dat->brkr->get_brk_cls(); } -void BreakID::print_perms_and_matrices(std::ostream& out) +void BreakID::print_perms_and_matrices(std::ostream& out, const char* prefix) { for (auto grp : dat->subgroups) { - grp->print(out); + grp->print(out, prefix); } } -void BreakID::print_generators(std::ostream& out) { - dat->theory->group->print(cout); +void BreakID::print_generators(std::ostream& out, const char* prefix) { + dat->theory->group->print(cout, prefix); } void BreakID::get_perms(vector >* out) diff --git a/src/breakid.hpp b/src/breakid.hpp index 40d0868..acfb106 100644 --- a/src/breakid.hpp +++ b/src/breakid.hpp @@ -105,10 +105,10 @@ struct BreakID { DLL_PUBLIC void break_symm(); //Print info - DLL_PUBLIC void print_subgroups(std::ostream& out); - DLL_PUBLIC void print_symm_break_stats(); - DLL_PUBLIC void print_perms_and_matrices(std::ostream& out); - DLL_PUBLIC void print_generators(std::ostream& out); + DLL_PUBLIC void print_subgroups(std::ostream& out, const char* prefix = "c "); + DLL_PUBLIC void print_symm_break_stats(const char* prefix = "c "); + DLL_PUBLIC void print_perms_and_matrices(std::ostream& out, const char* prefix = "c "); + DLL_PUBLIC void print_generators(std::ostream& out, const char* prefix = "c "); //Get info DLL_PUBLIC uint32_t get_num_generators();