Compartir a través de


Seleccionar operación

Nombre completo: Std.TableLookup.Select

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

Resumen

Realiza la búsqueda de tablas mediante una red SELECT

Descripción

Suponiendo que un registro de target inicializado cero, esta operación la inicializará con las cadena de bits de data en índices según los valores computacionales del registro de address.

Entrada

datos

Los datos de búsqueda de tablas clásicas que se preparan en target con respecto al estado de address. La longitud de los datos debe ser inferior a 2ⁿ, donde n es la longitud de address. Cada entrada de los datos debe tener la misma longitud que debe ser igual a la longitud de target.

dirección

Registro de direcciones

objetivo

Registro de destino inicializado cero

Observaciones

La implementación de la red SELECT se basa en la codificación unaria tal como se presenta en [1]. La implementación recursiva de ese algoritmo se presenta en [3]. La variante adyacente está optimizada mediante una operación unlookup basada en medidas [3]. La variante adyacente controlada no está optimizada mediante esta técnica.

Referencias

  1. arXiv:1805.03662 "Codificación de espectros electrónicos en circuitos cuánticos con complejidad T lineal"
  2. arXiv:1905.07682 "Aritmética con ventanas"
  3. arXiv:2211.01133 "Búsqueda de tablas optimizadas para espacio y tiempo"