cirq.AsymmetricDepolarizingChannel

class cirq.AsymmetricDepolarizingChannel(p_x: float, p_y: float, p_z: float)[source]

A channel that depolarizes asymmetrically along different directions.

__init__(p_x: float, p_y: float, p_z: float) → None[source]

The asymmetric depolarizing channel.

This channel applies one of four disjoint possibilities: nothing (the
identity channel) or one of the three pauli gates. The disjoint
probabilities of the three gates are p_x, p_y, and p_z and the
identity is done with probability 1 - p_x - p_y - p_z. The supplied
probabilities must be valid probabilities and the sum p_x + p_y + p_z
must be a valid probability or else this constructor will raise a
ValueError.

This channel evolves a density matrix via

$$ \rho \rightarrow (1 - p_x - p_y - p_z) \rho + p_x X \rho X + p_y Y \rho Y + p_z Z \rho Z $$

Parameters:
  • p_x – The probability that a Pauli X and no other gate occurs.
  • p_y – The probability that a Pauli Y and no other gate occurs.
  • p_z – The probability that a Pauli Z and no other gate occurs.
Raises:

ValueError – if the args or the sum of args are not probabilities.

Methods

controlled_by(*control_qubits) Returns a controlled version of this gate.
num_qubits() The number of qubits this gate acts on.
on(*qubits) Returns an application of this gate to the given qubits.
on_each(*targets) Returns a list of operations apply this gate to each of the targets.
validate_args(qubits) Checks if this gate can be applied to the given qubits.
wrap_in_linear_combination(coefficient, …)