toqito.perms.symmetric_projection
- toqito.perms.symmetric_projection(dim, p_val=2, partial=False)[source]
Produce the projection onto the symmetric subspace [CJKLZ14].
For a complex Euclidean space \(\mathcal{X}\) and a positive integer \(n\), the projection onto the symmetric subspace is given by
\[\frac{1}{n!} \sum_{\pi \in S_n} W_{\pi}\]where \(W_{\pi}\) is the swap operator and where \(S_n\) is the symmetric group on \(n\) symbols.
Produces the orthogonal projection onto the symmetric subspace of
p_valcopies of dim-dimensional space. If partial = True, then the symmetric projection (PS) isn’t the orthogonal projection itself, but rather a matrix whose columns form an orthonormal basis for the symmetric subspace (and hence the PS * PS’ is the orthogonal projection onto the symmetric subspace).This function was adapted from the QETLAB package.
Examples
The \(2\)-dimensional symmetric projection with \(p=1\) is given as \(2\)-by-\(2\) identity matrix
\[\begin{split}\begin{pmatrix} 1 & 0 \\ 0 & 1 \end{pmatrix}.\end{split}\]Using
toqito, we can see this gives the proper result.>>> from toqito.perms import symmetric_projection >>> symmetric_projection(2, 1).todense() [[1., 0.], [0., 1.]]
When \(d = 2\) and \(p = 2\) we have that
\[\begin{split}\begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 1/2 & 1/2 & 0 \\ 0 & 1/2 & 1/2 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix}.\end{split}\]Using
toqitowe can see this gives the proper result.>>> from toqito.perms import symmetric_projection >>> symmetric_projection(dim=2).todense() [[1. , 0. , 0. , 0. ], [0. , 0.5, 0.5, 0. ], [0. , 0.5, 0.5, 0. ], [0. , 0. , 0. , 1. ]]
References
[CJKLZ14]J. Chen, Z. Ji, D. Kribs, N. Lütkenhaus, and B. Zeng. “Symmetric extension of two-qubit states”. Physical Review A 90.3 (2014): 032318. https://arxiv.org/abs/1310.3530 E-print: arXiv:1310.3530 [quant-ph]
- Parameters:
dim – The dimension of the local systems.
p_val – Default value of 2.
partial – Default value of 0.
- Returns:
Projection onto the symmetric subspace.