SwapGate#

class qiskit.circuit.library.SwapGate(label=None)[source]#

Bases: Gate

The SWAP gate.

This is a symmetric and Clifford gate.

Can be applied to a QuantumCircuit with the swap() method.

Circuit symbol:

q_0: ─X─
      │
q_1: ─X─

Matrix Representation:

\[\begin{split}SWAP = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}\end{split}\]

The gate is equivalent to a state swap and is a classical logic gate.

\[|a, b\rangle \rightarrow |b, a\rangle\]

Create new SWAP gate.

Attributes

condition_bits#

Get Clbits in condition.

decompositions#

Get the decompositions of the instruction from the SessionEquivalenceLibrary.

definition#

Return definition in terms of other basic gates.

duration#

Get the duration.

label#

Return instruction label

name#

Return the name.

num_clbits#

Return the number of clbits.

num_qubits#

Return the number of qubits.

params#

return instruction params.

unit#

Get the time unit of duration.

Methods

control(num_ctrl_qubits=1, label=None, ctrl_state=None)[source]#

Return a (multi-)controlled-SWAP gate.

One control returns a CSWAP (Fredkin) gate.

Parameters:
  • num_ctrl_qubits (int) -- number of control qubits.

  • label (str or None) -- An optional label for the gate [Default: None]

  • ctrl_state (int or str or None) -- control state expressed as integer, string (e.g. '110'), or None. If None, use all 1s.

Returns:

controlled version of this gate.

Return type:

ControlledGate

inverse()[source]#

Return inverse Swap gate (itself).