Delen via


Bewerking StartCountingOperation

Volledig gekwalificeerde naam: Std.Diagnostics.StartCountingOperation

operation StartCountingOperation<'In, 'Out>(callable : ('In => 'Out)) : Unit

Samenvatting

Begint met het tellen van het aantal keren dat de opgegeven bewerking wordt aangeroepen. Mislukt als de bewerking al wordt geteld.

Beschrijving

Met deze bewerking kunt u het aantal keren tellen dat een bepaalde bewerking wordt aangeroepen. Als de opgegeven bewerking al wordt geteld, activeert het aanroepen van StartCountingOperation opnieuw een runtimefout. Tellen is gebaseerd op de specifieke specialisatie van de aangeroepen bewerking, dus X en Adjoint X afzonderlijk worden meegeteld. Eveneens Controlled X, CNOTen CX zijn onafhankelijke bewerkingen die afzonderlijk worden geteld, zoals Controlled X en Controlled Adjoint X.

Invoer

aanroepbaar

De bewerking die moet worden geteld.

Opmerkingen

Voor het tellen van bewerkingsoproepen is specifieke zorg vereist in welke bewerking wordt doorgegeven als invoer. StartCountingOperation(H) telt bijvoorbeeld alleen het aantal keren dat H wordt aangeroepen, terwijl StartCountingOperation(Adjoint H) alleen het aantal keren telt dat Adjoint H wordt aangeroepen, ook al is H zelf-aangrenzend. Dit komt door de wijze waarop de uitvoering de aanroep van deze bewerkingen behandelt als verschillend door hun specialisatie. Op dezelfde manier telt StartCountingOperation(Controlled X) alleen het aantal keren dat Controlled X wordt aangeroepen, terwijl StartCountingOperation(CNOT) alleen het aantal keren telt dat CNOT wordt aangeroepen.

Bij het tellen van lambdas wordt het symbool waaraan de lambda is gebonden, gebruikt om de bewerking te identificeren en wordt het als een afzonderlijke bewerking geteld. Bijvoorbeeld

let myOp = q => H(q);
StartCountingOperation(myOp);

Telt specifiek aanroepen naar myOp en niet H. De volgende code telt daarentegen aanroepen naar H zelf:

let myOp = H;
StartCountingOperation(myOp);

Dit komt doordat deze code geen lambda definieert en in plaats daarvan alleen een binding voor H rechtstreeks maakt.