Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
Fullständigt kvalificerat namn: Std.Diagnostics.CheckOperationsAreEqual
operation CheckOperationsAreEqual(nQubits : Int, actual : (Qubit[] => Unit), expected : (Qubit[] => Unit is Adj)) : Bool
Sammanfattning
Med två åtgärder kontrollerar du att de fungerar identiskt för alla indatatillstånd.
Beskrivning
Denna kontroll implementeras med hjälp av Choi-Jamiołkowski isomorphism för att minska denna kontroll till en kontroll av två sammanflätade register. Den här åtgärden behöver därför bara ett enda anrop till varje åtgärd som testas, men kräver att dubbelt så många kvantbitar allokeras. Den här kontrollen kan till exempel användas för att säkerställa att en optimerad version av en åtgärd fungerar identiskt med dess naiva implementering, eller att en åtgärd som agerar på en rad icke-kvantindata överensstämmer med kända fall.
Anmärkningar
Den här åtgärden kräver att åtgärden som modellerar det förväntade beteendet är angränsande, så att inversen kan utföras enbart i målregistret. Formellt kan man ange en transponeringsåtgärd, vilket minskar detta krav, men transponeringsåtgärden är inte i allmänhet fysiskt realiserbar för godtyckliga kvantåtgärder och ingår därför inte här som ett alternativ.
Inmatning
nQubits
Antal kvantbitar som ska skickas till varje åtgärd.
faktisk
Åtgärd som ska testas.
förväntad
Åtgärd som definierar det förväntade beteendet för den åtgärd som testas.
Utdata
Sant om åtgärderna är lika med, annars falskt.