Source code for toqito.matrices.gen_pauli_x
"""Produces a generalized Pauli-X operator matrix."""
import numpy as np
[docs]
def gen_pauli_x(dim: int) -> np.ndarray:
r"""Produce a `dim`-by-`dim` gen_pauli_x matrix [@WikiPauliGen].
Returns the gen_pauli_x matrix of dimension `dim` described in [@WikiPauliGen].
The gen_pauli_x matrix generates the following `dim`-by-`dim` matrix:
\[
\Sigma_{1, d} = \begin{pmatrix}
0 & 0 & 0 & \ldots & 0 & 1 \\
1 & 0 & 0 & \ldots & 0 & 0 \\
0 & 1 & 0 & \ldots & 0 & 0 \\
0 & 0 & 1 & \ldots & 0 & 0 \\
\vdots & \vdots & \vdots & \ddots & \vdots & \vdots \\
0 & 0 & 0 & \ldots & 1 & 0
\end{pmatrix}
\]
The gen_pauli_x matrix is primarily used in the construction of the generalized
Pauli operators.
Examples:
The gen_pauli_x matrix generated from \(d = 3\) yields the following matrix:
\[
\Sigma_{1, 3} =
\begin{pmatrix}
0 & 0 & 1 \\
1 & 0 & 0 \\
0 & 1 & 0
\end{pmatrix}
\]
```python exec="1" source="above"
from toqito.matrices import gen_pauli_x
print(gen_pauli_x(3))
```
Args:
dim: Dimension of the matrix.
Returns:
`dim`-by-`dim` gen_pauli_x matrix.
"""
# First column of the identity matrix becomes the last column due to `shift = -1` and `axis=1`
return np.roll(np.identity(dim), -1, axis=1)