✨ Support fixed-parameter compiler targets - #2575
Open
simon1hofmann wants to merge 12 commits into
Open
simon1hofmann wants to merge 12 commits into
simon1hofmann wants to merge 12 commits into
Conversation
🤖 *AI text below* 🤖 Keep native parameter restrictions in target matching, serialized target attributes, synthesis-basis selection, and conformance verification. Support arbitrary RZ with fixed RX(pi/2) pulses for native synthesis. Assisted-by: GPT-6 via Codex
Codecov Report❌ Patch coverage is 📢 Thoughts on this report? Let us know! |
🤖 *AI text below* 🤖 Build a reusable exact quarter-turn decomposition from the native pulse angle. Support either axis and sign, fractional and non-Clifford angles, and optional half turns without an angle catalog or another compiler pass. Bound pulse expansion and preserve phase for numeric and symbolic inputs. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Use a cyclic coordinate frame to support fixed RX, RY, or RZ pulses with arbitrary rotations around a distinct axis. Keep symbolic angles algebraic and preserve global phase. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Regenerate the public Python API for arbitrary and fixed rotation axes. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Apply explicit aggregate initialization, pointer checks, and test formatting. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Record supported axis pairs, scope, and final validation. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Integrate the remote plan formatting without changing the tested code. Assisted-by: GPT-6 via Codex # Conflicts: # .agent/plans/fixed-parameter-targets.md
This was referenced Sep 18, 2026
simon1hofmann
added this pull request to stack #2579
September 18, 2026 10:43
🤖 *AI text below* 🤖 Reject target changes that alter fixed parameter values, including changes between fixed and unrestricted capabilities. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Exercise numeric and symbolic angles in the native coverage suite, including phase-sensitive special-angle paths. Pass the optional half turn directly to satisfy clang-tidy. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Use one pulse and phase recipe for numeric and symbolic synthesis. Keep the computed pulse plan internal instead of exposing it through Python. Assisted-by: GPT-6 via Codex
🤖 *AI text below* 🤖 Use a private include root for the shared synthesis helper, avoiding parent-directory traversal without installing implementation details. Assisted-by: GPT-6 via Codex
simon1hofmann
marked this pull request as ready for review
September 21, 2026 13:24
This branch has not been deployed
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
Targets can now restrict individual gate parameters to fixed values. Matching, serialized target attributes, synthesis-basis selection, final verification, and target compatibility checks enforce the same restrictions. This lets downstream adapters describe native fixed-angle pulses without pretending that arbitrary rotations are available.
Single-qubit synthesis derives a pulse sequence from the declared angle and axes: one arbitrary RX/RY/RZ rotation plus a fixed rotation about a different axis. This covers all six axis pairs, both pulse signs, fractional turns, and non-Clifford angles, including fixed RZ. Numerical and symbolic synthesis preserve global phase and emit the declared pulse angle. The pulse sequence is computed once per target; there is no extra compiler pass or numerical search. Unrestricted capabilities use the existing pipeline; parameter values are inspected only for constrained capabilities.
Numeric and symbolic emitters share one pulse recipe. Python exposes target capabilities and basis kinds; the computed pulse plan stays internal.
Usage
fixed_parametershas one entry per parameter: a finite value fixes that parameter, andNoneleaves it unrestricted. Omit the list for unrestricted parameters. Multiple capabilities describe alternative values or ordered placements.supports_operation(..., parameters=[...])checks concrete values.Limitations
1e-15; angles are not reduced modulo a period because that can change phase.Validation
Assisted by GPT-6 via Codex.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).