Click or drag to resize
QECCInject Method
Injects dephasing errors with the given probability into the error-correcting circuit.

Namespace: Microsoft.Research.Liquid
Assembly: Liquid1 (in Liquid1.dll) Version: 1.0.5981.24943 (1.0.*)
Syntax
F#
member Inject : 
        prob : float -> Tuple<Circuit, FSharpList<int>> 

Parameters

prob
Type: SystemDouble
The probability of an error on execution of a gate. Each qubit input to the gate has this same chance of a dephasing error. If an error is injected, it will be either an X, Y, or Z error, with equal probability. Note that errors are never injected on ancilla qubits.

Return Value

Type: TupleCircuit, FSharpListInt32
A tuple containing the new Circuit with errors injected as the first item and a list of injected error counts as the second. The error count list contains the count of X, Y, and Z errors injected, in that order.
Remarks
Note that the errors are inserted as explicit gates into a new Circuit, rather than randomly being injected on each run. That is, if the resulting circuit is executed multiple times, the same errors will be injected each time. To get a different set of random errors, this routine must be re-run and a new Circuit generated.

Also note that errors are only inserted before wrapped and extended gates (Gate types Wrap and Ext). In particular, this means that errors appear before logical gates rather than before physical gates. If the original non-error correcting circuit included wrapped or extended gates, then errors may be injected before those gates as well.

See Also