StartCountingOperation 작업

정규화된 이름: Std.Diagnostics.StartCountingOperation

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

요약

지정된 작업이 호출되는 횟수를 계산하기 시작합니다. 작업이 이미 계산되고 있으면 실패합니다.

묘사

이 작업을 사용하면 지정된 작업이 호출되는 횟수를 계산할 수 있습니다. 지정된 작업이 이미 계산되는 경우 StartCountingOperation 다시 호출하면 런타임 오류가 트리거됩니다. 계산은 호출된 작업의 특정 특수화를 기반으로 하므로 XAdjoint X 개별적으로 계산됩니다. 마찬가지로 Controlled X, CNOTCXControlled XControlled Adjoint X개별적으로 계산되는 독립적인 작업입니다.

입력

호출할

계산할 작업입니다.

발언

작업 호출을 계산하려면 입력으로 전달되는 작업에 대한 특정 주의가 필요합니다. 예를 들어 StartCountingOperation(H)H 호출되는 횟수만 계산하고 StartCountingOperation(Adjoint H)Adjoint H 자체 인접한 경우에도 H 호출되는 횟수만 계산합니다. 이는 실행에서 이러한 작업의 호출을 특수화와 구별되는 것으로 처리하는 방식 때문입니다. 같은 방식으로 StartCountingOperation(Controlled X)Controlled X 호출되는 횟수만 계산하고 StartCountingOperation(CNOT)CNOT 호출된 횟수만 계산합니다.

람다를 계산할 때 람다가 바인딩된 기호는 작업을 식별하는 데 사용되며 별도의 연산으로 계산됩니다. 예를 들어

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

myOp아니라 H 대한 호출 수를 계산합니다. 반면, 다음 코드는 H 자체에 대한 호출을 계산합니다.

let myOp = H;
StartCountingOperation(myOp);

이 코드는 람다를 정의하지 않고 직접 H 바인딩을 만들기 때문입니다.