Freigeben über


LookAheadDKRSAddLE-Vorgang

Vollqualifizierter Name: Std.Arithmetic.LookAheadDKRSAddLE

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

Zusammenfassung

Legt ein nullinitialisiertes little-endian register zs auf die Summe der little-endian registers xs and ys using the carry-lookahead algorithm.

BESCHREIBUNG

Berechnet zs := xs + ys + zs[0] modulo 2ⁿ, wobei xs, ys und zs little-endian registers sind, Length(xs) = Length(ys) ≤ Length(zs) = n, vorausgesetzt, zs ist 0-initialisiert, mit Ausnahme von zs[0], das in |0> oder |1> Zustand sein kann und als Tragen verwendet werden kann. HINWEIS: zs[Length(xs)] kann als Durchführung verwendet werden, wenn zs länger als xsist. Dieser Vorgang verwendet den Carry-Lookahead-Algorithmus.

Referenz

  • arXiv:quant-ph/0406142 "Ein Quanten-Carry-Lookahead-Addierer mit logarithmischer Tiefe", Thomas G. Draper, Samuel A. Kutin, Eric M. Rains, Krysta M. Svore