Source code for toqito.states.isotropic

"""Isotropic state is a bipartite quantum state.

These states are separable for α ≤ 1/(d+1), but are otherwise entangled.
"""

import numpy as np

from toqito.states import max_entangled


[docs] def isotropic(dim: int, alpha: float) -> np.ndarray: r"""Produce a isotropic state [@Horodecki_1998_Reduction]. Returns the isotropic state with parameter `alpha` acting on (`dim`-by-`dim`)-dimensional space. The isotropic state has the following form \[ \begin{equation} \rho_{\alpha} = \frac{1 - \alpha}{d^2} \mathbb{I} \otimes \mathbb{I} + \alpha |\psi_+ \rangle \langle \psi_+ | \in \mathbb{C}^d \otimes \mathbb{C}^2 \end{equation} \] where \(|\psi_+ \rangle = \frac{1}{\sqrt{d}} \sum_j |j \rangle \otimes |j \rangle\) is the maximally entangled state. Examples: To generate the isotropic state with parameter \(\alpha=1/2\), we can make the following call to `|toqito⟩` as ```python exec="1" source="above" from toqito.states import isotropic print(isotropic(3, 1 / 2)) ``` Args: dim: The local dimension. alpha: The parameter of the isotropic state. Returns: Isotropic state of dimension `dim`. """ psi = max_entangled(dim, False, False) return (1 - alpha) * np.identity(dim**2) / dim**2 + alpha * psi @ psi.conj().T / dim