Selezionare l'operazione

Nome completo: Std.TableLookup.Select

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

Sommario

Esegue la ricerca di tabelle usando una rete SELECT

Descrizione

Supponendo che un registro target inizializzato zero, questa operazione lo inizializzerà con le stringhe bit in data in corrispondenza degli indici in base ai valori di calcolo del registro address.

Inserimento

dati

Dati di ricerca della tabella classica preparati in target rispetto allo stato in address. La lunghezza dei dati deve essere minore di 2ⁿ, dove n è la lunghezza di address. Ogni voce nei dati deve avere la stessa lunghezza che deve essere uguale alla lunghezza di target.

indirizzo

Registro indirizzi

obiettivo

Registro di destinazione inizializzato zero

Osservazioni:

L'implementazione della rete SELECT si basa sulla codifica unaria come illustrato in [1]. L'implementazione ricorsiva di tale algoritmo viene presentata in [3]. La variante adiacente è ottimizzata usando un'operazione di ricerca non ricerca basata su misurazioni [3]. La variante adiacente controllata non è ottimizzata usando questa tecnica.

Riferimenti

  1. arXiv:1805.03662 "Codifica di spettro elettronici nei circuiti quantistici con complessità T lineare"
  2. arXiv:1905.07682 "aritmetica finestrata"
  3. arXiv:2211.01133 "Ricerca tabella ottimizzata per lo spazio"