Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Nome completo: Std.Diagnostics.CheckOperationsAreEqual
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
Sommario
Date due operazioni, verifica che agiscano in modo identico per tutti gli stati di input.
Descrizione
Questo controllo viene implementato utilizzando l'isomorfismo Choi–Jamiołkowski per ridurre questo controllo a un controllo su due registri entangled. Pertanto, questa operazione richiede solo una singola chiamata a ogni operazione sottoposta a test, ma richiede l'allocazione di più qubit due volte. Questo controllo può essere usato per garantire, ad esempio, che una versione ottimizzata di un'operazione agisca in modo identico all'implementazione ingenua o che un'operazione che agisce su un intervallo di input non quantistici è d'accordo con i casi noti.
Osservazioni
Questa operazione richiede che la modellazione dell'operazione il comportamento previsto sia adiacente, in modo che l'inverso possa essere eseguito solo nel registro di destinazione. Formalmente, è possibile specificare un'operazione di trasposizione, che riduce questo requisito, ma l'operazione di trasposizione non è in generale gestibile fisicamente per operazioni quantistiche arbitrarie e pertanto non è inclusa qui come opzione.
Immissione
nQubit
Numero di qubit da passare a ogni operazione.
attuale
Operazione da testare.
previsto
Operazione che definisce il comportamento previsto per l'operazione sottoposta a test.
Prodotto
True se le operazioni sono uguali, false in caso contrario.