Skip to content

✨ Add the GPI synthesis basis - #2753

Merged
burgholzer merged 1 commit into
mainfrom
codex/fixed-equatorial-pulses
Oct 13, 2026
Merged

burgholzer merged 1 commit into
mainfrom
codex/fixed-equatorial-pulses

Conversation

@burgholzer

@burgholzer burgholzer commented Oct 13, 2026 •

Copy link
Copy Markdown
Member

🤖 AI text below 🤖

Description

Add the GPI single-qubit synthesis basis: equatorial rotations R(π, φ) and R(π/2, φ) with unrestricted azimuth on every target site. The compiler emits at most three pulses for constant and runtime single-qubit unitaries and preserves global phase. The basis is exposed as GPI in C++ and Python and gpi in pass options. Qiskit export retains native GPI/GPI2 names and phase conventions.

Direct runtime fusion normalizes large rotation angles before adding the pulse phase offsets. This preserves the unitary for inputs such as RZ(0.3), RX(theta), RZ(0.7) with theta = 1e16.

Validation: 913 native compiler, decomposition, synthesis, and optimization tests plus 63 Python Qiskit-target tests pass. The large-angle regression fails before the normalization fix and passes afterward. Generated stubs, repository lint, and whole-file C++ lint pass. Independent Ponytail review has no remaining findings. CI for the updated head is pending.

AI assistance covered implementation, cleanup, independent review, regression tests, validation, and this description. Human acceptance remains.

Checklist

  • The pull request only contains commits that are focused and relevant to this change.
  • I have added appropriate tests that cover the new/changed functionality.
  • I have updated the documentation to reflect these changes.
  • The changes follow the project's style guidelines and introduce no new warnings.
  • The changes are fully tested and pass the CI checks.
  • I have reviewed my own code changes.

If PR contains AI-assisted content:

  • Any agent that created, edited, or submitted GitHub content was explicitly authorized for that scope, as required by our AI Usage Guidelines.
  • Every agent-authored or agent-edited public text body begins with the visible disclosure 🤖 *AI text below* 🤖 (titles are exempt).
  • I have disclosed AI assistance in the PR description.
  • I confirm that I have personally reviewed and understood all AI-generated content, and accept full responsibility for it.

@burgholzer burgholzer added enhancement Improvement of existing feature c++ Anything related to C++ code python Anything related to Python code MLIR Anything related to MLIR labels Oct 13, 2026
@burgholzer burgholzer self-assigned this Oct 13, 2026
@codecov

codecov Bot commented Oct 13, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 95.83333% with 2 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
...lib/Dialect/QCO/Transforms/Decomposition/Euler.cpp 94.2% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

@burgholzer burgholzer added this to the v4.1.0 - QDMI 1.4 / MQSF milestone Oct 13, 2026
Recognize pi and pi/2 equatorial pulses with free azimuth as the GPI
single-qubit basis. Synthesize constant and runtime unitaries with full
phase preservation and retain native GPI/GPI2 conventions on Qiskit export.

Normalize runtime rotation angles before direct GPI fusion so large angles
do not absorb the smaller phase offsets in the pulse recipe.

Assisted-by: GPT-6 via Codex
@burgholzer
burgholzer force-pushed the codex/fixed-equatorial-pulses branch from fdf163a to db2d55e Compare October 13, 2026 19:11
@burgholzer burgholzer changed the title ✨ Synthesize fixed-angle equatorial pulses ✨ Add the GPI synthesis basis Oct 13, 2026
@burgholzer
burgholzer enabled auto-merge (squash) October 13, 2026 19:17
@burgholzer
burgholzer merged commit e87be07 into main Oct 13, 2026
41 of 43 checks passed
@burgholzer
burgholzer deleted the codex/fixed-equatorial-pulses branch October 13, 2026 20:13
@burgholzer burgholzer mentioned this pull request Oct 13, 2026
8 of 10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c++ Anything related to C++ code enhancement Improvement of existing feature MLIR Anything related to MLIR python Anything related to Python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant