Delen via


RimpelcarryCGAddLE-bewerking

Volledig gekwalificeerde naam: Std.Arithmetic.RippleCarryCGAddLE

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

Samenvatting

Stelt een zero-initialized little-endian register zs in op de som van little-endian registers xs en ys met behulp van het rimpel-dragen algoritme.

Beschrijving

Berekent zs := xs + ys + zs[0] modulo 2ⁿ, waarbij xs, ys en zs little-endian-registers zijn, Length(xs) = Length(ys) ≤ Length(zs) = n, ervan uitgaande dat zs 0-initialized is, behalve voor misschien zs[0], wat kan zijn met deze bewerking het algoritme voor het overbrengen van de rimpel. OPMERKING: zs[Length(xs)] kan worden gebruikt als uitvoering, als zs langer is dan xs.

Referentie

  • arXiv:1709.06648 "Halvering van de kosten van kwantumtoevoeging", Craig Gidney.