Repository navigation
✨ Add fractional Heron compilation targets - #1087
Merged
Merged
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
11 of 12 tasks
Cover bounded target aliases and legacy Qiskit serialization. Extract registry isolation from #1027. Remove the extra test file. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de>
Cover old Qiskit rejection and narrower caller-defined RZZ bounds. Co-authored-by: Simon Hofmann <simon.t.hofmann@tum.de>
simon1hofmann
added this pull request to stack #1091
October 21, 2026 13:47
Keep equivalent RX aliases on every supported physical site, including targets that also expose a standard X gate. Retain phase-correct local lowering and add mapped regressions. Assisted-by: GPT-6 via Codex
…tional-heron # Conflicts: # CHANGELOG.md # tests/test_targets.py
Use the same notebook build ordering as #1088 to prevent concurrent HTML and Markdown builds from deleting each other’s example output.
simon1hofmann
marked this pull request as ready for review
October 21, 2026 14:53
burgholzer
requested changes
Oct 21, 2026
burgholzer
left a comment
Member
There was a problem hiding this comment.
Generally LGTM. Just two small requests for taking another look.
Use a shared packaging.version check while keeping Qiskit 2.1.2 support. Use theta parameters, simplify the local wrapping traversal and phase correction, and cover all optimization levels and large angles. Assisted-by: GPT-6 via Codex
Preserve the merged device, documentation, and registry changes alongside native IonQ and Rigetti lowering. Assisted-by: GPT-6 via Codex
Cover arbitrary U/RX compilation at all optimization levels for native and mapped targets, and check session equivalences remain unchanged. Keep local lowering because preset passes do not consistently enforce fixed R/RX angles. Restore noxfile.py to main. Assisted-by: GPT-6 via Codex
Update fractional Heron against the merged #1086 base while preserving its source tree. Assisted-by: GPT-6 via Codex
burgholzer
approved these changes
Oct 21, 2026
burgholzer
left a comment
Member
There was a problem hiding this comment.
Just one further idea. I think that is really the cleaner option here. 2.2 has been around for a while and should not be too controversial. Let's simply add a lower bound on the latest patch release in the 2.2 series. Then, after simplifying feel free to merge 🚀
Register fractional Heron targets unconditionally, remove obsolete compatibility guards and tests, and document the new Qiskit minimum and upgrade command. Assisted-by: GPT-6 via Codex
simon1hofmann
added a commit
that referenced
this pull request
Oct 22, 2026
simon1hofmann
added a commit
that referenced
this pull request
Oct 23, 2026
* Use version-aware Clifford+T synthesis * Use packaging for Qiskit version comparison * Remove prerelease-specific Clifford+T test * Retain Clifford+T optimization after synthesis * 🐛 Preserve Clifford+T basis after synthesis Assisted-by: GPT-5 via Codex * 📝 Link Clifford+T fix to #1093 Assisted-by: GPT-5 via Codex * 🐛 Preserve Clifford+T basis after synthesis Assisted-by: GPT-5 via Codex * 📝 Link Clifford+T fix to #1093 Assisted-by: GPT-5 via Codex * 🐛 Lower inverse Clifford gates in mirrors Pass the target and equivalence library to high-level synthesis so inverse ISWAP and DCX definitions are lowered before basis translation. Cover both gates at every optimization level and sort the changelog reference. Assisted-by: GPT-6 via Codex * ♻️ Simplify Clifford+T compilation orchestration Run continuous optimization, Solovay-Kitaev synthesis, and discrete cleanup in one staged pass manager. Disable permutation elision for native circuits so QASM exports preserve wire ordering without manual permutation repair. Reuse only discrete cleanup for exact mirrors and share the final run path. Cover all optimization levels and mirror variants with QASM2/QASM3 permutation round trips. Keep Qiskit 2.2.3 and the synthesis algorithm. Assisted-by: GPT-6 via Codex * 📝 Place #1081 changelog entry below #1087 --------- Signed-off-by: simon1hofmann <119581649+simon1hofmann@users.noreply.github.com> Co-authored-by: Lukas Burgholzer <burgholzer@me.com>
12 tasks done
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Description
Add fractional IBM Heron gate sets and a 156-qubit device. Require Qiskit 2.2.3 so fractional targets register unconditionally and angle-bound tests run on every supported version. Document the new minimum and upgrade command in
UPGRADING.md.RX and RZZ use Qiskit's
thetaparameter name. Numeric RZZ angles fold into [0, pi/2] with local gates and exact phase corrections, without changing Qiskit's global wrapping registry.Extracted from #1027 so this change can land independently of MQT Core 4.2. Original code authorship is retained.
Validation: the full suite passed on Qiskit 2.6.0 and in
minimums-3.11with Qiskit 2.2.3 (580 passed and four known expected failures in each run). All 206 target tests run without version skips, including all optimization levels and large RZZ angles. All lint hooks passed with Python 3.14 type checking. A fresh parallel documentation build passed with existing warnings; the upgrade section and command were checked in the rendered HTML.GPT-6 via Codex assisted with extraction, review fixes, tests, and this description.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).