Source code for toqito.states.isotropic

"""Isotropic state."""
import numpy as np

from toqito.states import max_entangled


[docs] def isotropic(dim: int, alpha: float) -> np.ndarray: r""" Produce a isotropic state [HH99]_. Returns the isotropic state with parameter :code:`alpha` acting on (:code:`dim`-by-:code:`dim`)-dimensional space. The isotropic state has the following form .. math:: \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 :math:`|\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 :math:`\alpha=1/2`, we can make the following call to :code:`toqito` as >>> from toqito.states import isotropic >>> isotropic(3, 1 / 2) [[0.22222222, 0. , 0. , 0. , 0.16666667, 0. , 0. , 0. , 0.16666667], [0. , 0.05555556, 0. , 0. , 0. , 0. , 0. , 0. , 0. ], [0. , 0. , 0.05555556, 0. , 0. , 0. , 0. , 0. , 0. ], [0. , 0. , 0. , 0.05555556, 0. , 0. , 0. , 0. , 0. ], [0.16666667, 0. , 0. , 0. , 0.22222222, 0. , 0. , 0. , 0.16666667], [0. , 0. , 0. , 0. , 0. , 0.05555556, 0. , 0. , 0. ], [0. , 0. , 0. , 0. , 0. , 0. , 0.05555556, 0. , 0. ], [0. , 0. , 0. , 0. , 0. , 0. , 0. , 0.05555556, 0. ], [0.16666667, 0. , 0. , 0. , 0.16666667, 0. , 0. , 0. , 0.22222222]] References ========== .. [HH99] Horodecki, Michał, and Paweł Horodecki. "Reduction criterion of separability and limits for a class of distillation protocols." Physical Review A 59.6 (1999): 4206. :param dim: The local dimension. :param alpha: The parameter of the isotropic state. :return: Isotropic state of dimension :code:`dim`. """ psi = max_entangled(dim, False, False) return (1 - alpha) * np.identity(dim**2) / dim**2 + alpha * psi * psi.conj().T / dim