Skip to content

feat: add pulse-level control#10

Merged
splch merged 4 commits intomainfrom
feat/pulse-level-control
Mar 13, 2026
Merged

feat: add pulse-level control#10
splch merged 4 commits intomainfrom
feat/pulse-level-control

Conversation

@splch
Copy link
Copy Markdown
Owner

@splch splch commented Mar 12, 2026

Add generic pulse package with Port/Frame/Waveform/8 instruction types, immutable Program, fluent Builder, and 5 standard waveform shapes. Add Braket OpenPulse QASM emission. IBM/local reject pulse programs; mock accepts them.

Add generic pulse package with Port/Frame/Waveform/8 instruction types,
immutable Program, fluent Builder, and 5 standard waveform shapes. Add
IonQ am-v4 custom pulse envelope types with backend integration. Add
Braket OpenPulse QASM emission. IBM/local reject pulse programs; mock
accepts them. Update feature matrix.
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

splch added 3 commits March 12, 2026 17:25
Two-qubit coupling in pulsesim:
- Static ZZ coupling via CouplingMap with diagonal phase kernel
- Cross-resonance drives via CRFrameMap with conditioned rotation
- Functional options (WithCoupling, WithCRFrames) on pulsesim.New()
- Block-stride 2Q kernels matching statevector kernel2q pattern
- ZZ applied during Play and Delay; CR detected per-frame

OpenPulse QASM parser (pulse/qasmparse):
- Hand-written lexer with duration literals and comment support
- Recursive descent parser for all 8 pulse instruction types
- Complex constant parsing with lexer save/restore backtracking
- Built-in waveform resolution (constant, gaussian, drag, gaussian_square)
- Custom waveform registration via WithWaveform option
- Round-trips with braket serializer format

Also wired coupling options through backend/local and added
CompileWithConfig to pulse/defcal for CR frame metadata.
- Use tagged switch for token type check (staticcheck QF1003)
- Remove unused return value from lexer.advance() (unparam)
- Suppress unparam on orderedPair (correct API, callers happen to use 0,1)
@splch splch merged commit e0037f4 into main Mar 13, 2026
6 checks passed
@splch splch deleted the feat/pulse-level-control branch March 13, 2026 00:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant