Operación AllowAtMostNCallsCA

Advertencia

Esta documentación hace referencia al QDK clásico, que se ha reemplazado por el QDK moderno.

https://aka.ms/qdk.api Consulte la documentación de la API para el QDK moderno.

Espacio de nombres: Microsoft.Quantum.Diagnostics

Paquete: Microsoft.Quantum.Standard

Entre una llamada a esta operación y su adyacente, se afirma que se llama a una operación determinada como máximo un número determinado de veces.

Las llamadas a operaciones se tienen en cuenta, si contienen la variante especificada. Por ejemplo, si op es Xo Adjoint XControlled X también se cuentan, pero si op es Controlled X, solo Controlled X o Controlled Adjoint X se cuentan.

operation AllowAtMostNCallsCA<'TInput, 'TOutput> (nTimes : Int, op : ('TInput => 'TOutput), message : String) : Unit is Adj

Entrada

nTimes : Int

Número máximo de veces que op se puede llamar.

op : 'TInput => 'TOutput

Una operación cuyas llamadas se van a restringir.

message : String

Mensaje que se mostrará tras un error.

Salida: unidad

Parámetros de tipo

'TInput

'TOutput

Ejemplo

Se producirá un error en el siguiente fragmento de código cuando se ejecute en máquinas que admitan este diagnóstico:

within {
    AllowAtMostNCallsCA(3, H, "Too many calls to H.");
} apply {
    use register = Qubit[4];
    // Fails since this calls H four times, rather than the
    // allowed maximum of three.
    ApplyToEach(H, register);
}

Otro ejemplo muestra cómo se controlan las llamadas restringidas.

within {
    // Both tests will pass in this case
    AllowAtMostNCallsCA(1, Controlled H, "Too many calls to Controlled H.");
    AllowAtMostNCallsCA(2, H, "Too many calls to H or Controlled H.");
} apply {
    use (a, b) = (Qubit(), Qubit());
    H(a);
    Controlled H([a], b);
    ResetAll([a, b]);
}

Comentarios

Esta operación puede reemplazarse por una operación no operativa en destinos que no lo admiten.