toqito.perms.permutation_operator ================================= .. py:module:: toqito.perms.permutation_operator .. autoapi-nested-parse:: Permutation operator is a unitary operator that permutes subsystems. Module Contents --------------- .. py:function:: permutation_operator(dim, perm, inv_perm = False, is_sparse = False) Produce a unitary operator that permutes subsystems. Generates a unitary operator that permutes the order of subsystems according to the permutation vector `perm`, where the \(i^{th}\) subsystem has dimension `dim[i]`. If `inv_perm` = True, it implements the inverse permutation of `perm`. The permutation operator return is full is `is_sparse` is `False` and sparse if `is_sparse` is `True`. .. rubric:: Examples The permutation operator obtained with dimension \(d = 2\) is equivalent to the standard swap operator on two qubits \[ P_{2, [1, 0]} = \begin{pmatrix} 1 & 0 & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 1 & 0 & 0 \\ 0 & 0 & 0 & 1 \end{pmatrix} \] Using `|toqito⟩`, this can be achieved in the following manner. ```python exec="1" source="above" from toqito.perms import permutation_operator print(permutation_operator(2, [1, 0])) ``` :param dim: The dimensions of the subsystems to be permuted. :param perm: A permutation vector. :param inv_perm: Boolean dictating if `perm` is inverse or not. :param is_sparse: Boolean indicating if return is sparse or not. :returns: Permutation operator of dimension `dim`.