Condividi tramite


Operazione StartCountingOperation

Nome completo: Std.Diagnostics.StartCountingOperation

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

Sommario

Inizia a contare il numero di chiamate all'operazione specificata. Ha esito negativo se l'operazione è già in corso di conteggio.

Descrizione

Questa operazione consente di contare il numero di chiamate di una determinata operazione. Se l'operazione specificata è già in corso di conteggio, la chiamata StartCountingOperation di nuovo attiverà un errore di runtime. Il conteggio si basa sulla specializzazione specifica dell'operazione richiamata, quindi X e Adjoint X vengono conteggiati separatamente. Analogamente, Controlled X, CNOTe CX sono operazioni indipendenti che vengono conteggiate separatamente, come sono Controlled X e Controlled Adjoint X.

Immissione

Callable

Operazione da contare.

Osservazioni

Il conteggio delle chiamate all'operazione richiede una particolare attenzione per l'operazione passata come input. Ad esempio, StartCountingOperation(H) conteggierà solo il numero di chiamate H, mentre StartCountingOperation(Adjoint H) conteggierà solo il numero di chiamate Adjoint H, anche se H è adiacente. Ciò è dovuto al modo in cui l'esecuzione considera la chiamata di queste operazioni come distinte dalla loro specializzazione. Allo stesso modo, StartCountingOperation(Controlled X) conteggierà solo il numero di chiamate Controlled X, mentre StartCountingOperation(CNOT) conteggierà solo il numero di chiamate CNOT.

Durante il conteggio delle espressioni lambda, il simbolo a cui è associata l'espressione lambda viene usato per identificare l'operazione e viene conteggiato come operazione separata. Per esempio

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

Verranno conteggiati in modo specifico le chiamate a myOp e non H. Al contrario, il codice seguente conta le chiamate a H stessa:

let myOp = H;
StartCountingOperation(myOp);

Questo perché questo codice non definisce un'espressione lambda e crea semplicemente un'associazione per H direttamente.