StartCountingOperation işlemi

Tam ad: Std.Diagnostics.StartCountingOperation

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

Özet

Verilen işlemin çağrılma sayısını saymaya başlar. İşlem zaten sayılıyorsa başarısız olur.

Açıklama

Bu işlem, belirli bir işlemin çağrılma sayısını saymanızı sağlar. Verilen işlem zaten sayılıyorsa, StartCountingOperation yeniden çağrılması çalışma zamanı hatasını tetikler. Sayma, çağrılan işlemin özel özelleştirmesine dayanır, bu nedenle X ve Adjoint X ayrı sayılır. Benzer şekilde , Controlled Xve CNOTCX, Controlled X ve Controlled Adjoint Xgibi ayrı ayrı sayılan bağımsız işlemlerdir.

Girdi

Callable

Sayılacak işlem.

Açıklamalar

İşlem çağrılarının sayılması, giriş olarak geçirilen işlemde belirli bir özen gerektirir. Örneğin, StartCountingOperation(H) yalnızca H çağrılma sayısını sayarken, StartCountingOperation(Adjoint H) kendi kendine bitişik olsa bile Adjoint H yalnızca H çağrılma sayısını sayar. Bunun nedeni, yürütmenin bu işlemlerin çağrısını özelleştirmelerine göre farklı olarak işlemesidir. Aynı şekilde, StartCountingOperation(Controlled X) yalnızca Controlled X çağrılma sayısını sayarken, StartCountingOperation(CNOT) yalnızca CNOT çağrılma sayısını sayar.

Lambdaları sayarken, işlemi tanımlamak için lambda'nın bağlı olduğu simge kullanılır ve ayrı bir işlem olarak sayılır. Mesela

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

myOpdeğil, H için özel çağrıları sayar. Buna karşılık, aşağıdaki kod H çağrılarını sayar:

let myOp = H;
StartCountingOperation(myOp);

Bunun nedeni, bu kodun bir lambda tanımlamaması ve bunun yerine doğrudan H bağlaması oluşturmasıdır.