toqito.state_props.is_sic_povm

Determine whether a collection of vectors forms a SIC POVM.

Module Contents

toqito.state_props.is_sic_povm.is_sic_povm(states, *, tol=1e-06)[source]

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}).

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.

Parameters:
  • states (Sequence[numpy.ndarray]) – Collection of vectors to test.

  • tol (float) – Numerical tolerance used for equality comparisons.

Returns:

True when the vectors form a SIC POVM and False otherwise.

Return type:

bool