Compartilhar via


Operação LookAheadDKRSAddLE

Nome totalmente qualificado: Std.Arithmetic.LookAheadDKRSAddLE

operation LookAheadDKRSAddLE(xs : Qubit[], ys : Qubit[], zs : Qubit[]) : Unit is Adj

Resumo

Define um registro de little-endian com inicialização zero zs para a soma de little-endian registra xs e ys usando o algoritmo carry-lookahead.

Descrição

Computes zs := xs + ys + zs[0] modulo 2ⁿ, em que xs, ys e zs são registros little-endian, Length(xs) = Length(ys) ≤ Length(zs) = n, supondo que zs seja inicializado por 0, exceto talvez zs[0], que pode estar em |0> ou |1> estado e pode ser usado como carry-in. OBSERVAÇÃO: zs[Length(xs)] podem ser usados como realização, se zs for maior que xs. Esta operação usa o algoritmo carry-lookahead.

Referência

  • arXiv:quant-ph/0406142 "A logarithmic-depth quantum carry-lookahead adder", Thomas G. Draper, Samuel A. Kutin, Eric M. Rains, Hibernaa M. Svore