CSWAP

pyquil.gates.CSWAP(control, target_1, target_2)[source]

Produces a controlled-SWAP gate. This gate conditionally swaps the state of two qubits:

CSWAP = [[1, 0, 0, 0, 0, 0, 0, 0],
         [0, 1, 0, 0, 0, 0, 0, 0],
         [0, 0, 1, 0, 0, 0, 0, 0],
         [0, 0, 0, 1, 0, 0, 0, 0],
         [0, 0, 0, 0, 1, 0, 0, 0],
         [0, 0, 0, 0, 0, 0, 1, 0],
         [0, 0, 0, 0, 0, 1, 0, 0],
         [0, 0, 0, 0, 0, 0, 0, 1]]
Parameters:
  • control (Union[Qubit, QubitPlaceholder, int]) – The control qubit.
  • target_1 (Union[Qubit, QubitPlaceholder, int]) – The first target qubit.
  • target_2 (Union[Qubit, QubitPlaceholder, int]) – The second target qubit. The two target states are swapped if the control is in the |1> state.
Return type:

Gate