munich-quantum-toolkit / munich-quantum-toolkit/core

📐 Define a format-independent runtime fixed-angle contract

Open
#2,174 0 comments 0 reactions 1 assignee View on GitHub

@burgholzer is already working on this.

Since Aug 19, 2026.

c++ feature MLIR
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.