toqito.perms.symmetric_projection

Symmetric projection operator produces a projection onto a symmetric subspace.

Module Contents

toqito.perms.symmetric_projection.symmetric_projection(dim, p_val=2, partial=False)[source]

Produce the projection onto the symmetric subspace [@Chen_2014_Symmetric].

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_val copies 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{pmatrix}

1 & 0 \ 0 & 1

end{pmatrix}.

]

Using |toqito⟩, we can see this gives the proper result.

```python exec=”1” source=”above” from toqito.perms import symmetric_projection

print(symmetric_projection(2, 1)) ```

When (d = 2) and (p = 2) we have that

[
begin{pmatrix}

1 & 0 & 0 & 0 \ 0 & 1/2 & 1/2 & 0 \ 0 & 1/2 & 1/2 & 0 \ 0 & 0 & 0 & 1

end{pmatrix}.

]

Using |toqito⟩ we can see this gives the proper result.

```python exec=”1” source=”above” from toqito.perms import symmetric_projection

print(symmetric_projection(dim=2)) ```

Parameters:
  • dim (int) – The dimension of the local systems.

  • p_val (int) – Default value of 2.

  • partial (bool) – Default value of 0.

Returns:

Projection onto the symmetric subspace.

Return type:

numpy.ndarray