toqito.state_props.is_sic_povm ============================== .. py:module:: toqito.state_props.is_sic_povm .. autoapi-nested-parse:: Determine whether a collection of vectors forms a SIC POVM. Module Contents --------------- .. py:function:: is_sic_povm(states, *, tol = 1e-06) Check if the provided vectors yield a symmetric informationally complete POVM. A set of \(d^2\) unit vectors \(\{\ket{\psi_j}\}\) in \(\mathbb{C}^d\) forms a symmetric informationally complete POVM (SIC POVM) when \[ \left| \langle \psi_j, \psi_k \rangle \right|^2 = \frac{1}{d + 1} \quad \text{for all } j \neq k, \] and the projectors satisfy \(\sum_j \ket{\psi_j}\!\bra{\psi_j} = d \mathbb{I}\). .. rubric:: Examples Qubit tetrahedron SIC. ```python exec="1" source="above" import numpy as np from toqito.state_props import is_sic_povm omega = np.exp(2j * np.pi / 3) sic_vectors = [ np.array([0, 1], dtype=np.complex128), np.array([np.sqrt(2/3), 1/np.sqrt(3)], dtype=np.complex128), np.array([np.sqrt(2/3), omega / np.sqrt(3)], dtype=np.complex128), np.array([np.sqrt(2/3), (omega**2) / np.sqrt(3)], dtype=np.complex128), ] print(is_sic_povm(sic_vectors)) ``` Non-SIC vector family. ```python exec="1" source="above" import numpy as np from toqito.state_props import is_sic_povm from toqito.states import basis e0, e1 = basis(2, 0), basis(2, 1) non_sic = [e0, e1, (e0 + e1) / np.sqrt(2), (e0 - e1) / np.sqrt(2)] print(is_sic_povm(non_sic)) ``` :raises ValueError: If the vectors cannot represent valid quantum states. :param states: Collection of vectors to test. :param tol: Numerical tolerance used for equality comparisons. :returns: `True` when the vectors form a SIC POVM and `False` otherwise.