From ba43801ae0edd920aaedcc040e24b84ce2cc1116 Mon Sep 17 00:00:00 2001 From: Usachev Daniil <d.s.usachev@gmail.com> Date: Mon, 3 Mar 2025 16:20:03 +0300 Subject: [PATCH 1/3] fix --- lib/kitty | 2 +- src/gate/estimator/equivalence_estimator.cpp | 7 ++++--- src/gate/optimizer/reducer.cpp | 3 +-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/kitty b/lib/kitty index cd86c526d..514a3dfd9 160000 --- a/lib/kitty +++ b/lib/kitty @@ -1 +1 @@ -Subproject commit cd86c526d3e228b61114b8f883e9f28697169d30 +Subproject commit 514a3dfd9ae967804c429c722c446ea6455154e4 diff --git a/src/gate/estimator/equivalence_estimator.cpp b/src/gate/estimator/equivalence_estimator.cpp index 520f9925a..335bbc81d 100644 --- a/src/gate/estimator/equivalence_estimator.cpp +++ b/src/gate/estimator/equivalence_estimator.cpp @@ -125,9 +125,10 @@ void EquivalenceEstimator<SB>::estimate( addRoots<SB>(builder, result, tempRoots, newConstants, 0); } else { for (size_t i = 0; i < sizeRoots;) { - for (auto nodeID = result.roots[i]; nodeID != model::EntryID::Invalid; - nodeID = addTempRoot<SB>(builder, result, tempRoots, nodeID, - newConstants, firstRun)); + for (auto nodeID = result.roots[i]; nodeID != model::EntryID::Invalid && + builder->hasSim(nodeID); + nodeID = addTempRoot<SB>(builder, result, tempRoots, nodeID, + newConstants, firstRun)); if (addRoots<SB>(builder, result, tempRoots, newConstants, i)) { auto it = result.roots.begin() + i; diff --git a/src/gate/optimizer/reducer.cpp b/src/gate/optimizer/reducer.cpp index 767e29af6..84d0f00a8 100644 --- a/src/gate/optimizer/reducer.cpp +++ b/src/gate/optimizer/reducer.cpp @@ -531,8 +531,6 @@ void Reducer<SB>::transform( estimator::EqResult estimatorResult; estimator::EquivalenceEstimator<SB> estimator; - - simulator::Simulator<model::SubnetBuilder> simulator(builder); CounterExamples counterExamples; NotEqualPairs notEqualPairs; uint16_t inNum = builder->getInNum(); @@ -540,6 +538,7 @@ void Reducer<SB>::transform( for (uint16_t i = 0; i < numEstimations; ++i) { // Simulation and Estimation. + simulator::Simulator<model::SubnetBuilder> simulator(builder); if (counterExamples.empty()) { randomSimulation<SB>(builder, simulator, estimator, estimatorSettings, estimatorResult, numSimulations); -- GitLab From 203648ded88500be4da459222fdb9b708a14cd63 Mon Sep 17 00:00:00 2001 From: Usachev Daniil <d.s.usachev@gmail.com> Date: Mon, 3 Mar 2025 16:52:15 +0300 Subject: [PATCH 2/3] update --- src/gate/optimizer/reducer.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/gate/optimizer/reducer.cpp b/src/gate/optimizer/reducer.cpp index 84d0f00a8..0c03ab34a 100644 --- a/src/gate/optimizer/reducer.cpp +++ b/src/gate/optimizer/reducer.cpp @@ -539,6 +539,7 @@ void Reducer<SB>::transform( // Simulation and Estimation. simulator::Simulator<model::SubnetBuilder> simulator(builder); + std::cout << "sim start" << std::endl; if (counterExamples.empty()) { randomSimulation<SB>(builder, simulator, estimator, estimatorSettings, estimatorResult, numSimulations); @@ -549,6 +550,7 @@ void Reducer<SB>::transform( counterExamples.clear(); } + std::cout << "sim end" << std::endl; for (auto it = estimatorResult.roots.begin(); it != estimatorResult.roots.end(); ++it) { -- GitLab From 0abb9d6bd5b919c8645e98fad198170b6a5f025e Mon Sep 17 00:00:00 2001 From: Usachev Daniil <d.s.usachev@gmail.com> Date: Mon, 3 Mar 2025 18:56:13 +0300 Subject: [PATCH 3/3] update --- src/gate/optimizer/reducer.cpp | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/gate/optimizer/reducer.cpp b/src/gate/optimizer/reducer.cpp index 0c03ab34a..84d0f00a8 100644 --- a/src/gate/optimizer/reducer.cpp +++ b/src/gate/optimizer/reducer.cpp @@ -539,7 +539,6 @@ void Reducer<SB>::transform( // Simulation and Estimation. simulator::Simulator<model::SubnetBuilder> simulator(builder); - std::cout << "sim start" << std::endl; if (counterExamples.empty()) { randomSimulation<SB>(builder, simulator, estimator, estimatorSettings, estimatorResult, numSimulations); @@ -550,7 +549,6 @@ void Reducer<SB>::transform( counterExamples.clear(); } - std::cout << "sim end" << std::endl; for (auto it = estimatorResult.roots.begin(); it != estimatorResult.roots.end(); ++it) { -- GitLab