Freigeben über


Auswahlvorgang

Vollqualifizierter Name: Std.TableLookup.Select

operation Select(data : Bool[][], address : Qubit[], target : Qubit[]) : Unit is Adj + Ctl

Zusammenfassung

Führt die Tabellensuche mithilfe eines SELECT-Netzwerks aus.

BESCHREIBUNG

Wenn ein nullinitialisiertes target Register verwendet wird, initialisiert dieser Vorgang sie mit den Bitzeichenfolgen in data in Indizes gemäß den Berechnungswerten des address Registers.

Eingabe

Daten

Die klassischen Tabellen-Nachschlagedaten, die in target im Hinblick auf den Zustand in addressvorbereitet werden. Die Länge der Daten muss kleiner als 2ⁿ sein, wobei n die Länge von addressist. Jeder Eintrag in den Daten muss dieselbe Länge aufweisen, die der Länge von targetentspricht.

Adresse

Adressregister

Ziel

Nullinitialisiertes Zielregister

Bemerkungen

Die Implementierung des SELECT-Netzwerks basiert auf unärer Codierung, wie in [1] dargestellt. Die rekursive Implementierung dieses Algorithmus wird in [3] dargestellt. Die angrenzende Variante wird mithilfe eines messbasierten Unlookup-Vorgangs optimiert [3]. Die kontrollierte angrenzende Variante ist mit dieser Technik nicht optimiert.

Referenzen

  1. arXiv:1805.03662 "Kodierung elektronischer Spektren in Quantenschaltungen mit linearer T-Komplexität"
  2. arXiv:1905.07682 "Fensterarithmetik"
  3. arXiv:2211.01133 "Raumzeitoptimierte Tabellensuche"