From b9870a364e35d8159a8bcc8c535a2aa971e78af9 Mon Sep 17 00:00:00 2001
From: Clifford Wolf <clifford@clifford.at>
Date: Thu, 28 Mar 2013 11:36:54 +0100
Subject: [PATCH] Improved subcircuit verbose output (added portmapper results)

---
 libs/subcircuit/subcircuit.cc | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/libs/subcircuit/subcircuit.cc b/libs/subcircuit/subcircuit.cc
index 6ee2a0fcc..b4e74be6b 100644
--- a/libs/subcircuit/subcircuit.cc
+++ b/libs/subcircuit/subcircuit.cc
@@ -1124,6 +1124,21 @@ class SubCircuit::SolverWorker
 
 			while (prunePortmapCandidates(portmapCandidates, enumerationMatrix, needle, haystack)) { }
 
+			if (verbose) {
+				my_printf("\nPortmapper results:\n");
+				for (int j = 0; j < int(enumerationMatrix.size()); j++) {
+					my_printf("%5d: %s\n", j, needle.graph.nodes[j].nodeId.c_str());
+					int variantCounter = 0;
+					for (auto &i2 : portmapCandidates.at(j)) {
+						my_printf("%*s variant %2d:", 6, "", variantCounter++);
+						int mapCounter = 0;
+						for (auto &i3 : i2)
+							my_printf("%s %s -> %s", mapCounter++ ? "," : "", i3.first.c_str(), i3.second.c_str());
+						my_printf("\n");
+					}
+				}
+			}
+
 			for (int j = 0; j < int(enumerationMatrix.size()); j++) {
 				if (portmapCandidates[j].size() == 0) {
 					if (verbose) {