Partilhar via


Operação RippleCarryCGAddLE

Nome totalmente qualificado: Std.Arithmetic.RippleCarryCGAddLE

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

Resumo

Define um registro little-endian inicializado zero zs para a soma dos registros little-endian xs e ys usando o algoritmo ripple-carry.

Descrição

Calcula zs := xs + ys + zs[0] módulo 2ⁿ, onde xs, ys e zs são registros little-endian, Length(xs) = Length(ys) ≤ Length(zs) = n, assumindo que zs é 0-inicializado, exceto talvez zs[0], que pode ser Esta operação usa o algoritmo ripple-carry. NOTA: zs[Length(xs)] pode ser utilizado como transporte, se zs for superior a xs.

Referência

  • arXiv:1709.06648 "Reduzir pela metade o custo da adição quântica", Craig Gidney.