cda-tum / mqt-qcec

MQT QCEC - A tool for Quantum Circuit Equivalence Checking
https://mqt.readthedocs.io/projects/qcec
MIT License
90 stars 21 forks source link

🐛 Fix compatibility check in alternating checker #237

Closed burgholzer closed 1 year ago

burgholzer commented 1 year ago

Description

Fix an oversight in one of the compatibility checks for the alternating checker that could cause segfaults. An exception was thrown erroneously if both circuits contained ancillary qubits that were idle. While fixing, I took the opportunity to simplify the underlying code and eliminate some code duplication.

Fixes #236

Checklist:

codecov[bot] commented 1 year ago

Codecov Report

Merging #237 (6efd617) into main (7d07e6e) will decrease coverage by 0.2%. The diff coverage is 100.0%.

@@           Coverage Diff           @@
##            main    #237     +/-   ##
=======================================
- Coverage   97.0%   96.9%   -0.2%     
=======================================
  Files         34      34             
  Lines       1721    1716      -5     
  Branches     210     210             
=======================================
- Hits        1671    1664      -7     
- Misses        50      52      +2     
Flag Coverage Δ
cpp 96.8% <100.0%> (-0.2%) :arrow_down:
python 97.3% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files Coverage Δ
src/checker/dd/DDAlternatingChecker.cpp 86.8% <100.0%> (-2.1%) :arrow_down:
src/checker/dd/DDEquivalenceChecker.cpp 90.8% <0.0%> (-1.0%) :arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.