179 lines
4.7 KiB
Plaintext
179 lines
4.7 KiB
Plaintext
---
|
||
title: RZXGate
|
||
description: API reference for qiskit.circuit.library.RZXGate
|
||
in_page_toc_min_heading_level: 1
|
||
python_api_type: class
|
||
python_api_name: qiskit.circuit.library.RZXGate
|
||
---
|
||
|
||
# RZXGate
|
||
|
||
<Class id="qiskit.circuit.library.RZXGate" isDedicatedPage={true} github="https://github.com/qiskit/qiskit/tree/stable/0.20/qiskit/circuit/library/standard_gates/rzx.py" signature="RZXGate(theta, label=None)" modifiers="class">
|
||
Bases: `qiskit.circuit.gate.Gate`
|
||
|
||
A parametric 2-qubit $Z \otimes X$ interaction (rotation about ZX).
|
||
|
||
This gate is maximally entangling at $\theta = \pi/2$.
|
||
|
||
The cross-resonance gate (CR) for superconducting qubits implements a ZX interaction (however other terms are also present in an experiment).
|
||
|
||
**Circuit Symbol:**
|
||
|
||
```python
|
||
┌─────────┐
|
||
q_0: ┤0 ├
|
||
│ Rzx(θ) │
|
||
q_1: ┤1 ├
|
||
└─────────┘
|
||
```
|
||
|
||
**Matrix Representation:**
|
||
|
||
$$
|
||
\begin{align}\begin{aligned}\newcommand{\th}{\frac{\theta}{2}}\\\begin{split}R_{ZX}(\theta)\ q_0, q_1 = exp(-i \frac{\theta}{2} X{\otimes}Z) =
|
||
\begin{pmatrix}
|
||
\cos(\th) & 0 & -i\sin(\th) & 0 \\
|
||
0 & \cos(\th) & 0 & i\sin(\th) \\
|
||
-i\sin(\th) & 0 & \cos(\th) & 0 \\
|
||
0 & i\sin(\th) & 0 & \cos(\th)
|
||
\end{pmatrix}\end{split}\end{aligned}\end{align}
|
||
$$
|
||
|
||
<Admonition title="Note" type="note">
|
||
In Qiskit’s convention, higher qubit indices are more significant (little endian convention). In the above example we apply the gate on (q\_0, q\_1) which results in the $X \otimes Z$ tensor order. Instead, if we apply it on (q\_1, q\_0), the matrix will be $Z \otimes X$:
|
||
|
||
```python
|
||
┌─────────┐
|
||
q_0: ┤1 ├
|
||
│ Rzx(θ) │
|
||
q_1: ┤0 ├
|
||
└─────────┘
|
||
```
|
||
|
||
$$
|
||
\begin{align}\begin{aligned}\newcommand{\th}{\frac{\theta}{2}}\\\begin{split}R_{ZX}(\theta)\ q_1, q_0 = exp(-i \frac{\theta}{2} Z{\otimes}X) =
|
||
\begin{pmatrix}
|
||
\cos(\th) & -i\sin(\th) & 0 & 0 \\
|
||
-i\sin(\th) & \cos(\th) & 0 & 0 \\
|
||
0 & 0 & \cos(\th) & i\sin(\th) \\
|
||
0 & 0 & i\sin(\th) & \cos(\th)
|
||
\end{pmatrix}\end{split}\end{aligned}\end{align}
|
||
$$
|
||
|
||
This is a direct sum of RX rotations, so this gate is equivalent to a uniformly controlled (multiplexed) RX gate:
|
||
|
||
$$
|
||
\begin{split}R_{ZX}(\theta)\ q_1, q_0 =
|
||
\begin{pmatrix}
|
||
RX(\theta) & 0 \\
|
||
0 & RX(-\theta)
|
||
\end{pmatrix}\end{split}
|
||
$$
|
||
</Admonition>
|
||
|
||
**Examples:**
|
||
|
||
> $$
|
||
> R_{ZX}(\theta = 0) = I
|
||
> $$
|
||
>
|
||
> $$
|
||
> R_{ZX}(\theta = 2\pi) = -I
|
||
> $$
|
||
>
|
||
> $$
|
||
> R_{ZX}(\theta = \pi) = -i Z \otimes X
|
||
> $$
|
||
>
|
||
> $$
|
||
> \begin{split}RZX(\theta = \frac{\pi}{2}) = \frac{1}{\sqrt{2}}
|
||
> \begin{pmatrix}
|
||
> 1 & 0 & -i & 0 \\
|
||
> 0 & 1 & 0 & i \\
|
||
> -i & 0 & 1 & 0 \\
|
||
> 0 & i & 0 & 1
|
||
> \end{pmatrix}\end{split}
|
||
> $$
|
||
|
||
Create new RZX gate.
|
||
|
||
## Methods Defined Here
|
||
|
||
### inverse
|
||
|
||
<Function id="qiskit.circuit.library.RZXGate.inverse" signature="RZXGate.inverse()">
|
||
Return inverse RZX gate (i.e. with the negative rotation angle).
|
||
</Function>
|
||
|
||
## Attributes
|
||
|
||
### condition\_bits
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.condition_bits">
|
||
Get Clbits in condition.
|
||
|
||
**Return type**
|
||
|
||
`List`\[`Clbit`]
|
||
</Attribute>
|
||
|
||
### decompositions
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.decompositions">
|
||
Get the decompositions of the instruction from the SessionEquivalenceLibrary.
|
||
</Attribute>
|
||
|
||
### definition
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.definition">
|
||
Return definition in terms of other basic gates.
|
||
</Attribute>
|
||
|
||
### duration
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.duration">
|
||
Get the duration.
|
||
</Attribute>
|
||
|
||
### label
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.label">
|
||
Return instruction label
|
||
|
||
**Return type**
|
||
|
||
`str`
|
||
</Attribute>
|
||
|
||
### name
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.name">
|
||
Return the name.
|
||
</Attribute>
|
||
|
||
### num\_clbits
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.num_clbits">
|
||
Return the number of clbits.
|
||
</Attribute>
|
||
|
||
### num\_qubits
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.num_qubits">
|
||
Return the number of qubits.
|
||
</Attribute>
|
||
|
||
### params
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.params">
|
||
return instruction params.
|
||
</Attribute>
|
||
|
||
### unit
|
||
|
||
<Attribute id="qiskit.circuit.library.RZXGate.unit">
|
||
Get the time unit of duration.
|
||
</Attribute>
|
||
</Class>
|
||
|