Delen via


Bewerking selecteren

Volledig gekwalificeerde naam: Std.TableLookup.Select

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

Samenvatting

Voert tabelzoekacties uit met behulp van een SELECT-netwerk

Beschrijving

Ervan uitgaande dat een target met nul geïnitialiseerde target worden geïnitialiseerd, wordt deze bewerking geïnitialiseerd met de bittekenreeksen in address bij indexen volgens de berekeningswaarden van het register.

Invoer

gegevens

De klassieke opzoekgegevens van tabellen die in target zijn voorbereid met betrekking tot de status in address. De lengte van de gegevens moet kleiner zijn dan 2ⁿ, waarbij n de lengte van addressis. Elke vermelding in gegevens moet dezelfde lengte hebben die gelijk moet zijn aan de lengte van target.

adres

Adresregister

doel

Nul-geïnitialiseerd doelregister

Opmerkingen

De implementatie van het SELECT-netwerk is gebaseerd op unaire codering zoals weergegeven in [1]. De recursieve implementatie van dat algoritme wordt weergegeven in [3]. De aangrenzende variant is geoptimaliseerd met behulp van een op maat gebaseerde unlookup-bewerking [3]. De gecontroleerde aangrenzende variant is niet geoptimaliseerd met behulp van deze techniek.

Verwijzingen

  1. arXiv:1805.03662 "Codering van elektronische spectra in kwantumcircuits met lineaire T-complexiteit"
  2. arXiv:1905.07682 "Rekenkunde met vensters"
  3. arXiv:2211.01133 "Geoptimaliseerde tabelzoekfunctie voor ruimtetijd"