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([num_controls, control_values, …])

Returns a controlled version of this gate. If no arguments are

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 applying the gate to all targets.

validate_args(qubits)

Checks if this gate can be applied to the given qubits.

wrap_in_linear_combination([coefficient])

Attributes

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.