`unitary()`: project nearly-unitary matrices onto the closest unitary

Geschlossen
#21 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Anfängerfreundlichkeit
55/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
rust
Bereich
backend

Rechercherichtung

Start by reading src/circuit.rs around line 144 to see how unitary() checks matrices and how it represents them. The issue suggests projecting accepted matrices with a polar decomposition or one Newton step; confirm the available matrix operations and relevant tests before choosing an approach. Done means accepted nearly-unitary matrices are projected to the closest unitary without changing the API.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

enhancement
What you want to do

unitary() accepts matrices that are up to 1e-9 away from unitary (src/circuit.rs:144) and uses them
as given. Each such gate scales the norm by up to 1 ± 1e-9, which adds up over long circuits.

Implementation notes

After the check passes, replace U with its closest unitary, U·(U†U)^(−1/2). For 2×2 that's a
closed-form polar decomposition, or a single Newton step U ← ½(U + U^{−†}), which is enough at
this tolerance.

What it could look like
No API change.
Contributing
  • I would like to open a pull request for this (see CONTRIBUTING.md).
Vorherrschende Sprache
Rust
Sterne
1
Forks
0
PR-Merge-Kennzahlen
Keine gemergten PRs in 30 T.

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus kaiwave/qsengine

Alle Issues in kaiwave/qsengine

Ähnliche Issues

Weitere Issues zu Rust

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.