Condividi tramite


Operazione RippleCarryCGAddLE

Nome completo: Std.Arithmetic.RippleCarryCGAddLE

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

Sommario

Imposta un registro little-endian con inizializzazione zero sulla somma dei registri little-endian xs e y usando l'algoritmo di trasporto increspamento.

Descrizione

Calcola zs := xs + ys + zs[0] modulo 2ⁿ, dove xs, ys e zs sono registri little-endian, Length(xs) = Length(ys) ≤ Length(zs) = n, supponendo che zs sia inizializzato 0, ad eccezione di forse zs[0], che può essere Questa operazione usa l'algoritmo di trasporto increspamento. NOTA: zs[Length(xs)] può essere usato come eseguire, se zs è più lungo di xs.

Riferimento

  • arXiv:1709.06648 "Dimezzare il costo dell'addizione quantistica", Craig Gidney.