Skip to content

Commit

Permalink
🐛 Add debug output
Browse files Browse the repository at this point in the history
  • Loading branch information
ystade committed Jun 8, 2024
1 parent be81273 commit b5216fb
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion src/cliffordsynthesis/CliffordSynthesizer.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -436,16 +436,21 @@ void CliffordSynthesizer::updateResults(const Configuration& config,
void gateToLayer(const qc::Operation& gate, std::size_t& i,
std::vector<std::size_t>& layers,
std::vector<std::size_t>& layerNum, std::size_t& layer) {
std::cout << "gateToLayer -> getUsedQubits" << std::endl;
const auto& usedQubits = gate.getUsedQubits();
for (const auto& qubit : usedQubits) {
std::cout << "Dangerous line upcoming" << std::endl;
if (layerNum[qubit] >= layer) {
++layer;
layers.emplace_back(i);
break;
}
std::cout << "Puh, did it" << std::endl;
}
for (const auto& qubit : usedQubits) {
std::cout << "Again, dangerous line upcoming" << std::endl;
layerNum[qubit] = layer;
std::cout << "Puh, did it again" << std::endl;
}
++i;
}
Expand Down Expand Up @@ -477,6 +482,7 @@ std::vector<std::size_t> getLayers(const qc::QuantumComputation& qc) {

void CliffordSynthesizer::depthHeuristicSynthesis() {
PLOG_INFO << "Optimizing Circuit with Heuristic";
std::cout << "Optimizing Circuit with Heuristic" << std::endl;
if (initialCircuit->getDepth() == 0) {
return;
}
Expand All @@ -485,8 +491,10 @@ void CliffordSynthesizer::depthHeuristicSynthesis() {
optimalConfig.target = TargetMetric::Depth;
optimalConfig.initialTimestepLimit = configuration.splitSize;

std::cout << "Reordering Operations" << std::endl;
qc::CircuitOptimizer::reorderOperations(*initialCircuit);
qc::QuantumComputation optCircuit{initialCircuit->getNqubits()};
std::cout << "Get Layers" << std::endl;
const std::vector<std::size_t>& layers = getLayers(*initialCircuit);

std::vector<std::future<std::shared_ptr<qc::QuantumComputation>>> subCircuits;
Expand All @@ -501,20 +509,22 @@ void CliffordSynthesizer::depthHeuristicSynthesis() {
}

// launch threads
std::cout << "Launch threads" << std::endl;
subCircuits.emplace_back(
std::async(std::launch::async | std::launch::deferred,
[this, startIdx, endIdx, &optimalConfig]() {
return cs::CliffordSynthesizer::synthesizeSubcircuit(
initialCircuit, startIdx, endIdx, optimalConfig);
}));
}

std::cout << "Combine Circuits" << std::endl;
for (auto& subCircuit : subCircuits) {
const auto& circ = subCircuit.get();
for (auto& it : *circ) {
optCircuit.emplace_back(std::move(it));
}
}
std::cout << "Set Results" << std::endl;
results.setDepth(optCircuit.getDepth());

results.setResultCircuit(optCircuit);
Expand Down

0 comments on commit b5216fb

Please sign in to comment.