Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Plně kvalifikovaný název: Std.Diagnostics.CheckOperationsAreEqual
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
Shrnutí
Při dvou operacích zkontroluje, že fungují stejně pro všechny vstupní stavy.
Popis
Tato kontrola se implementuje pomocí isomorfismu Choi-Jamiołkowski k omezení této kontroly na kontrolu dvou propletených registrů. Proto tato operace potřebuje pouze jedno volání každé testované operace, ale vyžaduje, aby bylo přiděleno dvakrát tolik qubitů. Tuto kontrolu lze použít například k zajištění, že optimalizovaná verze operace funguje stejně jako její naïve implementace nebo že operace, která působí na řadu nevantových vstupů, souhlasí se známými případy.
Poznámky
Tato operace vyžaduje, aby modelování operace očekávané chování bylo adjointable, takže inverzní funkce může být provedena pouze v cílovém registru. Formálně lze určit transponovací operaci, která uvolní tento požadavek, ale transponovací operace není obecně fyzicky realizovatelná pro libovolné kvantové operace, a proto zde není zahrnuta jako možnost.
Vstup
nQubity
Počet qubitů, které se mají předat každé operaci.
skutečný
Operace, která se má testovat.
očekávaný
Operace definující očekávané chování operace v testu
Výstup
True, pokud jsou operace stejné, false v opačném případě.