toqito.perms.antisymmetric_projection

Antisymmetric projection operator produces an orthogonal projection onto an anti-symmetric subspace.

Module Contents

toqito.perms.antisymmetric_projection.antisymmetric_projection(dim, p_param=2, partial=False)[source]

Produce the projection onto the antisymmetric subspace [@WikiAsymmOp].

Produces the orthogonal projection onto the anti-symmetric subspace of p_param copies of dim-dimensional space. If partial = True, then the antisymmetric projection (PA) isn’t the orthogonal projection itself, but rather a matrix whose columns form an orthonormal basis for the symmetric subspace (and hence the PA * PA’ is the orthogonal projection onto the symmetric subspace.)

Examples

The (2)-dimensional antisymmetric projection with (p=1) is given as (2)-by-(2) identity matrix

[

A_{2,1} = 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 antisymmetric_projection

print(antisymmetric_projection(2, 1)) ```

When the (p) value is greater than the dimension of the antisymmetric projection, this just gives the matrix consisting of all zero entries. For instance, when (d = 2) and (p = 3) we have that

[

A_{2, 3} = begin{pmatrix}

0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0 \ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 0

end{pmatrix}.

]

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

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

print(antisymmetric_projection(2, 3)) ```

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

  • p_param (int) – Default value of 2.

  • partial (bool) – Default value of 0.

Returns:

Projection onto the antisymmetric subspace.

Return type:

numpy.ndarray