munich-quantum-toolkit / munich-quantum-toolkit/core
📐 Define a format-independent runtime fixed-angle contract
@burgholzer is already working on this.
Since Aug 19, 2026.
- Dominant language
- C++
- Stars
- 133
- Forks
- 73
- Avg merge
- 17h 34m
- Merged PRs (30d)
- 261
Description
🤖 AI text below 🤖
Problem Statement
#2169 implements compile-time fixed-width OpenQASM angles and satisfies the representation and parser or lowering acceptance criterion in #1128. It intentionally lowers each folded angle to the existing binary64 gate-parameter boundary.
Runtime fixed-width angle state and device-aware angle quantization remain unresolved. Encoding either concern as OpenQASM-specific MLIR attributes would couple the compiler IR to one source format and create inconsistent behavior across importers and exporters.
Proposed Solution
Define a format-independent MLIR contract for runtime fixed-width angular values and target-aware quantization.
- Choose the owning dialect and representation for an angular value with a finite resolution.
- Define conversions between that representation and continuous floating-point gate parameters.
- Define the semantics of resizing, rounding, modular arithmetic, and runtime storage.
- Let compiler targets express supported angle resolutions and apply quantization at an explicit target-aware boundary.
- Extend OpenQASM runtime angle import and export only after the common representation exists.
The design must not add input-format-specific state to QC or QCO.
Acceptance criteria:
- A design note identifies the owning dialect, type or operation contract, and conversion boundaries.
- Tests cover runtime storage, conversion, and target-dependent quantization without depending on OpenQASM syntax.
- OpenQASM runtime angle declarations, reassignment, inputs, and outputs use the common contract when implemented.
This issue tracks the work that remains after #2169 closes #1128.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.