Source code for bqskit.ir.gates.constant.iswap

"""This module implements the ISwapGate."""
from __future__ import annotations

from bqskit.ir.gates.constantgate import ConstantGate
from bqskit.ir.gates.qubitgate import QubitGate
from bqskit.qis.unitary.unitarymatrix import UnitaryMatrix


[docs] class ISwapGate(ConstantGate, QubitGate): """ The two qubit swap and phase iSWAP gate. The ISwap gate is given by the following unitary: .. math:: \\begin{pmatrix} 1 & 0 & 0 & 0 \\\\ 0 & 0 & i & 0 \\\\ 0 & i & 0 & 0 \\\\ 0 & 0 & 0 & 1 \\\\ \\end{pmatrix} """ _num_qudits = 2 _qasm_name = 'iswap' _utry = UnitaryMatrix( [ [1, 0, 0, 0], [0, 0, 1j, 0], [0, 1j, 0, 0], [0, 0, 0, 1], ], )
[docs] def get_qasm_gate_def(self) -> str: """Returns a qasm gate definition block for this gate.""" return ( 'gate iswap a,b\n' '{\n' '\ts a;\n' '\ts b;\n' '\th a;\n' '\tcx a, b;\n' '\tcx b, a;\n' '\th b;\n' '}\n' )