Compartilhar via


Selecionar operação

Nome totalmente qualificado: Std.TableLookup.Select

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

Resumo

Executa a pesquisa de tabela usando uma rede SELECT

Descrição

Supondo que um registro de target inicializado zero, essa operação a inicializará com as bitstrings em data em índices de acordo com os valores computacionais do registro de address.

Entrada

dados

Os dados de pesquisa de tabela clássica que são preparados em target em relação ao estado em address. O comprimento dos dados deve ser menor que 2ⁿ, em que n é o comprimento de address. Cada entrada nos dados deve ter o mesmo comprimento que deve ser igual ao comprimento de target.

endereço

Registro de endereço

alvo

Registro de destino inicializado zero

Observações

A implementação da rede SELECT baseia-se na codificação unária, conforme apresentado em [1]. A implementação recursiva desse algoritmo é apresentada em [3]. A variante adjacente é otimizada usando uma operação de unlookup baseada em medida [3]. A variante adjacente controlada não é otimizada usando essa técnica.

Referências

  1. arXiv:1805.03662 "Codificando espectros eletrônicos em circuitos quânticos com complexidade T linear"
  2. arXiv:1905.07682 "Aritmética com janelas"
  3. arXiv:2211.01133 "Pesquisa de tabela otimizada para tempo de espaço"