load_fiducial[source]

load_fiducial(d)

Loads a Weyl-Heisenberg covariant SIC-POVM fiducial state of dimension $d$ from the repository provided here: http://www.physics.umb.edu/Research/QBism/solutions.html.

sic_states[source]

sic_states(d)

Returns the $d^2$ states constructed by applying the Weyl-Heisenberg displacement operators to the SIC-POVM fiducial state of dimension $d$.

sic_povm[source]

sic_povm(d)

Returns a SIC-POVM of dimension $d$.

sic_gram[source]

sic_gram(d)

The Gram matrix is the matrix of inner products: $G_{i,j} = \langle v_{i} \mid v_{j} \rangle$. For a SIC, this matrix should consist of 1's along the diagonal, and all other entries $\frac{1}{d+1}$:

$$ \begin{pmatrix} 1 & \frac{1}{d+1} & \frac{1}{d+1} & \dots \\ \frac{1}{d+1} & 1 & \frac{1}{d+1} & \dots \\ \frac{1}{d+1} & \frac{1}{d+1} & 1 & \dots \\ \vdots & \vdots & \vdots & \ddots \end{pmatrix}$$

hoggar_fiducial[source]

hoggar_fiducial()

Returns a fiducial state for the exceptional SIC in dimension $8$, the Hoggar SIC.

Unnormalized: $\begin{pmatrix} -1 + 2i \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \\ 1 \end{pmatrix}$.

hoggar_indices[source]

hoggar_indices()

Returns a list with entries $(a, b, c, d, e, f)$ for $a, b, c, d, e, f \in [0, 1]$.

hoggar_povm[source]

hoggar_povm()

Constructs the Hoggar POVM, which is covariant under the tensor product of three copies of the $d=2$ Weyl-Heisenberg group. In other words, we apply the 64 displacement operators:

$$ \hat{D}_{a, b, c, d, e, f} = X^{a}Z^{b} \otimes X^{c}Z^{d} \otimes X^{e}Z^{f} $$

To the Hoggar fiducial state, form the corresponding projectors, and rescale by $\frac{1}{8}$.

Let's make sure the Hoggar POVM is really a POVM:

ID = qt.identity(8)
ID.dims = [[2,2,2],[2,2,2]]
assert np.allclose(sum(hoggar_povm()), ID)